diff -Nrcpad gcc-16-20250601/LAST_UPDATED gcc-16-20250608/LAST_UPDATED
*** gcc-16-20250601/LAST_UPDATED	Sun Jun  1 22:32:53 2025
--- gcc-16-20250608/LAST_UPDATED	Sun Jun  8 22:33:06 2025
***************
*** 1 ****
! Obtained from git: master revision 7624186f5f2e3fa6b3792c4af7136caea37e1ef2
--- 1 ----
! Obtained from git: master revision fd042192094c456e275c53dfe92383bec1e9fca3
diff -Nrcpad gcc-16-20250601/MD5SUMS gcc-16-20250608/MD5SUMS
*** gcc-16-20250601/MD5SUMS	Sun Jun  1 22:32:58 2025
--- gcc-16-20250608/MD5SUMS	Sun Jun  8 22:33:11 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20250601.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-16-20250608.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
*************** afe3eaf79848eca6a6d105020da15682  Change
*** 25,31 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 295a1811d8b4cdd3651ab7125a04811d  LAST_UPDATED
  1fae9b30243be44edfe4dbd7ea871d5f  MAINTAINERS
  95166ed050922b15d201d1fa647b5872  Makefile.def
  20b3d34e305ceb74fbf9ce3f1e57817f  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! c999c3e0f02d4dd064244f894c042eed  LAST_UPDATED
  1fae9b30243be44edfe4dbd7ea871d5f  MAINTAINERS
  95166ed050922b15d201d1fa647b5872  Makefile.def
  20b3d34e305ceb74fbf9ce3f1e57817f  Makefile.in
*************** fd4ecdf5d672efe2b0e409aca9cf9446  Change
*** 33,43 ****
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 84a948d1b90270bd3bae3addc8ac0d5a  c++tools/ChangeLog
  772c4970b4827d9e21c892d684ee204e  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! c37ea1a2f77642729239faeefeabadb1  c++tools/configure
! 3da1069979231f8050d8c9dc639a86bf  c++tools/configure.ac
  56bc2449f31a006b2a31ad68bbe987dc  c++tools/resolver.cc
  783e8c33837c14035420e0a42451815c  c++tools/resolver.h
  82a107a3dba74c6c52cfe043ff6e9348  c++tools/server.cc
--- 33,43 ----
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 5d7b5d8368f67f3fe5af46b857ca8a77  c++tools/ChangeLog
  772c4970b4827d9e21c892d684ee204e  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! c5a60ac6626343968c4ef1fdf261bf62  c++tools/configure
! 60486b72632def3670276d84621e8f3a  c++tools/configure.ac
  56bc2449f31a006b2a31ad68bbe987dc  c++tools/resolver.cc
  783e8c33837c14035420e0a42451815c  c++tools/resolver.h
  82a107a3dba74c6c52cfe043ff6e9348  c++tools/server.cc
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 516,522 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 64413e90528f7bd18b313f478c0f8386  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 516,522 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 170d6999c098000505b1b4df07e81d40  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 553,571 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 09b52300350e408b25f6f8ade12c1cae  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  4dc2573d948287a3722ce977490b026c  gcc/LANGUAGES
! 02f8738144124e21366e7814a6c926ce  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  15d6908b4409b0925d9f1c72b56b5cb7  gcc/README.Portability
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 4505591b551f6e1eab5d9e1198561fb1  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 553,571 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! cbc2c5b04839d60fddb7d974bf3dcbfc  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  4dc2573d948287a3722ce977490b026c  gcc/LANGUAGES
! 4e6f86cd5f1167ed6ff9f3fb17a87384  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  15d6908b4409b0925d9f1c72b56b5cb7  gcc/README.Portability
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! bfe18d536e7a7349f47ade1bb4cabea9  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** eea9961506181531b5f7f1a7f62fe428  gcc/ad
*** 594,608 ****
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  597f68d7246e635c0cd3df7099ec272c  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! b4d8c0a7115d77fba33a6577ab6efe43  gcc/ada/Makefile.rtl
! 36ed8f92f8a084af3653ce5eaf0eda34  gcc/ada/accessibility.adb
  fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
! cc3c3e637adb577e88374e9630aa0e54  gcc/ada/ada_get_targ.adb
  a07518144c5203a421dbc45a7b16e04f  gcc/ada/adabkend.adb
  30e7387695692ce78b78ca8165fa9561  gcc/ada/adabkend.ads
  3d1fcc88d6e5624970030c0a00ed8653  gcc/ada/adadecode.c
  066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
! a4539cc4a5028b71e8c3fffdb29ebace  gcc/ada/adaint.c
  f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
  760bb6cd65cc72294ad54f492d54d482  gcc/ada/affinity.c
  a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
--- 594,608 ----
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  597f68d7246e635c0cd3df7099ec272c  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 06318e40670cb23770edfb3c41c57db7  gcc/ada/Makefile.rtl
! db7e461b5b214c390e35d18397979f74  gcc/ada/accessibility.adb
  fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
! 80867b66cbed2dba054564ea216b3c66  gcc/ada/ada_get_targ.adb
  a07518144c5203a421dbc45a7b16e04f  gcc/ada/adabkend.adb
  30e7387695692ce78b78ca8165fa9561  gcc/ada/adabkend.ads
  3d1fcc88d6e5624970030c0a00ed8653  gcc/ada/adadecode.c
  066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
! aabb5b60933c435566854464f69572d3  gcc/ada/adaint.c
  f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
  760bb6cd65cc72294ad54f492d54d482  gcc/ada/affinity.c
  a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
*************** f8207765beac36c54d43698a11140afa  gcc/ad
*** 613,621 ****
  3150d7e2a4f0018bb92d065ed3aedcc0  gcc/ada/argv-lynxos178-raven-cert.c
  5470386a6301c0323b6ee66cf06c1e42  gcc/ada/argv.c
  f2493dd09ce42a8a76ba82606b9e20e3  gcc/ada/aspects.adb
! 1b68e92c1f09da6304acd8f4bab75ae1  gcc/ada/aspects.ads
  71af88eaac340e2660d84b235840a7e7  gcc/ada/atree.adb
! 444c3479171f5761095caa5e0455bc94  gcc/ada/atree.ads
  1a5f952bcb9d3c3529147729f3c4ef61  gcc/ada/atree.h
  557d2d802d51833ba752f2b05e30c591  gcc/ada/aux-io.c
  3ebdc86e765e129f74ed1b9a39f9e4b9  gcc/ada/back_end.adb
--- 613,621 ----
  3150d7e2a4f0018bb92d065ed3aedcc0  gcc/ada/argv-lynxos178-raven-cert.c
  5470386a6301c0323b6ee66cf06c1e42  gcc/ada/argv.c
  f2493dd09ce42a8a76ba82606b9e20e3  gcc/ada/aspects.adb
! 500f0e117b0f8111522576a7ee43f9ba  gcc/ada/aspects.ads
  71af88eaac340e2660d84b235840a7e7  gcc/ada/atree.adb
! db711c218cedf511b576abcdcf0a8023  gcc/ada/atree.ads
  1a5f952bcb9d3c3529147729f3c4ef61  gcc/ada/atree.h
  557d2d802d51833ba752f2b05e30c591  gcc/ada/aux-io.c
  3ebdc86e765e129f74ed1b9a39f9e4b9  gcc/ada/back_end.adb
*************** ae344bff4834b9e2ef3c07f6dd01b59b  gcc/ad
*** 655,717 ****
  530290230985903c593cb9d92f5b47c8  gcc/ada/cal.c
  2acfb74c50c4563afcbe6a1bca3912a3  gcc/ada/casing.adb
  c576df64e1d6a2ac70b389cc10a835e6  gcc/ada/casing.ads
! 12b7556401c0d64376ed096d39ad3e89  gcc/ada/checks.adb
  f963647952269416533799c6a5117ea3  gcc/ada/checks.ads
  4c0942bba88f786dffff9a3575759026  gcc/ada/cio.c
! f14d5e59f3344d9d8ee8a0e5e48a7080  gcc/ada/clean.adb
  90ca544c6bc4527aa56ac34e3e2ee7bc  gcc/ada/clean.ads
  78db9cfd345ee93d918787a8dcf8a3db  gcc/ada/comperr.adb
  b819ca6fd93695993d2656d2edc4cc8c  gcc/ada/comperr.ads
  7f9ac0dab1302fd2696f52755a30ca56  gcc/ada/config-lang.in
! b3f234d93feef083d03df7904e6df0d4  gcc/ada/contracts.adb
! cae81121a4355cb8c6f89e3bf03bdbc3  gcc/ada/contracts.ads
  09a5213fb46479fc00bc1e507f07c02d  gcc/ada/csets.adb
  c8fc2a7d00b9bdf2dfb05cf0fc1c945f  gcc/ada/csets.ads
! e26f19ce8a64b1575c67a3e1aa517573  gcc/ada/cstand.adb
! df133d3381ee0015f3dc4dfd4524b78e  gcc/ada/cstand.ads
  1812c1cc859b55d34f8be50223970490  gcc/ada/cstreams.c
  453f1af3f48533612fca76f44afc9122  gcc/ada/ctrl_c.c
! 28021d5354e21d4cb52c9fbe49bc5822  gcc/ada/debug.adb
  c13504ec17d3c6cecfc69808385f8273  gcc/ada/debug.ads
  3398a4e389029b7fd2bf6a8164342c1b  gcc/ada/debug_a.adb
  af445affacf9cfc99e3eb8ee82b8b7f0  gcc/ada/debug_a.ads
- bdee5a5b917128a6f1044b7bbf9d9643  gcc/ada/diagnostics-brief_emitter.adb
- 315f0c7ce1142b7f76ad30ec6595109b  gcc/ada/diagnostics-brief_emitter.ads
- 728db385dd3f44d9d962d104d131be1a  gcc/ada/diagnostics-constructors.adb
- b3fe27b580eb33523a99ec3ad3dbbb0e  gcc/ada/diagnostics-constructors.ads
- ca021c3fc0c8548f2b2f8fbb73f7e2f3  gcc/ada/diagnostics-converter.adb
- d60b46ea1befff74b8d5a993ef61b3a8  gcc/ada/diagnostics-converter.ads
- 5764de49dd2d96c530879cbe85fcc0a6  gcc/ada/diagnostics-json_utils.adb
- 4492c90a2e277d56f7e9961140d57c5f  gcc/ada/diagnostics-json_utils.ads
- 4cf02d40eb6da37a37ba443fc087b416  gcc/ada/diagnostics-pretty_emitter.adb
- 290b6ea8dd29bd0cb5239b395d1c5e59  gcc/ada/diagnostics-pretty_emitter.ads
- cb4cc2fa61628ab1df1800a314e45078  gcc/ada/diagnostics-repository.adb
- 4622db16bfdcf24e74877f02a7431076  gcc/ada/diagnostics-repository.ads
- 01419b7eb095b6db6a6a459bad1f9624  gcc/ada/diagnostics-sarif_emitter.adb
- 03ce4e117fc3f6fe7973511965f59147  gcc/ada/diagnostics-sarif_emitter.ads
- 2e0fe99df8eab899c76e138e21cd59c6  gcc/ada/diagnostics-switch_repository.adb
- dc5ee9f3c72b43f97da6ec8683dbcdf8  gcc/ada/diagnostics-switch_repository.ads
- ee142bc1fea57100802feb1efbd2921f  gcc/ada/diagnostics-utils.adb
- 2b3ad4d10caf3985dc891caa7ab1117e  gcc/ada/diagnostics-utils.ads
- 7e54d5a3c614055b5301d2b75c6f9ab2  gcc/ada/diagnostics.adb
- 054f23e66023bfd36a42df01af816ae7  gcc/ada/diagnostics.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
  a279ed6487990a204e636674f9c44623  gcc/ada/doc/gnat_rm.rst
  c4f5f27a027adfe3db5b39193542c956  gcc/ada/doc/gnat_rm/about_this_guide.rst
  e183e323bf87ac50a5767106862fef97  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! 1088949e7479ebc1ba756442a049c3b3  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
  c2ce843af1cfd3f0c588b2a488ad8d45  gcc/ada/doc/gnat_rm/implementation_advice.rst
! 9841e49a49af522a8041a3b7a4df8b92  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! f86ae33ce6a65bd51309cb1012b055c8  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
  bb7b0bdc9f2695b217d3f45b46312a67  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 4e63abb8c6ddce39a9090957c3342242  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  0b2c04c089a7da32cee28133b96b2979  gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  454fb365cfb751d8e03b8e972d3abef1  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
  bb3c8ae8aaf1cbd06bc44135da97d801  gcc/ada/doc/gnat_rm/obsolescent_features.rst
! 7f40736efcf972e491a726f58badbb04  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
  1fb33f7304c23a143fa3a6313055f70b  gcc/ada/doc/gnat_rm/security_hardening_features.rst
  03676be4f649629e37041b8c849c7825  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
  3280f0cd5068d9afb4b30c72e74bd637  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
--- 655,697 ----
  530290230985903c593cb9d92f5b47c8  gcc/ada/cal.c
  2acfb74c50c4563afcbe6a1bca3912a3  gcc/ada/casing.adb
  c576df64e1d6a2ac70b389cc10a835e6  gcc/ada/casing.ads
! 20d0c21e346ef575a30e5da2f84b9b97  gcc/ada/checks.adb
  f963647952269416533799c6a5117ea3  gcc/ada/checks.ads
  4c0942bba88f786dffff9a3575759026  gcc/ada/cio.c
! 10b93c3ec680bbe04e70ea0e2fb09ac7  gcc/ada/clean.adb
  90ca544c6bc4527aa56ac34e3e2ee7bc  gcc/ada/clean.ads
  78db9cfd345ee93d918787a8dcf8a3db  gcc/ada/comperr.adb
  b819ca6fd93695993d2656d2edc4cc8c  gcc/ada/comperr.ads
  7f9ac0dab1302fd2696f52755a30ca56  gcc/ada/config-lang.in
! 85a4bf4830efad1a454b880ee6992af4  gcc/ada/contracts.adb
! 08509704a245c7fb15ecf43481261825  gcc/ada/contracts.ads
  09a5213fb46479fc00bc1e507f07c02d  gcc/ada/csets.adb
  c8fc2a7d00b9bdf2dfb05cf0fc1c945f  gcc/ada/csets.ads
! 6650227d4482aff0cdb03d0308aca9a6  gcc/ada/cstand.adb
! d5cdeee41f4cce7791ad47380e922eac  gcc/ada/cstand.ads
  1812c1cc859b55d34f8be50223970490  gcc/ada/cstreams.c
  453f1af3f48533612fca76f44afc9122  gcc/ada/ctrl_c.c
! 2eb3a5cf504a1385e2a605640e078654  gcc/ada/debug.adb
  c13504ec17d3c6cecfc69808385f8273  gcc/ada/debug.ads
  3398a4e389029b7fd2bf6a8164342c1b  gcc/ada/debug_a.adb
  af445affacf9cfc99e3eb8ee82b8b7f0  gcc/ada/debug_a.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
  a279ed6487990a204e636674f9c44623  gcc/ada/doc/gnat_rm.rst
  c4f5f27a027adfe3db5b39193542c956  gcc/ada/doc/gnat_rm/about_this_guide.rst
  e183e323bf87ac50a5767106862fef97  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! 03a7202c57cef976220b7181c2d40fe1  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
  c2ce843af1cfd3f0c588b2a488ad8d45  gcc/ada/doc/gnat_rm/implementation_advice.rst
! 816ee84af198e8336bad5e72516ebfb6  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! 687e948eae92592a9bb4b738fd473d80  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
  bb7b0bdc9f2695b217d3f45b46312a67  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 35142133e742fa186bfd55cb5410b013  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  0b2c04c089a7da32cee28133b96b2979  gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  454fb365cfb751d8e03b8e972d3abef1  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
  bb3c8ae8aaf1cbd06bc44135da97d801  gcc/ada/doc/gnat_rm/obsolescent_features.rst
! 952177853de529b7a2f483f0d195d2b4  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
  1fb33f7304c23a143fa3a6313055f70b  gcc/ada/doc/gnat_rm/security_hardening_features.rst
  03676be4f649629e37041b8c849c7825  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
  3280f0cd5068d9afb4b30c72e74bd637  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
*************** ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ad
*** 727,733 ****
  39521c37ba9c354cd3fd0a709dd191e4  gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
  d05e426d95c24c54af666c18b1fb547c  gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
  f7e7179ad111262b98d743c63002bc82  gcc/ada/doc/gnat_ugn/inline_assembler.rst
! 1550414bb7a49b59e5f3355f886df827  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
  b22b25b6bbe956bdaade83d68f531b1a  gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
  caf064904358a8a1d6029b136176ff9d  gcc/ada/doc/share/ada_pygments.py
--- 707,713 ----
  39521c37ba9c354cd3fd0a709dd191e4  gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
  d05e426d95c24c54af666c18b1fb547c  gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
  f7e7179ad111262b98d743c63002bc82  gcc/ada/doc/gnat_ugn/inline_assembler.rst
! fb97e551cf32ed76280cd4f8cd40825c  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
  b22b25b6bbe956bdaade83d68f531b1a  gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
  caf064904358a8a1d6029b136176ff9d  gcc/ada/doc/share/ada_pygments.py
*************** c7da61a05156d50b4888cdfaae4241d0  gcc/ad
*** 737,772 ****
  0a025bfec2a94c0fcd11a19d18f6c0c5  gcc/ada/doc/share/gnu_free_documentation_license.rst
  f1c71b64e1c84e240c7b5aea7331a32a  gcc/ada/doc/share/latex_elements.py
  90adfcde2feb6d6c090c2b18a1578145  gcc/ada/doc/share/sphinx.sty
! b197c097238ab059c90fd0c9452e6a76  gcc/ada/einfo-utils.adb
! 9294b28a2b5738443be8b4fcd83a2391  gcc/ada/einfo-utils.ads
  4f882a8b5e78253d5838b1a83e4af5bb  gcc/ada/einfo.adb
! 25284f00e37413b69c185f8987a0433c  gcc/ada/einfo.ads
  9fb4fb23a55081d07dc554eeb3253f91  gcc/ada/elists.adb
  1d7f8772477453dee268f8697433a589  gcc/ada/elists.ads
  2d6cb36d45dda0bf32d01725709f0007  gcc/ada/elists.h
  3ee454270bfb935945b73e4d5397b3ab  gcc/ada/env.c
  4c5dce869517fc9bf7fc787d64cc9f30  gcc/ada/env.h
  7160c7331da775e057d2022e905a0767  gcc/ada/err_vars.ads
  0585186de44d58458e21d420cc29671b  gcc/ada/errno.c
! eb0642ebe2b75475e73f7ae765d24bd2  gcc/ada/errout.adb
! 9be6d4d237e52e2d681aaf01644efe4c  gcc/ada/errout.ads
! 8d5ede703a566f986f11ad39380dac55  gcc/ada/erroutc.adb
! 92a88f0527e3f757aa0f1d7fcdebc8a4  gcc/ada/erroutc.ads
! 245d4b213e46b22ba4daabe3e9eb63de  gcc/ada/errutil.adb
  67078357e15eaef989cc9c0edaab1d13  gcc/ada/errutil.ads
  b270d994d3afc78b194d5ab9ddd800c0  gcc/ada/eval_fat.adb
  04c8399e5b8f5b974be325af4fc5793b  gcc/ada/eval_fat.ads
  5062429d8789169d01db0423985a5e99  gcc/ada/exit.c
! 4cb5493b9dfa39d212c60e93db08ff59  gcc/ada/exp_aggr.adb
  cc3a6ec62bea106872aef6143609f920  gcc/ada/exp_aggr.ads
  f5cfbe3c80cc2c7ded2440a52b2b9cf0  gcc/ada/exp_atag.adb
  17872534d797a09463e33092ff3c4b9c  gcc/ada/exp_atag.ads
! cba30f00b02b8199d4ae5c30b47d421a  gcc/ada/exp_attr.adb
  16622dd90fd58bfbfa68224d0bfaf8b2  gcc/ada/exp_attr.ads
  4cb08de59df5f8d0a124038dcbb392f0  gcc/ada/exp_cg.adb
  b18d9873e8e43583acd0e69ba6635023  gcc/ada/exp_cg.ads
  b5c7eb2b5e6d898d5afe2d0e6ae5f382  gcc/ada/exp_ch10.ads
! 0038d7b756beeda8a7855f846018dfee  gcc/ada/exp_ch11.adb
  60bdf7b43270fd45b2cc28489113a581  gcc/ada/exp_ch11.ads
  bdf1e45828c56644b32ac57ae50d5710  gcc/ada/exp_ch12.adb
  855ab7be8dea970234057b661c2254a2  gcc/ada/exp_ch12.ads
--- 717,760 ----
  0a025bfec2a94c0fcd11a19d18f6c0c5  gcc/ada/doc/share/gnu_free_documentation_license.rst
  f1c71b64e1c84e240c7b5aea7331a32a  gcc/ada/doc/share/latex_elements.py
  90adfcde2feb6d6c090c2b18a1578145  gcc/ada/doc/share/sphinx.sty
! 6a10f5a8d9b175eff673860ce98e771e  gcc/ada/einfo-utils.adb
! fdeb0b11ed378cc91d79b0c88e2d35a0  gcc/ada/einfo-utils.ads
  4f882a8b5e78253d5838b1a83e4af5bb  gcc/ada/einfo.adb
! 5f9e5ecec27b8e454ad9abdceb3267f5  gcc/ada/einfo.ads
  9fb4fb23a55081d07dc554eeb3253f91  gcc/ada/elists.adb
  1d7f8772477453dee268f8697433a589  gcc/ada/elists.ads
  2d6cb36d45dda0bf32d01725709f0007  gcc/ada/elists.h
  3ee454270bfb935945b73e4d5397b3ab  gcc/ada/env.c
  4c5dce869517fc9bf7fc787d64cc9f30  gcc/ada/env.h
  7160c7331da775e057d2022e905a0767  gcc/ada/err_vars.ads
+ be40586851fdfc99329b557d8bdec5e0  gcc/ada/errid.adb
+ fba5f72ffe9ebd4ae803b746907960c7  gcc/ada/errid.ads
  0585186de44d58458e21d420cc29671b  gcc/ada/errno.c
! fcd34052e516ec31760fa6ff23a540dd  gcc/ada/errout.adb
! 1de477548b87db008f344fd0314b8daf  gcc/ada/errout.ads
! e49039d52c4c622d5bf5eaa2f610a1aa  gcc/ada/erroutc-pretty_emitter.adb
! 1b867745275ece6e1175d7ab161779c1  gcc/ada/erroutc-pretty_emitter.ads
! 780a7d8519cdc4a3d9265ac7270f7ff2  gcc/ada/erroutc-sarif_emitter.adb
! d605b6936a38c906a6668a3e8c6c4ba4  gcc/ada/erroutc-sarif_emitter.ads
! 7f0d97b8e9e17c57169a5e80620df789  gcc/ada/erroutc.adb
! a80fb9a618c7fddbe7b6dc69f99ce507  gcc/ada/erroutc.ads
! 402960a6a04418f56f771e990b3508da  gcc/ada/errsw.adb
! 21fb129de3e0b0ba02959297df3e740d  gcc/ada/errsw.ads
! 38d8468bc3042960e78846d9865a35e8  gcc/ada/errutil.adb
  67078357e15eaef989cc9c0edaab1d13  gcc/ada/errutil.ads
  b270d994d3afc78b194d5ab9ddd800c0  gcc/ada/eval_fat.adb
  04c8399e5b8f5b974be325af4fc5793b  gcc/ada/eval_fat.ads
  5062429d8789169d01db0423985a5e99  gcc/ada/exit.c
! cde85a47971a24bf4266cad3029866c8  gcc/ada/exp_aggr.adb
  cc3a6ec62bea106872aef6143609f920  gcc/ada/exp_aggr.ads
  f5cfbe3c80cc2c7ded2440a52b2b9cf0  gcc/ada/exp_atag.adb
  17872534d797a09463e33092ff3c4b9c  gcc/ada/exp_atag.ads
! f7a3b70408009c68a87885bfcce0ee88  gcc/ada/exp_attr.adb
  16622dd90fd58bfbfa68224d0bfaf8b2  gcc/ada/exp_attr.ads
  4cb08de59df5f8d0a124038dcbb392f0  gcc/ada/exp_cg.adb
  b18d9873e8e43583acd0e69ba6635023  gcc/ada/exp_cg.ads
  b5c7eb2b5e6d898d5afe2d0e6ae5f382  gcc/ada/exp_ch10.ads
! 93e27dbcf1bdf17b4eb6fc9d854ddfce  gcc/ada/exp_ch11.adb
  60bdf7b43270fd45b2cc28489113a581  gcc/ada/exp_ch11.ads
  bdf1e45828c56644b32ac57ae50d5710  gcc/ada/exp_ch12.adb
  855ab7be8dea970234057b661c2254a2  gcc/ada/exp_ch12.ads
*************** fce186389d317dec9c580f569a2a845a  gcc/ad
*** 774,792 ****
  c6728830f0888dc3385e474b5925c01f  gcc/ada/exp_ch13.ads
  d037443d1b61c02110e124f3c701b449  gcc/ada/exp_ch2.adb
  476e299ea88b583859604d0071046143  gcc/ada/exp_ch2.ads
! 9ced630b747b44cf02c7a2d826a40aba  gcc/ada/exp_ch3.adb
  53e0d855cd76aedff48a9e6266db49e8  gcc/ada/exp_ch3.ads
! e913cd881168d89aedbd0f61a506d772  gcc/ada/exp_ch4.adb
  689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
! 1d5085d751944cac335b21919976e3c5  gcc/ada/exp_ch5.adb
  3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 06f4f0a020f4a47888ba57258de26e6b  gcc/ada/exp_ch6.adb
  c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
! a258092733f3f4dd46ef089b260661fa  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
  ff5f2710ba824ff8ef979c388663bac2  gcc/ada/exp_ch8.adb
  c1f464d28d24669bfe156f13cabe5fca  gcc/ada/exp_ch8.ads
! 1b40c4cc65701ad7469641f6ffa19397  gcc/ada/exp_ch9.adb
  9ab762fdf6b68687829c67eae82562e8  gcc/ada/exp_ch9.ads
  f47ce79d25dbb4d2f5cc6c375ee8c103  gcc/ada/exp_code.adb
  983664237ff0b38442a164f60d531514  gcc/ada/exp_code.ads
--- 762,780 ----
  c6728830f0888dc3385e474b5925c01f  gcc/ada/exp_ch13.ads
  d037443d1b61c02110e124f3c701b449  gcc/ada/exp_ch2.adb
  476e299ea88b583859604d0071046143  gcc/ada/exp_ch2.ads
! 9d7aadd5c8618bdb562f1d592a7f1802  gcc/ada/exp_ch3.adb
  53e0d855cd76aedff48a9e6266db49e8  gcc/ada/exp_ch3.ads
! 5166898bc18b924de378fcf6bf9acb01  gcc/ada/exp_ch4.adb
  689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
! c642a1d7102316f2db8b308db52c324b  gcc/ada/exp_ch5.adb
  3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 3b455b92cb2aac43de03ec9bb9548c81  gcc/ada/exp_ch6.adb
  c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
! 2dc46f230b6e63c0bfff64ad173315b8  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
  ff5f2710ba824ff8ef979c388663bac2  gcc/ada/exp_ch8.adb
  c1f464d28d24669bfe156f13cabe5fca  gcc/ada/exp_ch8.ads
! 2a95204a60ff3eba6c8d60f584833827  gcc/ada/exp_ch9.adb
  9ab762fdf6b68687829c67eae82562e8  gcc/ada/exp_ch9.ads
  f47ce79d25dbb4d2f5cc6c375ee8c103  gcc/ada/exp_code.adb
  983664237ff0b38442a164f60d531514  gcc/ada/exp_code.ads
*************** c5f46927bfde5cfdba7070186c0a3890  gcc/ad
*** 794,811 ****
  7d55b512bc6b963b537cd44b692b8a54  gcc/ada/exp_dbug.ads
  ad6d5aa3f46cecc1cc7e6f14db186364  gcc/ada/exp_disp.adb
  00b2b98f2a8868fd7a89f79c72a645ac  gcc/ada/exp_disp.ads
! 86f64ee397ea74ee1712b9a4ac10cf67  gcc/ada/exp_dist.adb
  116919038aa6e7d0ec9ce9ab609f0bc2  gcc/ada/exp_dist.ads
! c5ca94cffafc304193b3e436bceb3fb3  gcc/ada/exp_fixd.adb
  9633ee578c6cb9ea5577a5cade68bdcc  gcc/ada/exp_fixd.ads
  950e359997abe1b839b8fad4caafad05  gcc/ada/exp_imgv.adb
  9fc56117157205ad4de1209b42148d67  gcc/ada/exp_imgv.ads
  9f1bbeb12a811457cfb88a7e17ca9740  gcc/ada/exp_intr.adb
  923affd79668e065bae4808313b11bf9  gcc/ada/exp_intr.ads
! 024b678e3a2ff1002943cfc65d4e3903  gcc/ada/exp_pakd.adb
  0e4de6363c3876604fc8fa97e180ddcf  gcc/ada/exp_pakd.ads
! d5272b91cd7a6980710ec6f6981d62c1  gcc/ada/exp_prag.adb
! 044c8a4d86db8fbb4eaa241c597290a7  gcc/ada/exp_prag.ads
  e72f0d3871865a20e4168ee757febcf5  gcc/ada/exp_put_image.adb
  c0f39ee1d515a13193e5726a49291c99  gcc/ada/exp_put_image.ads
  e224b65ac653dc73160c1665f825b557  gcc/ada/exp_sel.adb
--- 782,799 ----
  7d55b512bc6b963b537cd44b692b8a54  gcc/ada/exp_dbug.ads
  ad6d5aa3f46cecc1cc7e6f14db186364  gcc/ada/exp_disp.adb
  00b2b98f2a8868fd7a89f79c72a645ac  gcc/ada/exp_disp.ads
! f8d7c73c2eb136405382e9f889d15683  gcc/ada/exp_dist.adb
  116919038aa6e7d0ec9ce9ab609f0bc2  gcc/ada/exp_dist.ads
! 623e2e99136d92d39e5b0f3277759f6a  gcc/ada/exp_fixd.adb
  9633ee578c6cb9ea5577a5cade68bdcc  gcc/ada/exp_fixd.ads
  950e359997abe1b839b8fad4caafad05  gcc/ada/exp_imgv.adb
  9fc56117157205ad4de1209b42148d67  gcc/ada/exp_imgv.ads
  9f1bbeb12a811457cfb88a7e17ca9740  gcc/ada/exp_intr.adb
  923affd79668e065bae4808313b11bf9  gcc/ada/exp_intr.ads
! 6161c718f4bd4f605642bedae6f6642f  gcc/ada/exp_pakd.adb
  0e4de6363c3876604fc8fa97e180ddcf  gcc/ada/exp_pakd.ads
! be32a682413bacdc827334ec3f62973a  gcc/ada/exp_prag.adb
! b971e56ee00efc31bd07e4f49eb4e97e  gcc/ada/exp_prag.ads
  e72f0d3871865a20e4168ee757febcf5  gcc/ada/exp_put_image.adb
  c0f39ee1d515a13193e5726a49291c99  gcc/ada/exp_put_image.ads
  e224b65ac653dc73160c1665f825b557  gcc/ada/exp_sel.adb
*************** b042ff9582cb94caab7f476203ea6809  gcc/ad
*** 820,846 ****
  52a5741c37559d0398594d7baa1c99ac  gcc/ada/exp_tss.ads
  17c1e6db56a29cef37eb0acfa2e2176f  gcc/ada/exp_unst.adb
  d2f34876e61000e49299ef9b2569cbbf  gcc/ada/exp_unst.ads
! 925b58d121e5076f127426cee27fb35d  gcc/ada/exp_util.adb
! 2c2da3d4030acaa147cdd49b9d8cfa79  gcc/ada/exp_util.ads
  3bba6a658c16a14ec3297c802dcde881  gcc/ada/expander.adb
  53bb0eb5c4feebf8b5fbef639f5827bd  gcc/ada/expander.ads
  b38851c9b7a0167a71b96e69b7c86fb1  gcc/ada/expect.c
! 115650d4c9bc8ec2eca6568d8d4e46d3  gcc/ada/fe.h
  e0c5e28f92b1d5fad283ec608aceb807  gcc/ada/final.c
  43fdec6dde9d9997d9651da910b55df3  gcc/ada/fmap.adb
  fdb9382a8288a3a5b805910a0a3615e8  gcc/ada/fmap.ads
  13ef835624590a9ba64dd6b4d131c22a  gcc/ada/fname-sf.adb
  4132ae09b3f8d374f31e34bfa2c3c6a4  gcc/ada/fname-sf.ads
! 6e94430c4c54db5e1074d04facfad06c  gcc/ada/fname-uf.adb
  576d7463667fc4c859a05f9e19146427  gcc/ada/fname-uf.ads
  ec7cf235c00294fe67198b9bf264f3d9  gcc/ada/fname.adb
  5ef403dc7e6540ad58ec4ccec10de65c  gcc/ada/fname.ads
! 8d2feb64e9bd970abaffb0c55af6d492  gcc/ada/freeze.adb
  0cfb73b82bc6277eb801329c392229d2  gcc/ada/freeze.ads
  94e87c9cab4c338fd7a9cd7f89adbc90  gcc/ada/frontend.adb
  6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
! 5a35c64225c4c6aef5080fa37b97e546  gcc/ada/gcc-interface/Make-lang.in
! 43779dc97ce084f83c9f5dea1bfcffb4  gcc/ada/gcc-interface/Makefile.in
  b02134e55a04db5c49a710da26b19be1  gcc/ada/gcc-interface/ada-builtin-types.def
  bc1175cb4ea0b9cb5f8751b3f0da7f74  gcc/ada/gcc-interface/ada-builtins.def
  9671d558ad879f15e73993538906ebda  gcc/ada/gcc-interface/ada-tree.def
--- 808,834 ----
  52a5741c37559d0398594d7baa1c99ac  gcc/ada/exp_tss.ads
  17c1e6db56a29cef37eb0acfa2e2176f  gcc/ada/exp_unst.adb
  d2f34876e61000e49299ef9b2569cbbf  gcc/ada/exp_unst.ads
! 1e00656efd969a5f815c25222da3d359  gcc/ada/exp_util.adb
! 8b222934ed10101bc9553a5d06edfabb  gcc/ada/exp_util.ads
  3bba6a658c16a14ec3297c802dcde881  gcc/ada/expander.adb
  53bb0eb5c4feebf8b5fbef639f5827bd  gcc/ada/expander.ads
  b38851c9b7a0167a71b96e69b7c86fb1  gcc/ada/expect.c
! ec920df5545ce1582319f1bfda3c5a19  gcc/ada/fe.h
  e0c5e28f92b1d5fad283ec608aceb807  gcc/ada/final.c
  43fdec6dde9d9997d9651da910b55df3  gcc/ada/fmap.adb
  fdb9382a8288a3a5b805910a0a3615e8  gcc/ada/fmap.ads
  13ef835624590a9ba64dd6b4d131c22a  gcc/ada/fname-sf.adb
  4132ae09b3f8d374f31e34bfa2c3c6a4  gcc/ada/fname-sf.ads
! 1dad044977a804680354018afa5d62c8  gcc/ada/fname-uf.adb
  576d7463667fc4c859a05f9e19146427  gcc/ada/fname-uf.ads
  ec7cf235c00294fe67198b9bf264f3d9  gcc/ada/fname.adb
  5ef403dc7e6540ad58ec4ccec10de65c  gcc/ada/fname.ads
! 5913021b0e7be38bc774d1f62a438aaf  gcc/ada/freeze.adb
  0cfb73b82bc6277eb801329c392229d2  gcc/ada/freeze.ads
  94e87c9cab4c338fd7a9cd7f89adbc90  gcc/ada/frontend.adb
  6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
! 7cb990da5787a02f58f48506632b9364  gcc/ada/gcc-interface/Make-lang.in
! d35232c0fa372b2e71ab7add32118b39  gcc/ada/gcc-interface/Makefile.in
  b02134e55a04db5c49a710da26b19be1  gcc/ada/gcc-interface/ada-builtin-types.def
  bc1175cb4ea0b9cb5f8751b3f0da7f74  gcc/ada/gcc-interface/ada-builtins.def
  9671d558ad879f15e73993538906ebda  gcc/ada/gcc-interface/ada-tree.def
*************** b350a6fd65cafe8bd47dc42192437310  gcc/ad
*** 860,868 ****
  459f0b99e7a1b0ab35902e89fc170732  gcc/ada/gcc-interface/trans.cc
  90c13ab8fddf99cd6e0d1b118cd0ff54  gcc/ada/gcc-interface/utils.cc
  7b0d708fd189018a87468ef844fc3811  gcc/ada/gcc-interface/utils2.cc
! e98c75620d0cefed3bc5965c7974b5a9  gcc/ada/gen_il-fields.ads
! 42ea61b238f9b98831503c2afdbad9d3  gcc/ada/gen_il-gen-gen_entities.adb
! ebed5be70c8d5e75b9d3e8ea56e94729  gcc/ada/gen_il-gen-gen_nodes.adb
  fa07e4c6240b8cfff6d7d98112fee236  gcc/ada/gen_il-gen.adb
  c979a98c6b57608c79d578871fa0c58a  gcc/ada/gen_il-gen.ads
  76bbf6f38878113d65648e887fc2fd72  gcc/ada/gen_il-internals.adb
--- 848,856 ----
  459f0b99e7a1b0ab35902e89fc170732  gcc/ada/gcc-interface/trans.cc
  90c13ab8fddf99cd6e0d1b118cd0ff54  gcc/ada/gcc-interface/utils.cc
  7b0d708fd189018a87468ef844fc3811  gcc/ada/gcc-interface/utils2.cc
! 002ae905acd15b48a8167d2a8f49837e  gcc/ada/gen_il-fields.ads
! c187319af37add821b1e8f4b4275aef2  gcc/ada/gen_il-gen-gen_entities.adb
! 2c5fe8d6eefdc25c0d34c009f715ac95  gcc/ada/gen_il-gen-gen_nodes.adb
  fa07e4c6240b8cfff6d7d98112fee236  gcc/ada/gen_il-gen.adb
  c979a98c6b57608c79d578871fa0c58a  gcc/ada/gen_il-gen.ads
  76bbf6f38878113d65648e887fc2fd72  gcc/ada/gen_il-internals.adb
*************** df0beb95a99f054fd498bb3fc0b8fccc  gcc/ad
*** 871,891 ****
  49405c2ee5627667a07ba9bf2faf5539  gcc/ada/gen_il-types.ads
  12828a99220130b97b0ca7738966ce08  gcc/ada/gen_il.adb
  bea2267faa84573ddab9d7c7f7068fb7  gcc/ada/gen_il.ads
! 9dd924342444d7c9c5cf5900eeb4e044  gcc/ada/generate_minimal_reproducer.adb
  29a4ac8239d62f821245305f947761bf  gcc/ada/get_scos.adb
  0930ee3acae3e581cd90b4ea71d36c46  gcc/ada/get_scos.ads
  c30d04e8e72b6ecb391a5f74ed43baa6  gcc/ada/get_targ.adb
! 57767f3283884f7a0a2bdfdc92574dca  gcc/ada/get_targ.ads
  ceea56f2846e3f170ecd0707ee0cd771  gcc/ada/ghost.adb
  169c6bef83eb7711cececa07b3485c6f  gcc/ada/ghost.ads
! 8e8f7e3ee355f63de7863d6e7bd833ca  gcc/ada/gnat-style.texi
  52f2fb099443750a5fc3ecac2238d604  gcc/ada/gnat1drv.adb
  9ed317231a93f12d370f13f5070cdaab  gcc/ada/gnat1drv.ads
  917ea7311a30ec4c5cec3e610ca640c2  gcc/ada/gnat2.gpr
  49c5329fd360e2bf4e549bc7de93aab7  gcc/ada/gnat_cuda.adb
  de69fc271ce889490809004600fcac0f  gcc/ada/gnat_cuda.ads
! 0a40dfcc8e1b7744d66f0ae1f975124d  gcc/ada/gnat_rm.texi
! ed78f1c8a80ae6943360cd5d22074c2d  gcc/ada/gnat_ugn.texi
  957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
  fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
  aef32d71626b4170f80d299f2304d737  gcc/ada/gnatchop.adb
--- 859,879 ----
  49405c2ee5627667a07ba9bf2faf5539  gcc/ada/gen_il-types.ads
  12828a99220130b97b0ca7738966ce08  gcc/ada/gen_il.adb
  bea2267faa84573ddab9d7c7f7068fb7  gcc/ada/gen_il.ads
! a1d2619ccca21c06754f3cdd326876e1  gcc/ada/generate_minimal_reproducer.adb
  29a4ac8239d62f821245305f947761bf  gcc/ada/get_scos.adb
  0930ee3acae3e581cd90b4ea71d36c46  gcc/ada/get_scos.ads
  c30d04e8e72b6ecb391a5f74ed43baa6  gcc/ada/get_targ.adb
! 1033bc14018eca0ac6056a8955c8e228  gcc/ada/get_targ.ads
  ceea56f2846e3f170ecd0707ee0cd771  gcc/ada/ghost.adb
  169c6bef83eb7711cececa07b3485c6f  gcc/ada/ghost.ads
! 6f5b1925a8a5b030703dd62acb3e37cc  gcc/ada/gnat-style.texi
  52f2fb099443750a5fc3ecac2238d604  gcc/ada/gnat1drv.adb
  9ed317231a93f12d370f13f5070cdaab  gcc/ada/gnat1drv.ads
  917ea7311a30ec4c5cec3e610ca640c2  gcc/ada/gnat2.gpr
  49c5329fd360e2bf4e549bc7de93aab7  gcc/ada/gnat_cuda.adb
  de69fc271ce889490809004600fcac0f  gcc/ada/gnat_cuda.ads
! 5625aaf41f8676e40d5f04b3c5d1925d  gcc/ada/gnat_rm.texi
! 58602c9f8c3582c43d6bd3a3648d2456  gcc/ada/gnat_ugn.texi
  957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
  fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
  aef32d71626b4170f80d299f2304d737  gcc/ada/gnatchop.adb
*************** e7512e43fd2370e49f1edc56ff00f814  gcc/ad
*** 898,904 ****
  d7392969bf1bfb1dc263eadee42f41a4  gcc/ada/gnatkr.ads
  396c7dd9ce4bc049ae401461ae99943a  gcc/ada/gnatlink.adb
  b82b4a0c5285d19d7f428258166a8842  gcc/ada/gnatlink.ads
! e4d52da60b01c43b1314ebb8d2d4d3fd  gcc/ada/gnatls.adb
  e204de79f4f6b64632812ec5d99d0161  gcc/ada/gnatls.ads
  935368c541333d5578cff90a09b46ea5  gcc/ada/gnatmake.adb
  822dd99ad504552e2dc5b25c21a83a10  gcc/ada/gnatmake.ads
--- 886,892 ----
  d7392969bf1bfb1dc263eadee42f41a4  gcc/ada/gnatkr.ads
  396c7dd9ce4bc049ae401461ae99943a  gcc/ada/gnatlink.adb
  b82b4a0c5285d19d7f428258166a8842  gcc/ada/gnatlink.ads
! 86d9feb470c5408c79441efe4d8ef4d9  gcc/ada/gnatls.adb
  e204de79f4f6b64632812ec5d99d0161  gcc/ada/gnatls.ads
  935368c541333d5578cff90a09b46ea5  gcc/ada/gnatmake.adb
  822dd99ad504552e2dc5b25c21a83a10  gcc/ada/gnatmake.ads
*************** ea767dec8fd43eff8cefde339b3a7d04  gcc/ad
*** 921,947 ****
  8c188167519fcde228e7406b86ad3c4f  gcc/ada/indepsw.ads
  d2ce4522ff8bfb72ff1063aca82c855d  gcc/ada/init.c
  c45e7a63e33e0bdb85ff3e50d0220aa4  gcc/ada/initialize.c
! a673ff67b6ae705c38498323facfe913  gcc/ada/inline.adb
  91cdabaa5b703885dad7b8dc5df17446  gcc/ada/inline.ads
  8d71a48789cbec10ceabfe68770803c1  gcc/ada/itypes.adb
  f62835b6268c11341ad683753a9d7acd  gcc/ada/itypes.ads
  c36aee8053df31ac269700edd9bb8db0  gcc/ada/krunch.adb
  cb8b4ae7eda616665ff5623008560e83  gcc/ada/krunch.ads
  972b98804bcc6a31ccbbef2516112a6b  gcc/ada/layout.adb
  b4b99fcd90ad634233395f84a0a1a6eb  gcc/ada/layout.ads
  3f0bde567ad1e8961d92e121563b097d  gcc/ada/lib-list.adb
! c19c0c49ef73ed8cdf3cee6528add96d  gcc/ada/lib-load.adb
  abb502e358163dc5e01633496a0013fc  gcc/ada/lib-load.ads
  201c53c6d3da32513befd9354402706e  gcc/ada/lib-sort.adb
  1700161465ece50ec303564c1d488050  gcc/ada/lib-util.adb
  1cbf7ce71e82c406e945d0a1195bd1e1  gcc/ada/lib-util.ads
! 032b8ca64ed246437f606200b97362e1  gcc/ada/lib-writ.adb
  b6ab6aa41e1a35af588f7ac62bd68af4  gcc/ada/lib-writ.ads
  2db0cbf7507c9f00553b185968d7acaa  gcc/ada/lib-xref-spark_specific.adb
  c46c7909c69914753823cfbfb23fa8a4  gcc/ada/lib-xref.adb
  2011d6e281dc4b4ce8a65a6fbc96b843  gcc/ada/lib-xref.ads
  fc5fc8c03612cddf005a40a6b30b8c26  gcc/ada/lib.adb
! 630811288c9aecb02b5c0a34ba570c9f  gcc/ada/lib.ads
  2d8ce9872083b9f641e37150d0bb18f1  gcc/ada/libgnarl/a-astaco.adb
  c13d27ec688dfebb1965a8e9eaf55c2c  gcc/ada/libgnarl/a-astaco.ads
  66247d074eecb4270e7cf01d16e0cfce  gcc/ada/libgnarl/a-dinopr.ads
--- 909,937 ----
  8c188167519fcde228e7406b86ad3c4f  gcc/ada/indepsw.ads
  d2ce4522ff8bfb72ff1063aca82c855d  gcc/ada/init.c
  c45e7a63e33e0bdb85ff3e50d0220aa4  gcc/ada/initialize.c
! d1947f2d5ce1c8689dab6210e1b74bcb  gcc/ada/inline.adb
  91cdabaa5b703885dad7b8dc5df17446  gcc/ada/inline.ads
  8d71a48789cbec10ceabfe68770803c1  gcc/ada/itypes.adb
  f62835b6268c11341ad683753a9d7acd  gcc/ada/itypes.ads
+ 09524c751ab3d4f4007d23753287e215  gcc/ada/json_utils.adb
+ b9ab1f104b29842f028d913bbf190559  gcc/ada/json_utils.ads
  c36aee8053df31ac269700edd9bb8db0  gcc/ada/krunch.adb
  cb8b4ae7eda616665ff5623008560e83  gcc/ada/krunch.ads
  972b98804bcc6a31ccbbef2516112a6b  gcc/ada/layout.adb
  b4b99fcd90ad634233395f84a0a1a6eb  gcc/ada/layout.ads
  3f0bde567ad1e8961d92e121563b097d  gcc/ada/lib-list.adb
! 17aaa002830c4185209c54931af90728  gcc/ada/lib-load.adb
  abb502e358163dc5e01633496a0013fc  gcc/ada/lib-load.ads
  201c53c6d3da32513befd9354402706e  gcc/ada/lib-sort.adb
  1700161465ece50ec303564c1d488050  gcc/ada/lib-util.adb
  1cbf7ce71e82c406e945d0a1195bd1e1  gcc/ada/lib-util.ads
! 7c40c7e02bfd219fdacaf79deacf4f36  gcc/ada/lib-writ.adb
  b6ab6aa41e1a35af588f7ac62bd68af4  gcc/ada/lib-writ.ads
  2db0cbf7507c9f00553b185968d7acaa  gcc/ada/lib-xref-spark_specific.adb
  c46c7909c69914753823cfbfb23fa8a4  gcc/ada/lib-xref.adb
  2011d6e281dc4b4ce8a65a6fbc96b843  gcc/ada/lib-xref.ads
  fc5fc8c03612cddf005a40a6b30b8c26  gcc/ada/lib.adb
! bba49c8bfd5f579293bd160f074a57b1  gcc/ada/lib.ads
  2d8ce9872083b9f641e37150d0bb18f1  gcc/ada/libgnarl/a-astaco.adb
  c13d27ec688dfebb1965a8e9eaf55c2c  gcc/ada/libgnarl/a-astaco.ads
  66247d074eecb4270e7cf01d16e0cfce  gcc/ada/libgnarl/a-dinopr.ads
*************** e2bf398dfdddb692d0fa1eba019712b8  gcc/ad
*** 1034,1041 ****
  3f1fb13bf3641685cdebf9e08b0c5a15  gcc/ada/libgnarl/s-intman__vxworks.ads
  cee21258ec217f5bc4c93b53338907fc  gcc/ada/libgnarl/s-linux.ads
  6d314e92a3b56ca40a8a9e5b6239016f  gcc/ada/libgnarl/s-linux__alpha.ads
! 2066fb7f4547c2b77a477a83ecc3f8fd  gcc/ada/libgnarl/s-linux__android-aarch64.ads
! 8bf90e361befe575c48d29fff4de5299  gcc/ada/libgnarl/s-linux__android-arm.ads
  d22fe1a709ddc4cdc74f74d554f43900  gcc/ada/libgnarl/s-linux__hppa.ads
  0bd8e0c79a206dbd8f6e3f9f8659dc22  gcc/ada/libgnarl/s-linux__loongarch.ads
  4c7f49a2160e20a8f2c0f58b19aa6400  gcc/ada/libgnarl/s-linux__mips.ads
--- 1024,1031 ----
  3f1fb13bf3641685cdebf9e08b0c5a15  gcc/ada/libgnarl/s-intman__vxworks.ads
  cee21258ec217f5bc4c93b53338907fc  gcc/ada/libgnarl/s-linux.ads
  6d314e92a3b56ca40a8a9e5b6239016f  gcc/ada/libgnarl/s-linux__alpha.ads
! c39376106ccbfa3ea3676b8eac43cd94  gcc/ada/libgnarl/s-linux__android-aarch64.ads
! cd6cd03fe74a24adc317fab9fd17fecf  gcc/ada/libgnarl/s-linux__android-arm.ads
  d22fe1a709ddc4cdc74f74d554f43900  gcc/ada/libgnarl/s-linux__hppa.ads
  0bd8e0c79a206dbd8f6e3f9f8659dc22  gcc/ada/libgnarl/s-linux__loongarch.ads
  4c7f49a2160e20a8f2c0f58b19aa6400  gcc/ada/libgnarl/s-linux__mips.ads
*************** d3d1bd17a6972764e499389c7f19f407  gcc/ad
*** 1048,1054 ****
  3becd2c298bd7c470ccc7bf82838d5fb  gcc/ada/libgnarl/s-osinte__aix.adb
  53bc92ac83a223844c31b801885045e7  gcc/ada/libgnarl/s-osinte__aix.ads
  25bc7b4a9176142c5dac0efa7169582c  gcc/ada/libgnarl/s-osinte__android.adb
! 9945ea2ec34b570daed42bfca5e308cb  gcc/ada/libgnarl/s-osinte__android.ads
  9ab06dc131a653e8fa05a0850dde1c78  gcc/ada/libgnarl/s-osinte__cheribsd.ads
  b02df80b976018edcba09beb2acf70c8  gcc/ada/libgnarl/s-osinte__darwin.adb
  3e2d7674ec46f394cb7b42b0a7c1b777  gcc/ada/libgnarl/s-osinte__darwin.ads
--- 1038,1044 ----
  3becd2c298bd7c470ccc7bf82838d5fb  gcc/ada/libgnarl/s-osinte__aix.adb
  53bc92ac83a223844c31b801885045e7  gcc/ada/libgnarl/s-osinte__aix.ads
  25bc7b4a9176142c5dac0efa7169582c  gcc/ada/libgnarl/s-osinte__android.adb
! fbb0dc8d9ba4e16bbbf721833fc3a1ba  gcc/ada/libgnarl/s-osinte__android.ads
  9ab06dc131a653e8fa05a0850dde1c78  gcc/ada/libgnarl/s-osinte__cheribsd.ads
  b02df80b976018edcba09beb2acf70c8  gcc/ada/libgnarl/s-osinte__darwin.adb
  3e2d7674ec46f394cb7b42b0a7c1b777  gcc/ada/libgnarl/s-osinte__darwin.ads
*************** b8fcc586001cbdaddc04c29fc016fa48  gcc/ad
*** 1378,1385 ****
  f45be1a6496945c82ff322bbc5771149  gcc/ada/libgnat/a-nalofl__simd.ads
  d2ac918fa9da14a89ed910cabc0d06f0  gcc/ada/libgnat/a-nashfl.ads
  a4820af5d1581fc43b207313677150e3  gcc/ada/libgnat/a-nashfl__wraplf.ads
- 75553fa8353d81043a5bc5c8edf5c33f  gcc/ada/libgnat/a-nbnbig.adb
- dce2dff8e8a98f841a6304bc02ddf8bc  gcc/ada/libgnat/a-nbnbig.ads
  5f1b23d0cdf03af3be2757e7ce715274  gcc/ada/libgnat/a-nbnbin.adb
  e570135fe58307ce95594d2d3e0b85df  gcc/ada/libgnat/a-nbnbin.ads
  374be42afcade466168f8b91da7ee3f7  gcc/ada/libgnat/a-nbnbin__gmp.adb
--- 1368,1373 ----
*************** ee29ca627cfc44f3a2c3dd428d5ec436  gcc/ad
*** 1418,1427 ****
  22a793d6936415ee70b725c6d2b2020a  gcc/ada/libgnat/a-nucoar.ads
  bda677b507deb699333f9baa2c37a694  gcc/ada/libgnat/a-nucoty.ads
  4cfe4bef65a418f6190aa015b9ba4e6a  gcc/ada/libgnat/a-nudira.adb
! 72ce5fa9f1d86518b497c224e4848667  gcc/ada/libgnat/a-nudira.ads
  bd9eed0e40585ba218b0badca225b64c  gcc/ada/libgnat/a-nuelfu.ads
  28a2dd2db357161c9a10da52d69e3507  gcc/ada/libgnat/a-nuflra.adb
! 6b8d1dfff2165dd2baf2f6f1ec536d04  gcc/ada/libgnat/a-nuflra.ads
  824c569c7b0954606b3ac3d9be05e3ac  gcc/ada/libgnat/a-numaux.ads
  086b7e7e6872b523fe97b68aeaf03e1d  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
--- 1406,1415 ----
  22a793d6936415ee70b725c6d2b2020a  gcc/ada/libgnat/a-nucoar.ads
  bda677b507deb699333f9baa2c37a694  gcc/ada/libgnat/a-nucoty.ads
  4cfe4bef65a418f6190aa015b9ba4e6a  gcc/ada/libgnat/a-nudira.adb
! d53990db741a3fbdec355fdf10c62429  gcc/ada/libgnat/a-nudira.ads
  bd9eed0e40585ba218b0badca225b64c  gcc/ada/libgnat/a-nuelfu.ads
  28a2dd2db357161c9a10da52d69e3507  gcc/ada/libgnat/a-nuflra.adb
! 9c0fb1030f387a26e7b2aa5a38da98a3  gcc/ada/libgnat/a-nuflra.ads
  824c569c7b0954606b3ac3d9be05e3ac  gcc/ada/libgnat/a-numaux.ads
  086b7e7e6872b523fe97b68aeaf03e1d  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
*************** e93ee3681eede50800c3fa92d80c4241  gcc/ad
*** 1482,1498 ****
  23bd2bd0b77512d8f798aa3f877f0d59  gcc/ada/libgnat/a-strbou.ads
  bdabeea0065dd948161bac7232bb2a65  gcc/ada/libgnat/a-stream.adb
  9cae22519cbfeb4b6eebe8c68e2cc3b7  gcc/ada/libgnat/a-stream.ads
! 9540dd0f9179fce951ec1c250a31849b  gcc/ada/libgnat/a-strfix.adb
  772900c294bfa8ad09079e6ddbef7ae9  gcc/ada/libgnat/a-strfix.ads
  782da4ff715834a4204876023c4565b8  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! 193681c63ff6bd184d96d0b156ff150f  gcc/ada/libgnat/a-strmap.adb
  fde87f914a0fb6921988804794d7e36d  gcc/ada/libgnat/a-strmap.ads
! 50a564a9a97383badae9065a09d9d489  gcc/ada/libgnat/a-strsea.adb
  2a5097c79ed0f127f2c1ed00c49e49a8  gcc/ada/libgnat/a-strsea.ads
  666d32ee01d180ac98d7063c3dce7b89  gcc/ada/libgnat/a-strsto.ads
! 60c1c557a21155dc89b5481fc60f94fa  gcc/ada/libgnat/a-strsup.adb
  a0e109f345b7bd1042ee73f24b4bea37  gcc/ada/libgnat/a-strsup.ads
  1c4f67b098ee46e794d0c3a2fe19f206  gcc/ada/libgnat/a-strunb.adb
  ec39f56f954e99f14f687ed0ff26552d  gcc/ada/libgnat/a-strunb.ads
--- 1470,1486 ----
  23bd2bd0b77512d8f798aa3f877f0d59  gcc/ada/libgnat/a-strbou.ads
  bdabeea0065dd948161bac7232bb2a65  gcc/ada/libgnat/a-stream.adb
  9cae22519cbfeb4b6eebe8c68e2cc3b7  gcc/ada/libgnat/a-stream.ads
! 110b633cf21b84f84c2eef2390d48795  gcc/ada/libgnat/a-strfix.adb
  772900c294bfa8ad09079e6ddbef7ae9  gcc/ada/libgnat/a-strfix.ads
  782da4ff715834a4204876023c4565b8  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! 70746ce4f1739061f33f8300746487f0  gcc/ada/libgnat/a-strmap.adb
  fde87f914a0fb6921988804794d7e36d  gcc/ada/libgnat/a-strmap.ads
! f875ce11dbd0980e354cf6e0f40ace8d  gcc/ada/libgnat/a-strsea.adb
  2a5097c79ed0f127f2c1ed00c49e49a8  gcc/ada/libgnat/a-strsea.ads
  666d32ee01d180ac98d7063c3dce7b89  gcc/ada/libgnat/a-strsto.ads
! 5031c316686760ed1e044fe0fe0b8e5b  gcc/ada/libgnat/a-strsup.adb
  a0e109f345b7bd1042ee73f24b4bea37  gcc/ada/libgnat/a-strsup.ads
  1c4f67b098ee46e794d0c3a2fe19f206  gcc/ada/libgnat/a-strunb.adb
  ec39f56f954e99f14f687ed0ff26552d  gcc/ada/libgnat/a-strunb.ads
*************** d089a987b85858fcdbeeef14bc570e03  gcc/ad
*** 1816,1822 ****
  d61118e01ae748248016a8b908a2ad99  gcc/ada/libgnat/g-dynhta.adb
  bc9234c4fbecf6e198582a40893e7c7b  gcc/ada/libgnat/g-dynhta.ads
  5c05437e5d5d7122c2e6909f663a9673  gcc/ada/libgnat/g-dyntab.adb
! 7fe4f79d9cd4ae09de54937cd4cd72a6  gcc/ada/libgnat/g-dyntab.ads
  854d73f7b898fb4f7d034c39b6adbc70  gcc/ada/libgnat/g-eacodu.adb
  7fbba175c1cf60fb6cf3025c93ba2394  gcc/ada/libgnat/g-encstr.adb
  256c732bac4d16fce3c72c0184f11410  gcc/ada/libgnat/g-encstr.ads
--- 1804,1810 ----
  d61118e01ae748248016a8b908a2ad99  gcc/ada/libgnat/g-dynhta.adb
  bc9234c4fbecf6e198582a40893e7c7b  gcc/ada/libgnat/g-dynhta.ads
  5c05437e5d5d7122c2e6909f663a9673  gcc/ada/libgnat/g-dyntab.adb
! bef114df3a410a7567fc7fb9e0310d15  gcc/ada/libgnat/g-dyntab.ads
  854d73f7b898fb4f7d034c39b6adbc70  gcc/ada/libgnat/g-eacodu.adb
  7fbba175c1cf60fb6cf3025c93ba2394  gcc/ada/libgnat/g-encstr.adb
  256c732bac4d16fce3c72c0184f11410  gcc/ada/libgnat/g-encstr.ads
*************** ae459afc4b4b00dd46ffeb5bda93bbd3  gcc/ad
*** 1977,1984 ****
  70c28c73ed5e23a311c966449afbac69  gcc/ada/libgnat/g-zspche.ads
  eeb91f8e22d3be231178fe226828b57a  gcc/ada/libgnat/g-zstspl.ads
  d9e67392d088be95d8027e3251a3ee89  gcc/ada/libgnat/gnat.ads
! dfb915f82045f4fd972ef4a703dbcac8  gcc/ada/libgnat/i-c.adb
! b0f07de76a00a08b14d027427178df59  gcc/ada/libgnat/i-c.ads
  4eec987c4098e35fb8ac13024eb48e2b  gcc/ada/libgnat/i-cexten.ads
  cff8dee2c592630c4764985fef999d4d  gcc/ada/libgnat/i-cexten__128.ads
  d2b5ac22236fcd922870df00cdbf5223  gcc/ada/libgnat/i-cheri-exceptions.ads
--- 1965,1972 ----
  70c28c73ed5e23a311c966449afbac69  gcc/ada/libgnat/g-zspche.ads
  eeb91f8e22d3be231178fe226828b57a  gcc/ada/libgnat/g-zstspl.ads
  d9e67392d088be95d8027e3251a3ee89  gcc/ada/libgnat/gnat.ads
! 34cf9df8c72f84fe31a0be66162be123  gcc/ada/libgnat/i-c.adb
! 72e9ec2f14ea5a23b1f7e77717b8e8db  gcc/ada/libgnat/i-c.ads
  4eec987c4098e35fb8ac13024eb48e2b  gcc/ada/libgnat/i-cexten.ads
  cff8dee2c592630c4764985fef999d4d  gcc/ada/libgnat/i-cexten__128.ads
  d2b5ac22236fcd922870df00cdbf5223  gcc/ada/libgnat/i-cheri-exceptions.ads
*************** d2b5ac22236fcd922870df00cdbf5223  gcc/ad
*** 1990,1996 ****
  77f7e7686074d212957f8d38f73d95e7  gcc/ada/libgnat/i-cpoint.ads
  9743df732b34e67af4fcde000156ef5a  gcc/ada/libgnat/i-cstrea.adb
  a1f59c1391e76bbb0c315c6ed89d7903  gcc/ada/libgnat/i-cstrea.ads
! cd401d2ec829f2c106debe66080c4745  gcc/ada/libgnat/i-cstrin.adb
  277e9e53afc63fc7dd17e34975e9376b  gcc/ada/libgnat/i-cstrin.ads
  7d8297675730ed588134246459d2f63d  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
--- 1978,1984 ----
  77f7e7686074d212957f8d38f73d95e7  gcc/ada/libgnat/i-cpoint.ads
  9743df732b34e67af4fcde000156ef5a  gcc/ada/libgnat/i-cstrea.adb
  a1f59c1391e76bbb0c315c6ed89d7903  gcc/ada/libgnat/i-cstrea.ads
! edbdf6dabe4b49bac55eca482be73229  gcc/ada/libgnat/i-cstrin.adb
  277e9e53afc63fc7dd17e34975e9376b  gcc/ada/libgnat/i-cstrin.ads
  7d8297675730ed588134246459d2f63d  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
*************** ecc80f4cd741053e2418b4327ff82b53  gcc/ad
*** 2018,2031 ****
  724ff50971da8241c356145fe188a716  gcc/ada/libgnat/s-aomoar.ads
  a0d854ff8c51d889d4edc2ac8232afde  gcc/ada/libgnat/s-aotase.adb
  6c7bd61842c36ac4ba72a9c5bf833419  gcc/ada/libgnat/s-aotase.ads
! 7041816c06bee211d5e7e0a4f8e71468  gcc/ada/libgnat/s-aridou.adb
! ae56acaefd73d3d2752b4e07bbd8f87d  gcc/ada/libgnat/s-aridou.ads
! b1cc3714e7c06248c73c933c2d10a80e  gcc/ada/libgnat/s-arit128.adb
! a19888a768f86bbf6e883c7d9ffa0de2  gcc/ada/libgnat/s-arit128.ads
! 13004bb77f0aa79be4ae311250b83a21  gcc/ada/libgnat/s-arit32.adb
! f5f28bd9bbacdfe023bdcdffe34417ad  gcc/ada/libgnat/s-arit32.ads
! da38e77c48da5530a56dbeb52b71b950  gcc/ada/libgnat/s-arit64.adb
! 42377015468ca133430862a1a726f5a4  gcc/ada/libgnat/s-arit64.ads
  a46220114d084652d69bfc71cd853baf  gcc/ada/libgnat/s-assert.adb
  72f1da2c55710dcfe3a42776afa54b9b  gcc/ada/libgnat/s-assert.ads
  1f673d7d38937f7c6b6bee3c16980971  gcc/ada/libgnat/s-atacco.adb
--- 2006,2019 ----
  724ff50971da8241c356145fe188a716  gcc/ada/libgnat/s-aomoar.ads
  a0d854ff8c51d889d4edc2ac8232afde  gcc/ada/libgnat/s-aotase.adb
  6c7bd61842c36ac4ba72a9c5bf833419  gcc/ada/libgnat/s-aotase.ads
! a9fa9d6d21c4311b0a97722a9292523a  gcc/ada/libgnat/s-aridou.adb
! b20659e7ab9ac7bae8650efb12f1ec31  gcc/ada/libgnat/s-aridou.ads
! 3b300c1736793db3e5abd80c43b4d3b1  gcc/ada/libgnat/s-arit128.adb
! 82ce51a6fe5b6e7420447e3c9796731d  gcc/ada/libgnat/s-arit128.ads
! a32729d5623ecd38e9b42376efc0d593  gcc/ada/libgnat/s-arit32.adb
! fcde399ecd2cbcf72dd1f96062cac354  gcc/ada/libgnat/s-arit32.ads
! 5519a4e4b9c9510d52a1550e443559ac  gcc/ada/libgnat/s-arit64.adb
! d07a657c59acd746d1a909cbb43a7577  gcc/ada/libgnat/s-arit64.ads
  a46220114d084652d69bfc71cd853baf  gcc/ada/libgnat/s-assert.adb
  72f1da2c55710dcfe3a42776afa54b9b  gcc/ada/libgnat/s-assert.ads
  1f673d7d38937f7c6b6bee3c16980971  gcc/ada/libgnat/s-atacco.adb
*************** a4b410c9bbb60942b8e9f990139c6dbe  gcc/ad
*** 2064,2070 ****
  0bce47676e2d4593d668bba2ee9c2cca  gcc/ada/libgnat/s-casi32.ads
  0b79bb72575b40e418eff2cbf49acdaa  gcc/ada/libgnat/s-casi64.adb
  55b10b5d170a4d6980ebf34e70e878a6  gcc/ada/libgnat/s-casi64.ads
! 777e77609ff4de1583d5e1c806e21c56  gcc/ada/libgnat/s-casuti.adb
  69ec1c56ef16610c08b934adad6a62dc  gcc/ada/libgnat/s-casuti.ads
  7141b233dcced3ec43f263d8cb618f4d  gcc/ada/libgnat/s-caun128.adb
  b9314f753e77bcf3e8d0c87493822517  gcc/ada/libgnat/s-caun128.ads
--- 2052,2058 ----
  0bce47676e2d4593d668bba2ee9c2cca  gcc/ada/libgnat/s-casi32.ads
  0b79bb72575b40e418eff2cbf49acdaa  gcc/ada/libgnat/s-casi64.adb
  55b10b5d170a4d6980ebf34e70e878a6  gcc/ada/libgnat/s-casi64.ads
! 8d0957f257d08fb981d51447d898f9ac  gcc/ada/libgnat/s-casuti.adb
  69ec1c56ef16610c08b934adad6a62dc  gcc/ada/libgnat/s-casuti.ads
  7141b233dcced3ec43f263d8cb618f4d  gcc/ada/libgnat/s-caun128.adb
  b9314f753e77bcf3e8d0c87493822517  gcc/ada/libgnat/s-caun128.ads
*************** f76326ae3223531cac30a3bed5d1f5e2  gcc/ad
*** 2138,2170 ****
  05b4a311f4b50a32d4f1f3e0155a25f1  gcc/ada/libgnat/s-exctra.ads
  f7180d7c5776d9f33ceb0ec00224c8b8  gcc/ada/libgnat/s-exnflt.ads
  8d9156ff3577703845f3601040f6b819  gcc/ada/libgnat/s-exnint.adb
! 1f2b7a601e4580c4f71ee0de0dd416cd  gcc/ada/libgnat/s-exnint.ads
  07592e37b48412fcdf90129473a24b4f  gcc/ada/libgnat/s-exnlfl.ads
  edb59a21ba5b02a6afeb18c838a8a93a  gcc/ada/libgnat/s-exnllf.adb
  cce7e4a11a66adee4324628fc2d38b22  gcc/ada/libgnat/s-exnllf.ads
  f41bdc44f7caed29b411cf8ae02d4148  gcc/ada/libgnat/s-exnlli.adb
! 0de4f4c2244b0735f52fcc4e9b4aff72  gcc/ada/libgnat/s-exnlli.ads
! 1486c693733aaf5f85f18131841bf9b5  gcc/ada/libgnat/s-exnllli.ads
  91eea476be44ceb3a868b90fefde8bf9  gcc/ada/libgnat/s-expint.adb
! 35464a3cfbe0171074d8dae5fdef529c  gcc/ada/libgnat/s-expint.ads
  804d00ea9948c1bfdbc27249145f82fb  gcc/ada/libgnat/s-explli.adb
! 8499ff1d7f36e603f01f1702b425b5fe  gcc/ada/libgnat/s-explli.ads
! 0dbb00dae632b2100de2c282914f4bb4  gcc/ada/libgnat/s-expllli.ads
! 480566538bad33d84328bb0f02ccedaf  gcc/ada/libgnat/s-explllu.ads
  dc491c1f8fb62dcd45d373ec01dd84e9  gcc/ada/libgnat/s-expllu.adb
! fea354619b93467f608bbfd59381e3ad  gcc/ada/libgnat/s-expllu.ads
! accd3a18ed5aaeeeb90e4eafb9b6f6d3  gcc/ada/libgnat/s-expmod.adb
! 59f393b13c984ee176f66c218f74f127  gcc/ada/libgnat/s-expmod.ads
! 32c3e4fd456872679a635f7f89b5724e  gcc/ada/libgnat/s-exponn.adb
! f40b48e7d7fbaaf42675b763a54db871  gcc/ada/libgnat/s-exponn.ads
  6b34184aaa570c66a4c36383d8678e23  gcc/ada/libgnat/s-exponr.adb
  d79a9b11f85737825cc23cbe2188a674  gcc/ada/libgnat/s-exponr.ads
! 4ef85033857d33875b8b9451791794e7  gcc/ada/libgnat/s-expont.adb
! 4403f7fed0744d6abb7ad38702c28a78  gcc/ada/libgnat/s-expont.ads
! 57b6cf2cc0789f1c87b6c37bb983d00f  gcc/ada/libgnat/s-exponu.adb
! 2a8150ac5eecc2e4d9c3f64c59c5f8d5  gcc/ada/libgnat/s-exponu.ads
  9c8be87272aabf828cd1069b49048acf  gcc/ada/libgnat/s-expuns.adb
! 4b34c2d9389006f83db3cff9eae21112  gcc/ada/libgnat/s-expuns.ads
  822c64f95e66ff0cc8f3f16feecd14d5  gcc/ada/libgnat/s-fatflt.ads
  8a49ad816f20947364fb33aae87ac62e  gcc/ada/libgnat/s-fatgen.adb
  41c2987998c0e67732d92f38dc599e16  gcc/ada/libgnat/s-fatgen.ads
--- 2126,2158 ----
  05b4a311f4b50a32d4f1f3e0155a25f1  gcc/ada/libgnat/s-exctra.ads
  f7180d7c5776d9f33ceb0ec00224c8b8  gcc/ada/libgnat/s-exnflt.ads
  8d9156ff3577703845f3601040f6b819  gcc/ada/libgnat/s-exnint.adb
! cbd7ae9cf3b61f39fe1bb13c8fb1722b  gcc/ada/libgnat/s-exnint.ads
  07592e37b48412fcdf90129473a24b4f  gcc/ada/libgnat/s-exnlfl.ads
  edb59a21ba5b02a6afeb18c838a8a93a  gcc/ada/libgnat/s-exnllf.adb
  cce7e4a11a66adee4324628fc2d38b22  gcc/ada/libgnat/s-exnllf.ads
  f41bdc44f7caed29b411cf8ae02d4148  gcc/ada/libgnat/s-exnlli.adb
! 4ba5da0ddaa717a8c9a5cb77c50c0bd4  gcc/ada/libgnat/s-exnlli.ads
! 33aa93a3c6ab8617c15236f779568214  gcc/ada/libgnat/s-exnllli.ads
  91eea476be44ceb3a868b90fefde8bf9  gcc/ada/libgnat/s-expint.adb
! 1a36dc98bd50ce05fa238d0568c94388  gcc/ada/libgnat/s-expint.ads
  804d00ea9948c1bfdbc27249145f82fb  gcc/ada/libgnat/s-explli.adb
! f0a05dad415c1145967d6fa444d108b8  gcc/ada/libgnat/s-explli.ads
! c33d44ed4d7f4e2fb63face3d5bc2f71  gcc/ada/libgnat/s-expllli.ads
! 074d23eacf93247b50be25c6e0854b56  gcc/ada/libgnat/s-explllu.ads
  dc491c1f8fb62dcd45d373ec01dd84e9  gcc/ada/libgnat/s-expllu.adb
! aa4139334214816621ffe10e367312d4  gcc/ada/libgnat/s-expllu.ads
! f4f72dd7419ba4f7ee14886d51e04b1f  gcc/ada/libgnat/s-expmod.adb
! d51999094023ce3f61ac19f133d6fe7e  gcc/ada/libgnat/s-expmod.ads
! d801ed10c9bef86c6e0b2e17caacbdd4  gcc/ada/libgnat/s-exponn.adb
! 61e6997b0251f1063cb6d03d59a203af  gcc/ada/libgnat/s-exponn.ads
  6b34184aaa570c66a4c36383d8678e23  gcc/ada/libgnat/s-exponr.adb
  d79a9b11f85737825cc23cbe2188a674  gcc/ada/libgnat/s-exponr.ads
! 60ae403b5a574fda17d5750173056ef8  gcc/ada/libgnat/s-expont.adb
! 52c237ac802da700242c23ff284e9fcf  gcc/ada/libgnat/s-expont.ads
! 392e938d8eccc33d6e24760b9ae1b585  gcc/ada/libgnat/s-exponu.adb
! 6ad7159e431f1a254bba3ff014521065  gcc/ada/libgnat/s-exponu.ads
  9c8be87272aabf828cd1069b49048acf  gcc/ada/libgnat/s-expuns.adb
! 414644769dbffe489f222058011bb8ad  gcc/ada/libgnat/s-expuns.ads
  822c64f95e66ff0cc8f3f16feecd14d5  gcc/ada/libgnat/s-fatflt.ads
  8a49ad816f20947364fb33aae87ac62e  gcc/ada/libgnat/s-fatgen.adb
  41c2987998c0e67732d92f38dc599e16  gcc/ada/libgnat/s-fatgen.ads
*************** b75405585a7536340b24fbe0150dd44b  gcc/ad
*** 2210,2265 ****
  e94511403bbbc60b1ede942955d87ddd  gcc/ada/libgnat/s-imagea.ads
  cf3f7c11a17f1ffcd34fcfc196d27c43  gcc/ada/libgnat/s-imageb.adb
  884a928446566ec63db0d4395d30f94b  gcc/ada/libgnat/s-imageb.ads
! 98336b21b44bee33e171e6c9c2b8d9d4  gcc/ada/libgnat/s-imaged.adb
! 4d7ff4af312eb27614f03b6653f6e50d  gcc/ada/libgnat/s-imaged.ads
! 2372262f2e89823901313923263c4e47  gcc/ada/libgnat/s-imagef.adb
! ae39ccca9eb61cd69d6db02cce5b4909  gcc/ada/libgnat/s-imagef.ads
! 595b29c5b28a24a2839cf512c8abf01a  gcc/ada/libgnat/s-imagei.adb
! 33d236b0b6971665b408ea6babc0b231  gcc/ada/libgnat/s-imagei.ads
  37ae6cff1430ac5e45bfb29796719b20  gcc/ada/libgnat/s-imagen.adb
  cf96472d3c2d5fb274d1aed877bf83b5  gcc/ada/libgnat/s-imagen.ads
  41c147db7e257aa2d720635f1e8e7d16  gcc/ada/libgnat/s-imager.adb
  3a97087b3f16b9f64e63510778832c4a  gcc/ada/libgnat/s-imager.ads
! 2c88d08c92ce5a3f36cc07ba2afcc61e  gcc/ada/libgnat/s-imageu.adb
! 970f6972d06a6d99969521badaf4ce40  gcc/ada/libgnat/s-imageu.ads
  9f133c32062e80b195ab4df85d4a5784  gcc/ada/libgnat/s-imagew.adb
  4cc5ce64f33c89f2c31b25faf7ace636  gcc/ada/libgnat/s-imagew.ads
! 7952c16e7d94fbb079cb0befb3d8dd55  gcc/ada/libgnat/s-imde128.ads
! 6e16ff4c508031f2fa9fe7f8376546f7  gcc/ada/libgnat/s-imde32.ads
! 4132104de77653fb2364fb353e9dd6d7  gcc/ada/libgnat/s-imde64.ads
  92f8f2b3a14edd2a53851d1ceb918119  gcc/ada/libgnat/s-imen16.ads
  54477cf930f2f93faa52fdc1efa143a9  gcc/ada/libgnat/s-imen32.ads
  c45b41a888fae0b58426b766d415daa8  gcc/ada/libgnat/s-imenu8.ads
! a5344a5e1696d435457d33160ce3061a  gcc/ada/libgnat/s-imfi128.ads
! af8273e1a3b2f37afea960248ed1bf86  gcc/ada/libgnat/s-imfi32.ads
! af6224e49a42c0dc4356cbeab76e3710  gcc/ada/libgnat/s-imfi64.ads
  aa07ce5a09e257512911da0ea65852c0  gcc/ada/libgnat/s-imgbiu.adb
  d2dac19cced675750d25b938c8e37086  gcc/ada/libgnat/s-imgbiu.ads
! 9c7d2f8f07dd41805a8af80faca981c0  gcc/ada/libgnat/s-imgboo.adb
! e9c2d4a5d6b2ba62504cafc6ddadd4c2  gcc/ada/libgnat/s-imgboo.ads
  09b81700f565c8169c32b4814f9d1611  gcc/ada/libgnat/s-imgcha.adb
  91be02b7f8f6b2cb8c6614549cbf2e54  gcc/ada/libgnat/s-imgcha.ads
  f01ccd07991252b098524f6a21e557f3  gcc/ada/libgnat/s-imgflt.ads
  cc114e5b2cce7864fb28fe420e697fcd  gcc/ada/libgnat/s-imgint.adb
! bfc9ea64b6bf764be0a8051157260363  gcc/ada/libgnat/s-imgint.ads
  3369a43c5fda6828ad10424fc23e58ae  gcc/ada/libgnat/s-imglfl.ads
  3bf175f5203b6958574a6e49d858bead  gcc/ada/libgnat/s-imgllb.adb
  bf8ae35f49d0d45ddf194ed5235211d4  gcc/ada/libgnat/s-imgllb.ads
  0258d10f770149dfd6a9ecfbcdd1cb5d  gcc/ada/libgnat/s-imgllf.ads
  5b2653f2b8afa4d0823009cac2d580ad  gcc/ada/libgnat/s-imglli.adb
! 165a7c0c6cf484c29f740a3cd71dba97  gcc/ada/libgnat/s-imglli.ads
  1a67a2ed10d271456e49fe2f484fca98  gcc/ada/libgnat/s-imglllb.ads
! a1340a6b105b0931e6e47f67bdaa9a75  gcc/ada/libgnat/s-imgllli.ads
! c04ca5e4d22373b98d1e0ed1d35bbb17  gcc/ada/libgnat/s-imglllu.ads
  8c4a166bbad675847c9af4a09db4a176  gcc/ada/libgnat/s-imglllw.ads
  8e8f487158a83445129cb356b59349f5  gcc/ada/libgnat/s-imgllu.adb
! 8c5f1ed8b98ff659c06d6e63dbaa2b19  gcc/ada/libgnat/s-imgllu.ads
  4eba300a926223af0c0f9187c803c35c  gcc/ada/libgnat/s-imgllw.adb
  be141a2045387e7f18f4c224457f85d9  gcc/ada/libgnat/s-imgllw.ads
  91cf627ae96376c6591ca6a76874b0e0  gcc/ada/libgnat/s-imgrea.adb
  af21858ef7052492bf7467c675739900  gcc/ada/libgnat/s-imgrea.ads
  38cfa78cc8e3190436e2a88f965db54b  gcc/ada/libgnat/s-imguns.adb
! 98ab790b78b9d153043e7d11f08dc2aa  gcc/ada/libgnat/s-imguns.ads
  34b73eb5ed09b9ca1234596795ad2e97  gcc/ada/libgnat/s-imguti.adb
  95eb73fad16107d6326e0a05cce7db81  gcc/ada/libgnat/s-imguti.ads
  52f2012dc3de73a658e002d3d2265483  gcc/ada/libgnat/s-imgwch.adb
--- 2198,2253 ----
  e94511403bbbc60b1ede942955d87ddd  gcc/ada/libgnat/s-imagea.ads
  cf3f7c11a17f1ffcd34fcfc196d27c43  gcc/ada/libgnat/s-imageb.adb
  884a928446566ec63db0d4395d30f94b  gcc/ada/libgnat/s-imageb.ads
! 604f8ce1b0c61164654ddfb7872cf926  gcc/ada/libgnat/s-imaged.adb
! 195be7f5b240c81d2885e9658862729b  gcc/ada/libgnat/s-imaged.ads
! 20959fed8f1bd00d72be790a57b9af41  gcc/ada/libgnat/s-imagef.adb
! 7721e4520332907d50a843c3f191a1e8  gcc/ada/libgnat/s-imagef.ads
! 6be00046e5fc5d426265836337d344db  gcc/ada/libgnat/s-imagei.adb
! 08f3f81a4feb52d347f16a4ff27ec5d3  gcc/ada/libgnat/s-imagei.ads
  37ae6cff1430ac5e45bfb29796719b20  gcc/ada/libgnat/s-imagen.adb
  cf96472d3c2d5fb274d1aed877bf83b5  gcc/ada/libgnat/s-imagen.ads
  41c147db7e257aa2d720635f1e8e7d16  gcc/ada/libgnat/s-imager.adb
  3a97087b3f16b9f64e63510778832c4a  gcc/ada/libgnat/s-imager.ads
! aa923b8dd934dd8e27b81dd941d83b8a  gcc/ada/libgnat/s-imageu.adb
! 3ef02f4df92ba778411eb0ada6ecd9d1  gcc/ada/libgnat/s-imageu.ads
  9f133c32062e80b195ab4df85d4a5784  gcc/ada/libgnat/s-imagew.adb
  4cc5ce64f33c89f2c31b25faf7ace636  gcc/ada/libgnat/s-imagew.ads
! 58805da51247af977a3f244dddfa82d5  gcc/ada/libgnat/s-imde128.ads
! 56452de6477986075a306e39ecc49cd1  gcc/ada/libgnat/s-imde32.ads
! ca28a5c18de5dc9a7cbac3f33b39238e  gcc/ada/libgnat/s-imde64.ads
  92f8f2b3a14edd2a53851d1ceb918119  gcc/ada/libgnat/s-imen16.ads
  54477cf930f2f93faa52fdc1efa143a9  gcc/ada/libgnat/s-imen32.ads
  c45b41a888fae0b58426b766d415daa8  gcc/ada/libgnat/s-imenu8.ads
! 99a64d2a7fd640a72498751a760d6773  gcc/ada/libgnat/s-imfi128.ads
! 1fd538bf74313262d1fdfde40c9f2756  gcc/ada/libgnat/s-imfi32.ads
! 5552507f16f67c7272edc9b4baf815c5  gcc/ada/libgnat/s-imfi64.ads
  aa07ce5a09e257512911da0ea65852c0  gcc/ada/libgnat/s-imgbiu.adb
  d2dac19cced675750d25b938c8e37086  gcc/ada/libgnat/s-imgbiu.ads
! c6fbfa4a9eae991f44ce6432f4766549  gcc/ada/libgnat/s-imgboo.adb
! edf053efc5bceec1ed28b8d62d82fd2e  gcc/ada/libgnat/s-imgboo.ads
  09b81700f565c8169c32b4814f9d1611  gcc/ada/libgnat/s-imgcha.adb
  91be02b7f8f6b2cb8c6614549cbf2e54  gcc/ada/libgnat/s-imgcha.ads
  f01ccd07991252b098524f6a21e557f3  gcc/ada/libgnat/s-imgflt.ads
  cc114e5b2cce7864fb28fe420e697fcd  gcc/ada/libgnat/s-imgint.adb
! db3d7f50c1bd632ba875ecb056aa196a  gcc/ada/libgnat/s-imgint.ads
  3369a43c5fda6828ad10424fc23e58ae  gcc/ada/libgnat/s-imglfl.ads
  3bf175f5203b6958574a6e49d858bead  gcc/ada/libgnat/s-imgllb.adb
  bf8ae35f49d0d45ddf194ed5235211d4  gcc/ada/libgnat/s-imgllb.ads
  0258d10f770149dfd6a9ecfbcdd1cb5d  gcc/ada/libgnat/s-imgllf.ads
  5b2653f2b8afa4d0823009cac2d580ad  gcc/ada/libgnat/s-imglli.adb
! fb265f5c405db489fedc5fb2546c6081  gcc/ada/libgnat/s-imglli.ads
  1a67a2ed10d271456e49fe2f484fca98  gcc/ada/libgnat/s-imglllb.ads
! 774dc35b8622146b95b5d7c3996dc6ca  gcc/ada/libgnat/s-imgllli.ads
! 380ca96535e3af2e7a37b807b517f5b8  gcc/ada/libgnat/s-imglllu.ads
  8c4a166bbad675847c9af4a09db4a176  gcc/ada/libgnat/s-imglllw.ads
  8e8f487158a83445129cb356b59349f5  gcc/ada/libgnat/s-imgllu.adb
! d7979e4e1c9e414525449314a22fc921  gcc/ada/libgnat/s-imgllu.ads
  4eba300a926223af0c0f9187c803c35c  gcc/ada/libgnat/s-imgllw.adb
  be141a2045387e7f18f4c224457f85d9  gcc/ada/libgnat/s-imgllw.ads
  91cf627ae96376c6591ca6a76874b0e0  gcc/ada/libgnat/s-imgrea.adb
  af21858ef7052492bf7467c675739900  gcc/ada/libgnat/s-imgrea.ads
  38cfa78cc8e3190436e2a88f965db54b  gcc/ada/libgnat/s-imguns.adb
! 25de51aceb7662728f8f853ca8bba1a7  gcc/ada/libgnat/s-imguns.ads
  34b73eb5ed09b9ca1234596795ad2e97  gcc/ada/libgnat/s-imguti.adb
  95eb73fad16107d6326e0a05cce7db81  gcc/ada/libgnat/s-imguti.ads
  52f2012dc3de73a658e002d3d2265483  gcc/ada/libgnat/s-imgwch.adb
*************** f3707f4d20aaf91eaf7ae4cbf0c0885c  gcc/ad
*** 2603,2611 ****
  870165ae5b404d6643e814aec6fc19c4  gcc/ada/libgnat/s-soflin.ads
  97c40f0db4abdd08f2015cf213b93ee2  gcc/ada/libgnat/s-soliin.adb
  56651c46e0030cf7c6ddb024c07d7e0f  gcc/ada/libgnat/s-soliin.ads
- e9244914ab3a0af42fc682c9905e72e5  gcc/ada/libgnat/s-spark.ads
- 072839c5f70c27da5fe9ff1adf2cf55f  gcc/ada/libgnat/s-spcuop.adb
- dfd44cccbee9a292e4ec3a7eb2210193  gcc/ada/libgnat/s-spcuop.ads
  134559b65e2149925b3ea7eaf6ce7c1c  gcc/ada/libgnat/s-spsufi.adb
  8c54d22271fb0eb1ea10be2ad4195437  gcc/ada/libgnat/s-spsufi.ads
  e865d893f0dc5166d74707abd3ccf817  gcc/ada/libgnat/s-stache.adb
--- 2591,2596 ----
*************** ed9803237b06bc4a3d390e2358fd3b27  gcc/ad
*** 2647,2653 ****
  26134f1dafdbc6f3bfdee2d8a3d691c7  gcc/ada/libgnat/s-traent.ads
  42dec61edfcb9d86beb94f9f2774d3df  gcc/ada/libgnat/s-trasym.adb
  ba0f0e2b49a2abcb11276ca13680a9ca  gcc/ada/libgnat/s-trasym.ads
! 53e27655cb2d5a7a462d1b0304637779  gcc/ada/libgnat/s-trasym__dwarf.adb
  ae31c644571f5bd80e55212954450689  gcc/ada/libgnat/s-tsmona.adb
  d24397c620e7798c862b39526b3374cd  gcc/ada/libgnat/s-tsmona__linux.adb
  8991c7832c179d6caa3de959bccd9ca2  gcc/ada/libgnat/s-tsmona__mingw.adb
--- 2632,2638 ----
  26134f1dafdbc6f3bfdee2d8a3d691c7  gcc/ada/libgnat/s-traent.ads
  42dec61edfcb9d86beb94f9f2774d3df  gcc/ada/libgnat/s-trasym.adb
  ba0f0e2b49a2abcb11276ca13680a9ca  gcc/ada/libgnat/s-trasym.ads
! 4ee8d0b5c508944e7253d134538f80b3  gcc/ada/libgnat/s-trasym__dwarf.adb
  ae31c644571f5bd80e55212954450689  gcc/ada/libgnat/s-tsmona.adb
  d24397c620e7798c862b39526b3374cd  gcc/ada/libgnat/s-tsmona__linux.adb
  8991c7832c179d6caa3de959bccd9ca2  gcc/ada/libgnat/s-tsmona__mingw.adb
*************** e8b447e367bf8205851754fb0d292c3b  gcc/ad
*** 2663,2720 ****
  4e4f501fde79b03325a9d25aa424ad30  gcc/ada/libgnat/s-vafi128.ads
  33fa912b6e83aee9a3244edfd59cb9b2  gcc/ada/libgnat/s-vafi32.ads
  c6ce2a87517245b2b27cf41ac77b3192  gcc/ada/libgnat/s-vafi64.ads
! bd19dba1bebbf5dab7fdd6043122be84  gcc/ada/libgnat/s-vaispe.adb
! 58844a480c302ea42b0e325e3952b5d6  gcc/ada/libgnat/s-vaispe.ads
! 489672f1804322778f739938dccfce8e  gcc/ada/libgnat/s-valboo.adb
! a6cddda65bfb775e68bccf065b4a0ab0  gcc/ada/libgnat/s-valboo.ads
  865ed67e2f17553b1372b878d89e6011  gcc/ada/libgnat/s-valcha.adb
  6a6293a1e74b9a2589fe770644ae7bc7  gcc/ada/libgnat/s-valcha.ads
  e0562a04bacbde441559446993fbd60e  gcc/ada/libgnat/s-valflt.ads
  e06f9b56125d3e138309c9afb78572d1  gcc/ada/libgnat/s-valint.adb
! 378cb14d187daf46c07b71d2617c60be  gcc/ada/libgnat/s-valint.ads
  487926e06f1eb2002f891823209952e8  gcc/ada/libgnat/s-vallfl.ads
  e3573a331c9da65676bb43b33e41eccd  gcc/ada/libgnat/s-valllf.ads
  1a279bde042a741973fba3973af36af2  gcc/ada/libgnat/s-vallli.adb
! bcfda185573484775e6741bc5d2fa610  gcc/ada/libgnat/s-vallli.ads
! a4f09fe88a1d33e55aff4a4d3ea2bd29  gcc/ada/libgnat/s-valllli.ads
! 7a10e3a0c125e46b34fcf79980b3b67a  gcc/ada/libgnat/s-vallllu.ads
  ebc5cf7d12e00dad27cc95ef08f3f9ed  gcc/ada/libgnat/s-valllu.adb
! a2d8197866f4a7476bc4264696c711cd  gcc/ada/libgnat/s-valllu.ads
  7ce9f4a2290eaae020364a5e782ac01f  gcc/ada/libgnat/s-valrea.adb
  fea79505753dcfddbdd4bb7e6c817f95  gcc/ada/libgnat/s-valrea.ads
- 6fd51b685b82a5adb941119c347a1fa5  gcc/ada/libgnat/s-valspe.adb
- 8ead03e5c593fbf235d15e1243889a5e  gcc/ada/libgnat/s-valspe.ads
  ea5e9da8ebce11c805cb17d0f233f416  gcc/ada/libgnat/s-valued.adb
  6878604d7169687d8b0559a0c882290b  gcc/ada/libgnat/s-valued.ads
  a8ff28e37c96c283d18cc665773d4f7d  gcc/ada/libgnat/s-valuef.adb
  f57876720eb8101aa21c0b11bb083f4d  gcc/ada/libgnat/s-valuef.ads
! 3abbb0b768c2d7b58d661b2608f566aa  gcc/ada/libgnat/s-valuei.adb
! db56addcc91555584e1fc4a035a0314b  gcc/ada/libgnat/s-valuei.ads
  45d076789f772670210823137d7e95c5  gcc/ada/libgnat/s-valuen.adb
  085c74c7ed0d273025dda1e9056c2660  gcc/ada/libgnat/s-valuen.ads
  e41e17197bed6190fc6f971c052c2023  gcc/ada/libgnat/s-valuer.adb
  23b00738ace44d22300c5217e54626db  gcc/ada/libgnat/s-valuer.ads
! 9b85995a468e41d9c21a4297d146eaaa  gcc/ada/libgnat/s-valueu.adb
! a529bdc80faff9bec345ce2ac8173fd4  gcc/ada/libgnat/s-valueu.ads
  462e5a0207eadc68a181a16d2d3e355f  gcc/ada/libgnat/s-valuns.adb
! f3a430312f2a39b7746559fe6a1e12ba  gcc/ada/libgnat/s-valuns.ads
! 16fc104a427a87f113de3d7f54cedebe  gcc/ada/libgnat/s-valuti.adb
! f61e963f192329ddb54ffe763653b3d8  gcc/ada/libgnat/s-valuti.ads
  ba4c2f32529d0e79da44fc4f70bacf03  gcc/ada/libgnat/s-valwch.adb
  22cb7235ac47c197e96f0afde7817106  gcc/ada/libgnat/s-valwch.ads
! 04bef13f09687be9b7f3572b300824ba  gcc/ada/libgnat/s-vauspe.adb
! 5a1719dd5227193cda512b08ba549b8d  gcc/ada/libgnat/s-vauspe.ads
! f8088f550846f6b5ec86be03b8443661  gcc/ada/libgnat/s-veboop.adb
! 34027eb69f3d2f324bd016f4faf2402f  gcc/ada/libgnat/s-veboop.ads
  697ae56080e22092df255b4b20223a53  gcc/ada/libgnat/s-vector.ads
  4c2c36da0456180bf3dbea82fbdf19d0  gcc/ada/libgnat/s-vercon.adb
  6807ef9d5192fc782ec5ac2a60577087  gcc/ada/libgnat/s-vercon.ads
- b874cd8c77f4091f8f4c0efc7d229eb9  gcc/ada/libgnat/s-vs_int.ads
- c3acfffe09a3e18f9e1a450e62d20eb7  gcc/ada/libgnat/s-vs_lli.ads
- 971b2014015ae781a028fc10e4cc4360  gcc/ada/libgnat/s-vs_llu.ads
- 6b3b3a7d8f26f2b5d47afc91d1aa9114  gcc/ada/libgnat/s-vs_uns.ads
- 66577c8f80961e28c4c5ee4d99b37e85  gcc/ada/libgnat/s-vsllli.ads
- c56f2c0e72324d4fdadf4497fb8d45ff  gcc/ada/libgnat/s-vslllu.ads
  a17e0ec89843a9562c1edcce8329b6ca  gcc/ada/libgnat/s-wchcnv.adb
  0bc3cc4614f11f9c05e9c03c3abfce0b  gcc/ada/libgnat/s-wchcnv.ads
  33e6119333b74923e207e53ebd4ec3ed  gcc/ada/libgnat/s-wchcon.adb
--- 2648,2693 ----
  4e4f501fde79b03325a9d25aa424ad30  gcc/ada/libgnat/s-vafi128.ads
  33fa912b6e83aee9a3244edfd59cb9b2  gcc/ada/libgnat/s-vafi32.ads
  c6ce2a87517245b2b27cf41ac77b3192  gcc/ada/libgnat/s-vafi64.ads
! bd1e2f33b6e3175f145dbbbbdfe14a8b  gcc/ada/libgnat/s-valboo.adb
! 09056f453fdbbc3e1840bc7f855887f1  gcc/ada/libgnat/s-valboo.ads
  865ed67e2f17553b1372b878d89e6011  gcc/ada/libgnat/s-valcha.adb
  6a6293a1e74b9a2589fe770644ae7bc7  gcc/ada/libgnat/s-valcha.ads
  e0562a04bacbde441559446993fbd60e  gcc/ada/libgnat/s-valflt.ads
  e06f9b56125d3e138309c9afb78572d1  gcc/ada/libgnat/s-valint.adb
! 6efb3439bc026fd53878bf78479a1d54  gcc/ada/libgnat/s-valint.ads
  487926e06f1eb2002f891823209952e8  gcc/ada/libgnat/s-vallfl.ads
  e3573a331c9da65676bb43b33e41eccd  gcc/ada/libgnat/s-valllf.ads
  1a279bde042a741973fba3973af36af2  gcc/ada/libgnat/s-vallli.adb
! 351fb9cfeb88beb7be52346d6cd09144  gcc/ada/libgnat/s-vallli.ads
! 17762b571fef26c79dc289175844701f  gcc/ada/libgnat/s-valllli.ads
! b65d9577e62db8395bb2d0979fb6a89c  gcc/ada/libgnat/s-vallllu.ads
  ebc5cf7d12e00dad27cc95ef08f3f9ed  gcc/ada/libgnat/s-valllu.adb
! baff4dd34c4f5608ef7d05eb895f4d41  gcc/ada/libgnat/s-valllu.ads
  7ce9f4a2290eaae020364a5e782ac01f  gcc/ada/libgnat/s-valrea.adb
  fea79505753dcfddbdd4bb7e6c817f95  gcc/ada/libgnat/s-valrea.ads
  ea5e9da8ebce11c805cb17d0f233f416  gcc/ada/libgnat/s-valued.adb
  6878604d7169687d8b0559a0c882290b  gcc/ada/libgnat/s-valued.ads
  a8ff28e37c96c283d18cc665773d4f7d  gcc/ada/libgnat/s-valuef.adb
  f57876720eb8101aa21c0b11bb083f4d  gcc/ada/libgnat/s-valuef.ads
! bcb3e97ba193bfaf7461ab85f04edbf8  gcc/ada/libgnat/s-valuei.adb
! 8832c4d9879450406361af7a50cddfea  gcc/ada/libgnat/s-valuei.ads
  45d076789f772670210823137d7e95c5  gcc/ada/libgnat/s-valuen.adb
  085c74c7ed0d273025dda1e9056c2660  gcc/ada/libgnat/s-valuen.ads
  e41e17197bed6190fc6f971c052c2023  gcc/ada/libgnat/s-valuer.adb
  23b00738ace44d22300c5217e54626db  gcc/ada/libgnat/s-valuer.ads
! 4b21a224eefd654da8aa5bc01f79fa3c  gcc/ada/libgnat/s-valueu.adb
! d6a76c3100b6447ab174f6f9af69360a  gcc/ada/libgnat/s-valueu.ads
  462e5a0207eadc68a181a16d2d3e355f  gcc/ada/libgnat/s-valuns.adb
! d84639603cc842a686b7bf0bd746a6ac  gcc/ada/libgnat/s-valuns.ads
! e2d7afeb57e030893c1ea16a3a2f1a47  gcc/ada/libgnat/s-valuti.adb
! 7cfc2eb10282fdf59f519ef8df0e4b70  gcc/ada/libgnat/s-valuti.ads
  ba4c2f32529d0e79da44fc4f70bacf03  gcc/ada/libgnat/s-valwch.adb
  22cb7235ac47c197e96f0afde7817106  gcc/ada/libgnat/s-valwch.ads
! b008db2a4ddbcba658ff1eb870334289  gcc/ada/libgnat/s-veboop.adb
! 0e3473c1730a327e2d3da810589e7564  gcc/ada/libgnat/s-veboop.ads
  697ae56080e22092df255b4b20223a53  gcc/ada/libgnat/s-vector.ads
  4c2c36da0456180bf3dbea82fbdf19d0  gcc/ada/libgnat/s-vercon.adb
  6807ef9d5192fc782ec5ac2a60577087  gcc/ada/libgnat/s-vercon.ads
  a17e0ec89843a9562c1edcce8329b6ca  gcc/ada/libgnat/s-wchcnv.adb
  0bc3cc4614f11f9c05e9c03c3abfce0b  gcc/ada/libgnat/s-wchcnv.ads
  33e6119333b74923e207e53ebd4ec3ed  gcc/ada/libgnat/s-wchcon.adb
*************** a0a036fee9ee8a24f2a71734dc548c5e  gcc/ad
*** 2731,2748 ****
  908c9dc0150281b72d32887f1f95d61e  gcc/ada/libgnat/s-widcha.ads
  d2596f15023ba932727348b12b221716  gcc/ada/libgnat/s-widenu.adb
  008356cbeb79232035ae194b767441e6  gcc/ada/libgnat/s-widenu.ads
! 4eb7cdf4d27b76c63c965dc890f0e923  gcc/ada/libgnat/s-widint.ads
  bbe7e60031fc02e02f008cfdcbea364a  gcc/ada/libgnat/s-widlli.adb
! 2cf84ba398daaa0f0933e510277da4ce  gcc/ada/libgnat/s-widlli.ads
! c079aba8db0c45ec05c944ea2666a091  gcc/ada/libgnat/s-widllli.ads
! d1fe4791a311bba60c01714f1eca1fb9  gcc/ada/libgnat/s-widlllu.ads
  93256b1da4ecccc285d3206ad51bf0c5  gcc/ada/libgnat/s-widllu.adb
! f1e9f66c980cd8c5537ecb977f68a1a5  gcc/ada/libgnat/s-widllu.ads
! 191650a86b5449021d618b9495df48b7  gcc/ada/libgnat/s-widthi.adb
  236974cb335eaa3d544fb00b93d8fc2b  gcc/ada/libgnat/s-widthi.ads
! fe1f73ddcf34beaeceb9248d25333e48  gcc/ada/libgnat/s-widthu.adb
! 6f39428359ec69f79f97bafb328f67b2  gcc/ada/libgnat/s-widthu.ads
! 5bdaa47711ac348b33b126869cdff794  gcc/ada/libgnat/s-widuns.ads
  13131a015542b41c9cdb4a3cfa0aaac5  gcc/ada/libgnat/s-widwch.adb
  d53faaefa77446c81af8ba6d2fce63bd  gcc/ada/libgnat/s-widwch.ads
  5c09de2fd484e02df6d31866104f9148  gcc/ada/libgnat/s-win32.ads
--- 2704,2721 ----
  908c9dc0150281b72d32887f1f95d61e  gcc/ada/libgnat/s-widcha.ads
  d2596f15023ba932727348b12b221716  gcc/ada/libgnat/s-widenu.adb
  008356cbeb79232035ae194b767441e6  gcc/ada/libgnat/s-widenu.ads
! df7a3d5da9d67782d412717ecd33e5d1  gcc/ada/libgnat/s-widint.ads
  bbe7e60031fc02e02f008cfdcbea364a  gcc/ada/libgnat/s-widlli.adb
! 126e1d3a692122d3c2aabf86ff5f4ad9  gcc/ada/libgnat/s-widlli.ads
! ece21b203c6a1b0e426a3a350d686402  gcc/ada/libgnat/s-widllli.ads
! b5cda4e054e53555b3fff18d55bc15eb  gcc/ada/libgnat/s-widlllu.ads
  93256b1da4ecccc285d3206ad51bf0c5  gcc/ada/libgnat/s-widllu.adb
! 54676429e353e26d0d4aa74f8e976042  gcc/ada/libgnat/s-widllu.ads
! 7a42a5c3ae5a73e32a28d31c76c41474  gcc/ada/libgnat/s-widthi.adb
  236974cb335eaa3d544fb00b93d8fc2b  gcc/ada/libgnat/s-widthi.ads
! 7cd42e24cf47d84ae106c31e071818f9  gcc/ada/libgnat/s-widthu.adb
! 3d5934920874644481a1d1edb72b351a  gcc/ada/libgnat/s-widthu.ads
! b39d77fad5aa0f909e5d50643c68ca19  gcc/ada/libgnat/s-widuns.ads
  13131a015542b41c9cdb4a3cfa0aaac5  gcc/ada/libgnat/s-widwch.adb
  d53faaefa77446c81af8ba6d2fce63bd  gcc/ada/libgnat/s-widwch.ads
  5c09de2fd484e02df6d31866104f9148  gcc/ada/libgnat/s-win32.ads
*************** df5aa0dd04daf543efbc0f72adda7a9a  gcc/ad
*** 2827,2839 ****
  7f39a63ae2aca38a1e09b830d8298e42  gcc/ada/namet-sp.adb
  6bcaf8f1c19dc69c747c2d495b341d5f  gcc/ada/namet-sp.ads
  a2481c3bfe8c5089ac1f678f5143f367  gcc/ada/namet.adb
! 274243b06e5aafd9ae09c5d334979394  gcc/ada/namet.ads
  29e83737754a1fc58d053ff18161216c  gcc/ada/namet.h
! dc90c17405377d786c7b95c06f79dabe  gcc/ada/nlists.adb
  aef70af2835279de8e33b52eb8375d45  gcc/ada/nlists.ads
  276eb125c0df313227d9ecfb3f38866d  gcc/ada/nlists.h
  e3945121c34a6169efa63d13c280b7e7  gcc/ada/opt.adb
! 6d65789c9b58487a5f6d8172fba262d7  gcc/ada/opt.ads
  fcbd079f712fd349c109f5ecd640096b  gcc/ada/osint-b.adb
  2604c4a51297a9867c69ce9985c3fb8b  gcc/ada/osint-b.ads
  4f31614f93bd69a85fe6c1f144e04b37  gcc/ada/osint-c.adb
--- 2800,2812 ----
  7f39a63ae2aca38a1e09b830d8298e42  gcc/ada/namet-sp.adb
  6bcaf8f1c19dc69c747c2d495b341d5f  gcc/ada/namet-sp.ads
  a2481c3bfe8c5089ac1f678f5143f367  gcc/ada/namet.adb
! f1fb5ee4bc7f8cd768266621e3fbf941  gcc/ada/namet.ads
  29e83737754a1fc58d053ff18161216c  gcc/ada/namet.h
! cd6c342cc127610beca7bb72cbcc907a  gcc/ada/nlists.adb
  aef70af2835279de8e33b52eb8375d45  gcc/ada/nlists.ads
  276eb125c0df313227d9ecfb3f38866d  gcc/ada/nlists.h
  e3945121c34a6169efa63d13c280b7e7  gcc/ada/opt.adb
! 81c7437cfdf356a69e28e5dc844cdfc0  gcc/ada/opt.ads
  fcbd079f712fd349c109f5ecd640096b  gcc/ada/osint-b.adb
  2604c4a51297a9867c69ce9985c3fb8b  gcc/ada/osint-b.ads
  4f31614f93bd69a85fe6c1f144e04b37  gcc/ada/osint-c.adb
*************** ff58ad534c1d41e61a849480d13ce148  gcc/ad
*** 2842,2849 ****
  d0e8a185b784d6fa32d59390c9e8e780  gcc/ada/osint-l.ads
  4444d9a9330843418fc67a5d03720550  gcc/ada/osint-m.adb
  22f9062945fcd35f16780a79716b998a  gcc/ada/osint-m.ads
! 5cb0abddd2b8e90b33965e827052dc5c  gcc/ada/osint.adb
! 459fa10421ec39b23d4b3bf5a9af373a  gcc/ada/osint.ads
  b9fd1f536d8f1c867c911cbe2996ebeb  gcc/ada/output.adb
  57985da6ee6f2d437d610b1b9249f436  gcc/ada/output.ads
  3f5b95b8fa96ad05275062ec5d9a000e  gcc/ada/par-ch10.adb
--- 2815,2822 ----
  d0e8a185b784d6fa32d59390c9e8e780  gcc/ada/osint-l.ads
  4444d9a9330843418fc67a5d03720550  gcc/ada/osint-m.adb
  22f9062945fcd35f16780a79716b998a  gcc/ada/osint-m.ads
! f44734296ba1a1b67bc069f4b7d4cacf  gcc/ada/osint.adb
! 267004c371c299ed0af09bdb2bf77111  gcc/ada/osint.ads
  b9fd1f536d8f1c867c911cbe2996ebeb  gcc/ada/output.adb
  57985da6ee6f2d437d610b1b9249f436  gcc/ada/output.ads
  3f5b95b8fa96ad05275062ec5d9a000e  gcc/ada/par-ch10.adb
*************** b9fd1f536d8f1c867c911cbe2996ebeb  gcc/ad
*** 2852,2867 ****
  a9ac2ac18fbb8924bfd3047c61aa9e87  gcc/ada/par-ch13.adb
  367c520caf968244162abc3229e0b453  gcc/ada/par-ch2.adb
  a5b0bb97ff5d0883ff6ae65776076e78  gcc/ada/par-ch3.adb
! 26911930ebacfa07a56360e80db1304b  gcc/ada/par-ch4.adb
  dd8d7961fca087943b21edabff41f046  gcc/ada/par-ch5.adb
  052036b5f26258a601d75e9decb70877  gcc/ada/par-ch6.adb
  2b201234474be782ce30a79ebe674e81  gcc/ada/par-ch7.adb
  349dda80fe39ecf9d2b818ec0e769d80  gcc/ada/par-ch8.adb
  3d5733e116665c179c26e9939a59395e  gcc/ada/par-ch9.adb
! 5b544c2cb89b5cbb3be4b0b11e983323  gcc/ada/par-endh.adb
  6f12aeb2c6db21d91040dfb1bf2e74ce  gcc/ada/par-labl.adb
  f94c687806a26857ca4b2a93d99b31e1  gcc/ada/par-load.adb
! 338e26ca67fc4d0fd6e853902661853b  gcc/ada/par-prag.adb
  ee1279472214ff7ca5b61685a2ada15f  gcc/ada/par-sync.adb
  62df590e3ddd37b092c26e4b8b1b684a  gcc/ada/par-tchk.adb
  4b301bf83a66a95a68b6556cd5b684d9  gcc/ada/par-util.adb
--- 2825,2840 ----
  a9ac2ac18fbb8924bfd3047c61aa9e87  gcc/ada/par-ch13.adb
  367c520caf968244162abc3229e0b453  gcc/ada/par-ch2.adb
  a5b0bb97ff5d0883ff6ae65776076e78  gcc/ada/par-ch3.adb
! e5ab8810937968ed4a11dc225759b531  gcc/ada/par-ch4.adb
  dd8d7961fca087943b21edabff41f046  gcc/ada/par-ch5.adb
  052036b5f26258a601d75e9decb70877  gcc/ada/par-ch6.adb
  2b201234474be782ce30a79ebe674e81  gcc/ada/par-ch7.adb
  349dda80fe39ecf9d2b818ec0e769d80  gcc/ada/par-ch8.adb
  3d5733e116665c179c26e9939a59395e  gcc/ada/par-ch9.adb
! d4d826a8938d43dd9c9ccc8bb66465e6  gcc/ada/par-endh.adb
  6f12aeb2c6db21d91040dfb1bf2e74ce  gcc/ada/par-labl.adb
  f94c687806a26857ca4b2a93d99b31e1  gcc/ada/par-load.adb
! 8113cc08a49b97128e8b42b9756bae35  gcc/ada/par-prag.adb
  ee1279472214ff7ca5b61685a2ada15f  gcc/ada/par-sync.adb
  62df590e3ddd37b092c26e4b8b1b684a  gcc/ada/par-tchk.adb
  4b301bf83a66a95a68b6556cd5b684d9  gcc/ada/par-util.adb
*************** fcfa33c29572e4f892bd68b226e0184d  gcc/ad
*** 2882,2888 ****
  bb35d323ecf448aa8fb7025a4bc206ac  gcc/ada/raise.h
  60f15e9242cc708164c2465f35b7bcee  gcc/ada/repinfo-input.adb
  2068823632327326518141ecef478b56  gcc/ada/repinfo-input.ads
! c03cfc430368506adba96bf2402f38cd  gcc/ada/repinfo.adb
  2b7ee770fce987fa4a536a7ff6f66d28  gcc/ada/repinfo.ads
  9f01bfb3f02044d2af9dd8653ff046c7  gcc/ada/repinfo.h
  3d4a1dc93d967d84654b6489aaf51b1b  gcc/ada/restrict.adb
--- 2855,2861 ----
  bb35d323ecf448aa8fb7025a4bc206ac  gcc/ada/raise.h
  60f15e9242cc708164c2465f35b7bcee  gcc/ada/repinfo-input.adb
  2068823632327326518141ecef478b56  gcc/ada/repinfo-input.ads
! 7126ac03f73afc294125a90cee4722c9  gcc/ada/repinfo.adb
  2b7ee770fce987fa4a536a7ff6f66d28  gcc/ada/repinfo.ads
  9f01bfb3f02044d2af9dd8653ff046c7  gcc/ada/repinfo.h
  3d4a1dc93d967d84654b6489aaf51b1b  gcc/ada/restrict.adb
*************** c03cfc430368506adba96bf2402f38cd  gcc/ad
*** 2890,2897 ****
  9d12840e7f4b919f1f71a18a65b3463c  gcc/ada/rident.ads
  32312ab752a2a0382c9276e387b389e1  gcc/ada/rtfinal.c
  01263778e97af0ecb135164f1bbfd6ad  gcc/ada/rtinit.c
! b97bb61639a4fbef04ce0a15c662ecbd  gcc/ada/rtsfind.adb
! b33c5657f5f656c345cebf31636501bf  gcc/ada/rtsfind.ads
  66e987f268458746a6afb190c151af7a  gcc/ada/runtime.h
  b6100bf6eaab78f9424e994302129621  gcc/ada/s-oscons-tmplt.c
  a34bfe2b691bf488816cc77770321ff3  gcc/ada/s-pack.adb.tmpl
--- 2863,2870 ----
  9d12840e7f4b919f1f71a18a65b3463c  gcc/ada/rident.ads
  32312ab752a2a0382c9276e387b389e1  gcc/ada/rtfinal.c
  01263778e97af0ecb135164f1bbfd6ad  gcc/ada/rtinit.c
! dbaacbc6137249e74a2f6564812aebf9  gcc/ada/rtsfind.adb
! e4e5cf29682458c5890157bcbd67e0c1  gcc/ada/rtsfind.ads
  66e987f268458746a6afb190c151af7a  gcc/ada/runtime.h
  b6100bf6eaab78f9424e994302129621  gcc/ada/s-oscons-tmplt.c
  a34bfe2b691bf488816cc77770321ff3  gcc/ada/s-pack.adb.tmpl
*************** d34f4eaf1b942bbe24dfacb3a3f5acc5  gcc/ad
*** 2905,2953 ****
  3d6844a3d789be74e930244a32d59054  gcc/ada/scng.adb
  17deda1207575729ca2f490d7931a64b  gcc/ada/scng.ads
  c34ee64559a764f063b49301a7504e82  gcc/ada/scos.adb
! abd831e54ebd759115e62d420bdb5c2f  gcc/ada/scos.ads
! 89b7ed9db10b2220f7130b1d92b0624a  gcc/ada/scos.h
  1e9843bd9ac3288c126ec7d6727ea8e6  gcc/ada/sdefault.ads
  3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
  162cc8e58f789b4cd25dc980dc46398a  gcc/ada/sem.adb
! afaa0a52de285d1aad9c58b79b424a1f  gcc/ada/sem.ads
! 94e004b797859a3d3abdda4c00eb0de7  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! a2c8cab8a69fa886e34c1985158586d7  gcc/ada/sem_attr.adb
! bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
  4a02c8331cea42852aa409345905ab04  gcc/ada/sem_aux.adb
  3f6d12eb2d9c7a6a829eaf2bda0535a5  gcc/ada/sem_aux.ads
  95f5465ee6749d8d7209f2477eaa2b5c  gcc/ada/sem_case.adb
  88daa5c9b6e135316b52695cae25a496  gcc/ada/sem_case.ads
  84667b3de209c0b04f82a349c6125ab0  gcc/ada/sem_cat.adb
  e364f4e3ae92066699cc93a8f7b828c1  gcc/ada/sem_cat.ads
! 8eccdd133612c5ef2800235152014280  gcc/ada/sem_ch10.adb
! 14c23ddb8ce8f7ab6478f3aff202d2bf  gcc/ada/sem_ch10.ads
  5980a02146588bf0e31ced2382290670  gcc/ada/sem_ch11.adb
  1b6f89866a5d427002df059be3847d62  gcc/ada/sem_ch11.ads
! cbe9f460bd2c7f318044bdf84715739e  gcc/ada/sem_ch12.adb
  b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ada/sem_ch12.ads
! 68a4ab355d2e5ec7094e5a397fe51cee  gcc/ada/sem_ch13.adb
  24bb91233702860aa2a308e59ba7cb6a  gcc/ada/sem_ch13.ads
  14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
  2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! f0761776bdaff64b0991990fd9b39545  gcc/ada/sem_ch3.adb
! 5fd10023b617fc61dce7c2801674285d  gcc/ada/sem_ch3.ads
! ba23b73adf13e1aa74891d0c302d9661  gcc/ada/sem_ch4.adb
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
! 3d2fb7e75bcf5cb7e2f014691fbc1d87  gcc/ada/sem_ch5.adb
  cbfbd3e4737f56717fc2ffda6b38f125  gcc/ada/sem_ch5.ads
! 7c3b00e7399acf0f697e0caee99f9645  gcc/ada/sem_ch6.adb
  3adb4dc0d6d1183f0fe82a96638bac4c  gcc/ada/sem_ch6.ads
  3c7c6e6b95a9cddb1d6f1a42a5962379  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
! 3fa2088c8a170324d2bae749a94e32d9  gcc/ada/sem_ch8.adb
  f3965d375e31f991fba42df0595a3470  gcc/ada/sem_ch8.ads
! 8be6bc881183cddc88b43e757a478bc1  gcc/ada/sem_ch9.adb
  7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
  dea2a3321bde0d3ed6be665ade24a2c6  gcc/ada/sem_dim.adb
  d0ed9c569455451ee26c8e2565b7125b  gcc/ada/sem_dim.ads
! 0b4ce58f68d5aff0988a26cb09840d67  gcc/ada/sem_disp.adb
  40937cb7584e45e4c545aa3e4c20fbb2  gcc/ada/sem_disp.ads
  8f677120e0bcecbdcfa5b9c4f44cb282  gcc/ada/sem_dist.adb
  a38c4ce4bc2936bd0a73c28ff1b0df61  gcc/ada/sem_dist.ads
--- 2878,2925 ----
  3d6844a3d789be74e930244a32d59054  gcc/ada/scng.adb
  17deda1207575729ca2f490d7931a64b  gcc/ada/scng.ads
  c34ee64559a764f063b49301a7504e82  gcc/ada/scos.adb
! cbf1143b39dba16ccff2bad507662b80  gcc/ada/scos.ads
  1e9843bd9ac3288c126ec7d6727ea8e6  gcc/ada/sdefault.ads
  3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
  162cc8e58f789b4cd25dc980dc46398a  gcc/ada/sem.adb
! 852fbcc89a3ed10b6c00d4f9686d1405  gcc/ada/sem.ads
! a2f51950a7d3736df297fddd81cab2ae  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! 3a25cbce24f1bb6c8578261a8f7657b4  gcc/ada/sem_attr.adb
! 825e191d7eee72ea4718b1fc2ba02824  gcc/ada/sem_attr.ads
  4a02c8331cea42852aa409345905ab04  gcc/ada/sem_aux.adb
  3f6d12eb2d9c7a6a829eaf2bda0535a5  gcc/ada/sem_aux.ads
  95f5465ee6749d8d7209f2477eaa2b5c  gcc/ada/sem_case.adb
  88daa5c9b6e135316b52695cae25a496  gcc/ada/sem_case.ads
  84667b3de209c0b04f82a349c6125ab0  gcc/ada/sem_cat.adb
  e364f4e3ae92066699cc93a8f7b828c1  gcc/ada/sem_cat.ads
! e1d820208228bea25b763b4a905ee66b  gcc/ada/sem_ch10.adb
! 6e34ce648cfc10b24c12b68e0e59dcb8  gcc/ada/sem_ch10.ads
  5980a02146588bf0e31ced2382290670  gcc/ada/sem_ch11.adb
  1b6f89866a5d427002df059be3847d62  gcc/ada/sem_ch11.ads
! 4decab17d328881ded544560dc4ff990  gcc/ada/sem_ch12.adb
  b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ada/sem_ch12.ads
! 19cb06f83ea2b247f7f928137eafdde0  gcc/ada/sem_ch13.adb
  24bb91233702860aa2a308e59ba7cb6a  gcc/ada/sem_ch13.ads
  14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
  2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! 260f72d231c4084c98d49fdf29046f93  gcc/ada/sem_ch3.adb
! 6d4dc1e40bcf57a8d4faa973cd54c1be  gcc/ada/sem_ch3.ads
! 05bc281a5e0c3e752a4d8c2e75ab5e53  gcc/ada/sem_ch4.adb
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
! 3bb75edede811051a0265caaac30883f  gcc/ada/sem_ch5.adb
  cbfbd3e4737f56717fc2ffda6b38f125  gcc/ada/sem_ch5.ads
! df066e8c1a4f7027d9d17f3233e89c3b  gcc/ada/sem_ch6.adb
  3adb4dc0d6d1183f0fe82a96638bac4c  gcc/ada/sem_ch6.ads
  3c7c6e6b95a9cddb1d6f1a42a5962379  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
! 7560bdea9c883b2ce9e314fc9b73f156  gcc/ada/sem_ch8.adb
  f3965d375e31f991fba42df0595a3470  gcc/ada/sem_ch8.ads
! 7fdc25b17002200422b401c1df8f051c  gcc/ada/sem_ch9.adb
  7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
  dea2a3321bde0d3ed6be665ade24a2c6  gcc/ada/sem_dim.adb
  d0ed9c569455451ee26c8e2565b7125b  gcc/ada/sem_dim.ads
! ee1685cc77eb01871b4b800e9e31f159  gcc/ada/sem_disp.adb
  40937cb7584e45e4c545aa3e4c20fbb2  gcc/ada/sem_disp.ads
  8f677120e0bcecbdcfa5b9c4f44cb282  gcc/ada/sem_dist.adb
  a38c4ce4bc2936bd0a73c28ff1b0df61  gcc/ada/sem_dist.ads
*************** ea4d856a616d24b9db47871b82e88726  gcc/ad
*** 2955,2969 ****
  c074ec7450863300eff2a21c036a624b  gcc/ada/sem_elab.ads
  1dcf7c5349839b9e9ab4ee0d1954c7c6  gcc/ada/sem_elim.adb
  c837e01542a712c622bac1cd152fc080  gcc/ada/sem_elim.ads
! 9d6602868f501bc32b05f81cdc622438  gcc/ada/sem_eval.adb
! e0db1a09711cf7617413ca73c539ed67  gcc/ada/sem_eval.ads
  e8e79e2a818321d7816e27eed8d17404  gcc/ada/sem_intr.adb
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
  4a954a685009a9b0bcf72a8517dc3bdf  gcc/ada/sem_mech.adb
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
! c48b9a5f156d00572d9ac2b90c919eaf  gcc/ada/sem_prag.adb
! 3d4cec1697839c758bf4ee78035143d3  gcc/ada/sem_prag.ads
! ed271da5d1a73a10b18b1b8f2e8f48c8  gcc/ada/sem_res.adb
  bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
  28d33ede4288814374d1909847798c7d  gcc/ada/sem_scil.adb
  db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
--- 2927,2941 ----
  c074ec7450863300eff2a21c036a624b  gcc/ada/sem_elab.ads
  1dcf7c5349839b9e9ab4ee0d1954c7c6  gcc/ada/sem_elim.adb
  c837e01542a712c622bac1cd152fc080  gcc/ada/sem_elim.ads
! c5985b744f37c622b9b6e1304c1f0a25  gcc/ada/sem_eval.adb
! 6ad36871bb495808ea611c6c620fc482  gcc/ada/sem_eval.ads
  e8e79e2a818321d7816e27eed8d17404  gcc/ada/sem_intr.adb
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
  4a954a685009a9b0bcf72a8517dc3bdf  gcc/ada/sem_mech.adb
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
! af21494fa64f9f3a79c48d041a477461  gcc/ada/sem_prag.adb
! 77d07a6ae20be77457587ee20ba32423  gcc/ada/sem_prag.ads
! af57de4e138d709f95154297e17cb15d  gcc/ada/sem_res.adb
  bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
  28d33ede4288814374d1909847798c7d  gcc/ada/sem_scil.adb
  db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
*************** db6f5a37bd59fd83ff3286e71ab985fe  gcc/ad
*** 2971,2982 ****
  89d73c108bd8921f6d6cd84d98726ea5  gcc/ada/sem_smem.ads
  d0a2f5b2f65a874363f7fbe2b9a79f8b  gcc/ada/sem_type.adb
  dee50852181adfada17fb5b7423ed973  gcc/ada/sem_type.ads
! d700532c70ef2f7dae1bd10f1690b0bd  gcc/ada/sem_util.adb
! 907db3161ce24f5c766ff52fc6b8bbd0  gcc/ada/sem_util.ads
! e4e5495b136cf8092bcca5f770b4f9a7  gcc/ada/sem_warn.adb
  e71db5efd6c6d9969e1e7887ebe4e6b5  gcc/ada/sem_warn.ads
  239ca67ac9aa430abfe5120a8d4302d9  gcc/ada/set_targ.adb
! da11142861c1704e3a61d22e59c50f30  gcc/ada/set_targ.ads
  d677962c5cb91bdfb376118de618c60e  gcc/ada/sfn_scan.adb
  a6f437e146a2424a366c8756e1588bc4  gcc/ada/sfn_scan.ads
  fbcd374b992573a80a2d6f7cbf5beb67  gcc/ada/sigtramp-android-asm.h
--- 2943,2954 ----
  89d73c108bd8921f6d6cd84d98726ea5  gcc/ada/sem_smem.ads
  d0a2f5b2f65a874363f7fbe2b9a79f8b  gcc/ada/sem_type.adb
  dee50852181adfada17fb5b7423ed973  gcc/ada/sem_type.ads
! 5e243b7749b59d293b50c9f56a0b17bb  gcc/ada/sem_util.adb
! ad9a4d7c27a8e26bb9757ef260924ebb  gcc/ada/sem_util.ads
! c4d6026d01f30a61cf884201cf7dc331  gcc/ada/sem_warn.adb
  e71db5efd6c6d9969e1e7887ebe4e6b5  gcc/ada/sem_warn.ads
  239ca67ac9aa430abfe5120a8d4302d9  gcc/ada/set_targ.adb
! b80f6a9d10e348b68d302b5cc4a1eb88  gcc/ada/set_targ.ads
  d677962c5cb91bdfb376118de618c60e  gcc/ada/sfn_scan.adb
  a6f437e146a2424a366c8756e1588bc4  gcc/ada/sfn_scan.ads
  fbcd374b992573a80a2d6f7cbf5beb67  gcc/ada/sigtramp-android-asm.h
*************** f32c4d3d5df9ad9663b4978f7f8a2573  gcc/ad
*** 2992,2998 ****
  d78423bdc8b85ab7cdc070996aa4d544  gcc/ada/sinfo-utils.adb
  a279552ee28f4ed267298848351ccbc6  gcc/ada/sinfo-utils.ads
  e6d5c3ccb5893bb3943fbdf529b298d6  gcc/ada/sinfo.adb
! 8e8c42b290106081cdc833dabc5198d0  gcc/ada/sinfo.ads
  ebb37a07fb72782f86b0c141d3f6077c  gcc/ada/sinput-c.adb
  ec9033e4caebeb446063de16e18918f4  gcc/ada/sinput-c.ads
  2fec6a5fbe7c9e765ea70c82814b0fd3  gcc/ada/sinput-d.adb
--- 2964,2970 ----
  d78423bdc8b85ab7cdc070996aa4d544  gcc/ada/sinfo-utils.adb
  a279552ee28f4ed267298848351ccbc6  gcc/ada/sinfo-utils.ads
  e6d5c3ccb5893bb3943fbdf529b298d6  gcc/ada/sinfo.adb
! 76293ac8f4b7d5fae9e57b9c36c42704  gcc/ada/sinfo.ads
  ebb37a07fb72782f86b0c141d3f6077c  gcc/ada/sinput-c.adb
  ec9033e4caebeb446063de16e18918f4  gcc/ada/sinput-c.ads
  2fec6a5fbe7c9e765ea70c82814b0fd3  gcc/ada/sinput-d.adb
*************** ec9033e4caebeb446063de16e18918f4  gcc/ad
*** 3000,3008 ****
  f6ff4b8bae7d2f10bf04f58ae4efb096  gcc/ada/sinput-l.adb
  69397f052fca6f376ab0c93aa830f6f5  gcc/ada/sinput-l.ads
  bb43802a54a3cfd9cb953188a875da3d  gcc/ada/sinput.adb
! c0280f6a389a4ab756ec15590c723446  gcc/ada/sinput.ads
  66e1d7dbeefd14b51758e17a022c2929  gcc/ada/snames.adb-tmpl
! 58b286913f92124f9a66bd8e6c339bd6  gcc/ada/snames.ads-tmpl
  b5bad059d1da34b0f6f1f8e3b605f212  gcc/ada/snames.h-tmpl
  6a1a72215ac86e7110b29ca0d8fef7f6  gcc/ada/socket.c
  8bdf1e57c628c071b503b49f5c5078f6  gcc/ada/spark_xrefs.adb
--- 2972,2980 ----
  f6ff4b8bae7d2f10bf04f58ae4efb096  gcc/ada/sinput-l.adb
  69397f052fca6f376ab0c93aa830f6f5  gcc/ada/sinput-l.ads
  bb43802a54a3cfd9cb953188a875da3d  gcc/ada/sinput.adb
! ba7717c1c0a8bd7b1c3feee6580246e6  gcc/ada/sinput.ads
  66e1d7dbeefd14b51758e17a022c2929  gcc/ada/snames.adb-tmpl
! 3b358a9b916b7f80248088e96ade6a08  gcc/ada/snames.ads-tmpl
  b5bad059d1da34b0f6f1f8e3b605f212  gcc/ada/snames.h-tmpl
  6a1a72215ac86e7110b29ca0d8fef7f6  gcc/ada/socket.c
  8bdf1e57c628c071b503b49f5c5078f6  gcc/ada/spark_xrefs.adb
*************** ceaa52edf6355622601cd30f7c096b06  gcc/ad
*** 3024,3036 ****
  072e20e96999b6e3137326e76e71b03d  gcc/ada/stylesw.ads
  280b043e991285d0e2dd469546dc80b0  gcc/ada/switch-b.adb
  564abc18b3d01ff76cff00fcb90fa03f  gcc/ada/switch-b.ads
! eb03882a3fdad0958d30e788471ec8ba  gcc/ada/switch-c.adb
  276c746b48c55f010cd06e04a2d1ccfb  gcc/ada/switch-c.ads
  7149d4feea0dd2cd75afe673ce2bb0b2  gcc/ada/switch-m.adb
  2ee5998b92d56bf9c5cc341e1f1ad78e  gcc/ada/switch-m.ads
  47cb0867e38b3a29e29843f102979ad0  gcc/ada/switch.adb
  3ce7cd08e301dd2487e065308c9e9fe9  gcc/ada/switch.ads
! 5a21d65e7171e89ab2717979819a3213  gcc/ada/sysdep.c
  bef209f16c0106f0a9c5255fb6bf96bb  gcc/ada/table.adb
  b1eaff871eb559b799ef7fe2960e86f9  gcc/ada/table.ads
  9f45bf3ee4cf0a6b06c0b5cc6a4830a7  gcc/ada/targext.c
--- 2996,3008 ----
  072e20e96999b6e3137326e76e71b03d  gcc/ada/stylesw.ads
  280b043e991285d0e2dd469546dc80b0  gcc/ada/switch-b.adb
  564abc18b3d01ff76cff00fcb90fa03f  gcc/ada/switch-b.ads
! 2ecef3b3fe36aa3671a962283f2d4e64  gcc/ada/switch-c.adb
  276c746b48c55f010cd06e04a2d1ccfb  gcc/ada/switch-c.ads
  7149d4feea0dd2cd75afe673ce2bb0b2  gcc/ada/switch-m.adb
  2ee5998b92d56bf9c5cc341e1f1ad78e  gcc/ada/switch-m.ads
  47cb0867e38b3a29e29843f102979ad0  gcc/ada/switch.adb
  3ce7cd08e301dd2487e065308c9e9fe9  gcc/ada/switch.ads
! 6726d67dd3bb2abdda020dd462bc80ee  gcc/ada/sysdep.c
  bef209f16c0106f0a9c5255fb6bf96bb  gcc/ada/table.adb
  b1eaff871eb559b799ef7fe2960e86f9  gcc/ada/table.ads
  9f45bf3ee4cf0a6b06c0b5cc6a4830a7  gcc/ada/targext.c
*************** e02948c9347a91c37c4f24e7d4356a02  gcc/ad
*** 3053,3060 ****
  aa571047977f5d4eede1b3c590cfca1a  gcc/ada/uintp.h
  1dc0ce12c6e595a777852de3cd1ed7bf  gcc/ada/uname.adb
  50dcf6258eb74ce8859b9a6c664d1518  gcc/ada/uname.ads
! 3b16fb5a404c2abb2d73de19f67cd9ae  gcc/ada/urealp.adb
! 7c44e3e9dfe3a3602c5e4a0e9f21fc9e  gcc/ada/urealp.ads
  8da16dc7040064c1822811f3aa2b0741  gcc/ada/urealp.h
  2207d552bf64c2646f0813e5f7493c77  gcc/ada/usage.adb
  39aa1ad0590789d255e892abebddfe14  gcc/ada/usage.ads
--- 3025,3032 ----
  aa571047977f5d4eede1b3c590cfca1a  gcc/ada/uintp.h
  1dc0ce12c6e595a777852de3cd1ed7bf  gcc/ada/uname.adb
  50dcf6258eb74ce8859b9a6c664d1518  gcc/ada/uname.ads
! b04795771a6e485551c5422be454c896  gcc/ada/urealp.adb
! 3efbeacc845581e3689901f319e061f0  gcc/ada/urealp.ads
  8da16dc7040064c1822811f3aa2b0741  gcc/ada/urealp.h
  2207d552bf64c2646f0813e5f7493c77  gcc/ada/usage.adb
  39aa1ad0590789d255e892abebddfe14  gcc/ada/usage.ads
*************** c77616ec7ed7ec81357de9544f955910  gcc/at
*** 3189,3195 ****
  05d6a8f61e165cf9438457af9042b98f  gcc/attribs.cc
  1bdf6723b4c88b5b1495f718e4dd00c7  gcc/attribs.h
  54fb3cb1cab63227c50a50819ea1a3c3  gcc/auto-inc-dec.cc
! b2d17f9e0332eaa196506e9a769962d8  gcc/auto-profile.cc
  fe453e02b17197af9a9101edb6590b74  gcc/auto-profile.h
  b49502046f4647eae48740d67a1ad97e  gcc/avoid-store-forwarding.cc
  b187aaef50f37afeeee1f8239d5aa033  gcc/avoid-store-forwarding.h
--- 3161,3167 ----
  05d6a8f61e165cf9438457af9042b98f  gcc/attribs.cc
  1bdf6723b4c88b5b1495f718e4dd00c7  gcc/attribs.h
  54fb3cb1cab63227c50a50819ea1a3c3  gcc/auto-inc-dec.cc
! 89b5d679ce1dac93bc60af4cdf818424  gcc/auto-profile.cc
  fe453e02b17197af9a9101edb6590b74  gcc/auto-profile.h
  b49502046f4647eae48740d67a1ad97e  gcc/avoid-store-forwarding.cc
  b187aaef50f37afeeee1f8239d5aa033  gcc/avoid-store-forwarding.h
*************** fe292df4b7f3e3ef7c0b8305084b6844  gcc/bi
*** 3204,3212 ****
  f808dbcc1ad6add5a0867c4b3e03fc4d  gcc/builtin-attrs.def
  9b2538f67781c7ccab3891a929caaaf0  gcc/builtin-types.def
  d8ff60ecebd67b2be7141da80578a9ef  gcc/builtins.cc
! d7a735fed7d7781add6ff1f190c2496f  gcc/builtins.def
  bd61b50b47560dc1324bf507bea5d87e  gcc/builtins.h
! 81ea8d610ae1622344be8caab17dbf6d  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  823fe168bb0f63a39de62d9f0251a1b5  gcc/c-family/c-ada-spec.cc
  4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
--- 3176,3184 ----
  f808dbcc1ad6add5a0867c4b3e03fc4d  gcc/builtin-attrs.def
  9b2538f67781c7ccab3891a929caaaf0  gcc/builtin-types.def
  d8ff60ecebd67b2be7141da80578a9ef  gcc/builtins.cc
! dd55b2c473c288bdc5752f7da8cc21e7  gcc/builtins.def
  bd61b50b47560dc1324bf507bea5d87e  gcc/builtins.h
! 6680d312aa2ee61f8d89076fd88b7d9a  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  823fe168bb0f63a39de62d9f0251a1b5  gcc/c-family/c-ada-spec.cc
  4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
*************** fc808567009babd00ebcf49b5b985691  gcc/c-
*** 3242,3276 ****
  4286e0086805aa55b325f25d060c6003  gcc/c-family/c-ubsan.cc
  a28f2477c85a17e42026521322b3649a  gcc/c-family/c-ubsan.h
  ed4e4a12acd44dcb58dd646d038bc97a  gcc/c-family/c-warn.cc
! f6b6e110510ea514fc4bef91fb4e0a9d  gcc/c-family/c.opt
  d5b8ff413daae8e04d6380b3696fa4c7  gcc/c-family/c.opt.urls
  22bd7478421befafcfbd805e3ca373ac  gcc/c-family/cppspec.cc
  aaf683e3b02704cfbfab0627d82edf85  gcc/c-family/known-headers.cc
  ce9d2259a1edb5d4b1f728988bd9ef6a  gcc/c-family/known-headers.h
  f09c431056b5138e7cfe8376e05de9a6  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! 17788e40831e9f4517dcbcdfbdf89907  gcc/c/ChangeLog
  b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 582473af68170ff4ab51cf79a342fa0a  gcc/c/c-decl.cc
  3601ac6299bb2579fedc2dcf2aba7773  gcc/c/c-errors.cc
  d9b5dea1631cefab5fe5ca3602db30f0  gcc/c/c-fold.cc
  d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
  5466f6371f54fce4ae89206f7792bd01  gcc/c/c-lang.h
  29c0a26baf73e55c081ac675fa7f87f8  gcc/c/c-objc-common.cc
  757f583d06a3ec98336adbfc92b4e6a8  gcc/c/c-objc-common.h
! ea6a5b958887bedd49e539b5ae220033  gcc/c/c-parser.cc
  9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
  9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
  9cef7f8aed78affc01930dfcb3d3185c  gcc/c/c-tree.h
! 75eeb7a09737d9ec5312ddfd0f541122  gcc/c/c-typeck.cc
  cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
  1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
  c169f2d94910060e76c333db12b960b9  gcc/c/gimple-parser.cc
  84e0373f5db72260d34cf125d8587f06  gcc/c/gimple-parser.h
  137bed6e3e62068dc6a3292ae42a0a4e  gcc/caller-save.cc
! 1e3386f905492f5b8c62c15f0958591e  gcc/calls.cc
  5eea9a238f2c182f5964d1de966e6a34  gcc/calls.h
  c7957e627bab86a3bb7b1adfe7d144e9  gcc/ccmp.cc
  5d9ee312518a07716ecbfe4b5ec17091  gcc/ccmp.h
--- 3214,3248 ----
  4286e0086805aa55b325f25d060c6003  gcc/c-family/c-ubsan.cc
  a28f2477c85a17e42026521322b3649a  gcc/c-family/c-ubsan.h
  ed4e4a12acd44dcb58dd646d038bc97a  gcc/c-family/c-warn.cc
! 2a25d7ae8eb4df735c60846992d4493c  gcc/c-family/c.opt
  d5b8ff413daae8e04d6380b3696fa4c7  gcc/c-family/c.opt.urls
  22bd7478421befafcfbd805e3ca373ac  gcc/c-family/cppspec.cc
  aaf683e3b02704cfbfab0627d82edf85  gcc/c-family/known-headers.cc
  ce9d2259a1edb5d4b1f728988bd9ef6a  gcc/c-family/known-headers.h
  f09c431056b5138e7cfe8376e05de9a6  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! fd25ec0eaf35213a4a57652ddef1c99a  gcc/c/ChangeLog
  b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! c605976649e1be7e728227d3137c00cd  gcc/c/c-decl.cc
  3601ac6299bb2579fedc2dcf2aba7773  gcc/c/c-errors.cc
  d9b5dea1631cefab5fe5ca3602db30f0  gcc/c/c-fold.cc
  d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
  5466f6371f54fce4ae89206f7792bd01  gcc/c/c-lang.h
  29c0a26baf73e55c081ac675fa7f87f8  gcc/c/c-objc-common.cc
  757f583d06a3ec98336adbfc92b4e6a8  gcc/c/c-objc-common.h
! 0fddfb5c8ff4a14e9bd76aae2e7670e7  gcc/c/c-parser.cc
  9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
  9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
  9cef7f8aed78affc01930dfcb3d3185c  gcc/c/c-tree.h
! ec4d5dbddad8926f49e3f7be05167869  gcc/c/c-typeck.cc
  cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
  1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
  c169f2d94910060e76c333db12b960b9  gcc/c/gimple-parser.cc
  84e0373f5db72260d34cf125d8587f06  gcc/c/gimple-parser.h
  137bed6e3e62068dc6a3292ae42a0a4e  gcc/caller-save.cc
! f3d0c3a4edc1f56f743578c3cab6d26b  gcc/calls.cc
  5eea9a238f2c182f5964d1de966e6a34  gcc/calls.h
  c7957e627bab86a3bb7b1adfe7d144e9  gcc/ccmp.cc
  5d9ee312518a07716ecbfe4b5ec17091  gcc/ccmp.h
*************** cc50b703ddacf4f5ef66bd38576c5e1f  gcc/cg
*** 3300,3354 ****
  b87eab2b04054f0d3cd20768be99c655  gcc/cgraphclones.cc
  3be8ee84d005d8a1f5a65ed6a7fce76a  gcc/cgraphunit.cc
  70fa61377ff65ad3f25778a40159f510  gcc/cif-code.def
! 1da340c12b96090f0b62deb04dfff7b2  gcc/cobol/ChangeLog
! 0e25dd48b4c3e56f9d9b604cd8980f36  gcc/cobol/Make-lang.in
! d6e5c9435942e9ec3f1d2e83926b5b0c  gcc/cobol/cbldiag.h
! 9e7a4b13beb5b83f4daacc78af0ac72d  gcc/cobol/cdf-copy.cc
! 3bb5c2a5f2ca5af128d40c5e880848cf  gcc/cobol/cdf.y
! 8cb1f53df078dd651d781e05997ba213  gcc/cobol/cdfval.h
  77fc5e59eed5f55ff8b66d9138ca6c18  gcc/cobol/cobol-system.h
  8a1232cc40a34e1a92e07d4d85b2e2aa  gcc/cobol/cobol1.cc
  5985e1898b04e553a91bdc474c56311f  gcc/cobol/config-lang.in
  aab9bcdb44bef72e1c3a8cd069bfcccd  gcc/cobol/convert.cc
! c667c1d76610da33128e9202898b39ef  gcc/cobol/copybook.h
  d82104539470e81b006b5f9227229da7  gcc/cobol/dts.h
! cd566058e56e0bdd6d5fc6174d575702  gcc/cobol/except.cc
! 9099d4eaec925397d6d3a4d11d080a4c  gcc/cobol/exceptg.h
  24c537bb1367d796de8c91d7fb8ce910  gcc/cobol/gcobc
  78da9811c8766f6fe50c4c0282cfd56b  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
  e9f9397b294013c218ab16870d43e8ef  gcc/cobol/gcobolspec.cc
! 9e37c8e8883f3c043bd5bf4392bd91f9  gcc/cobol/genapi.cc
  9405cedcadb1d8d4dc1ec68fc2fb0c59  gcc/cobol/genapi.h
  033c74fe6abf78033a7be7135bc86e96  gcc/cobol/gengen.cc
  5a15fbb14271aa588750f652642e3b68  gcc/cobol/gengen.h
  03907d50aa67f715c8b1af3c9fc37fd2  gcc/cobol/genmath.cc
  d44e8c86d57fb704b6c1fbab3464fb9a  gcc/cobol/genmath.h
! 282cbbb6d294ffcc750bf7012dcb6532  gcc/cobol/genutil.cc
! 4e33daa941879d0fb799ce0c5005369d  gcc/cobol/genutil.h
  7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 7b5758bc973cca5cffb0d13f9071a412  gcc/cobol/inspect.h
  2c85ade938027e95c4c411b384f6ad11  gcc/cobol/lang-specs.h
  4ab99742b15962360c2189eb9cdb087c  gcc/cobol/lang.opt
  746a2d46b3bc2a5f5663a9d64a78a674  gcc/cobol/lang.opt.urls
! d4e05726ccfdcf6fa5da466988b55543  gcc/cobol/lexio.cc
! 20795df25934313075a740d861e58496  gcc/cobol/lexio.h
! fd5f21d1ea0f5ba2e12955a22e443a58  gcc/cobol/parse.y
  e44d4370366ebe1eb8d69b795d1de676  gcc/cobol/parse_ante.h
  4d55488629c09ff19bd872e7dd9d0fc7  gcc/cobol/parse_util.h
! 5296ce4bd85b19aa8fcfbb6c5df161e7  gcc/cobol/scan.l
! 04b8a11796b1997e1bca2267b95c872c  gcc/cobol/scan_ante.h
! e15d0bd1bbc8d73dee00f50180bfcb54  gcc/cobol/scan_post.h
  31c4d4468924864effced0de842cfc10  gcc/cobol/show_parse.h
  d75653f25ec3b747265e4ab78aa71521  gcc/cobol/structs.cc
  be06e098e0c2eb8f8ac2f0094bf53181  gcc/cobol/structs.h
! 8d15623a479c31a46d282cb6f3847f85  gcc/cobol/symbols.cc
! 378e043a4dcc6e53dfe34adb1407158f  gcc/cobol/symbols.h
! e441ad4a4e4a660cbe2d37713bd9a088  gcc/cobol/symfind.cc
  a7b20717b0839af4783bead169c2ab02  gcc/cobol/token_names.h
  94ee230280ef44983fee5c81648f8669  gcc/cobol/udf/stored-char-length.cbl
! 6ba2cbbb6288a394c97e5d88faf5098c  gcc/cobol/util.cc
! 3e2148efc3efe4f46e1170c4c0d9e8ef  gcc/cobol/util.h
  0f3dba102a04da8ca1e45b9b16741bde  gcc/collect-utils.cc
  6e6685d60444844fecf36350b5956f77  gcc/collect-utils.h
  30202062ccc5696f6203f07ab6965763  gcc/collect2-aix.cc
--- 3272,3327 ----
  b87eab2b04054f0d3cd20768be99c655  gcc/cgraphclones.cc
  3be8ee84d005d8a1f5a65ed6a7fce76a  gcc/cgraphunit.cc
  70fa61377ff65ad3f25778a40159f510  gcc/cif-code.def
! 86634618b92d21d6546be497a24e451d  gcc/cobol/ChangeLog
! c12a7eb0f93f9bb94ac811e17d9fd3e5  gcc/cobol/Make-lang.in
! 0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
! 9fe3e756e47ccf4ed80c11e535ec2de9  gcc/cobol/cbldiag.h
! 20e6b8fb8b95db7ab38864b7931812ce  gcc/cobol/cdf-copy.cc
! feb6db22d92d2ba7510a24d8db96ba5a  gcc/cobol/cdf.y
! 89f7833668290e607850097ee8207cf0  gcc/cobol/cdfval.h
  77fc5e59eed5f55ff8b66d9138ca6c18  gcc/cobol/cobol-system.h
  8a1232cc40a34e1a92e07d4d85b2e2aa  gcc/cobol/cobol1.cc
  5985e1898b04e553a91bdc474c56311f  gcc/cobol/config-lang.in
  aab9bcdb44bef72e1c3a8cd069bfcccd  gcc/cobol/convert.cc
! 46737f82628267b070d0c217c0a87e70  gcc/cobol/copybook.h
  d82104539470e81b006b5f9227229da7  gcc/cobol/dts.h
! c229c0cae609de02bf65d6a9cc63b868  gcc/cobol/except.cc
! 8208f264c49dfd56f856e8a4229545b9  gcc/cobol/exceptg.h
  24c537bb1367d796de8c91d7fb8ce910  gcc/cobol/gcobc
  78da9811c8766f6fe50c4c0282cfd56b  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
  e9f9397b294013c218ab16870d43e8ef  gcc/cobol/gcobolspec.cc
! d336ef8c1a3331697786da7b17b016e2  gcc/cobol/genapi.cc
  9405cedcadb1d8d4dc1ec68fc2fb0c59  gcc/cobol/genapi.h
  033c74fe6abf78033a7be7135bc86e96  gcc/cobol/gengen.cc
  5a15fbb14271aa588750f652642e3b68  gcc/cobol/gengen.h
  03907d50aa67f715c8b1af3c9fc37fd2  gcc/cobol/genmath.cc
  d44e8c86d57fb704b6c1fbab3464fb9a  gcc/cobol/genmath.h
! a756f44fff2c4f4136a54415eadd9a5e  gcc/cobol/genutil.cc
! 40de4fe66e173dc50d9f3cb593866265  gcc/cobol/genutil.h
  7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 3b70c7910812017584e9dcb2db68e630  gcc/cobol/inspect.h
  2c85ade938027e95c4c411b384f6ad11  gcc/cobol/lang-specs.h
  4ab99742b15962360c2189eb9cdb087c  gcc/cobol/lang.opt
  746a2d46b3bc2a5f5663a9d64a78a674  gcc/cobol/lang.opt.urls
! 1d114db4c6ef51aab01cb878ad99b271  gcc/cobol/lexio.cc
! a674c18d797f48c8bc7ca31a09f2c642  gcc/cobol/lexio.h
! 03a5ab34493d838287c4a118b5045f13  gcc/cobol/parse.y
  e44d4370366ebe1eb8d69b795d1de676  gcc/cobol/parse_ante.h
  4d55488629c09ff19bd872e7dd9d0fc7  gcc/cobol/parse_util.h
! 9689989861d0489b87a4f018a5e55c8a  gcc/cobol/scan.l
! 7634fadf4c5641a9f168a793bea88a2a  gcc/cobol/scan_ante.h
! 028d321b36fa057857916c125928df97  gcc/cobol/scan_post.h
  31c4d4468924864effced0de842cfc10  gcc/cobol/show_parse.h
  d75653f25ec3b747265e4ab78aa71521  gcc/cobol/structs.cc
  be06e098e0c2eb8f8ac2f0094bf53181  gcc/cobol/structs.h
! 52955eaae3c4975b535d6eec5b98f1e1  gcc/cobol/symbols.cc
! ca2865149429457a06ea1dab34bffa9c  gcc/cobol/symbols.h
! a86e336e67bb1b692c75bb7840ee326c  gcc/cobol/symfind.cc
  a7b20717b0839af4783bead169c2ab02  gcc/cobol/token_names.h
  94ee230280ef44983fee5c81648f8669  gcc/cobol/udf/stored-char-length.cbl
! b55722cc671e79c2b44189403629de29  gcc/cobol/util.cc
! cf96dbd1c8f1ce54defd6c5ed84862cb  gcc/cobol/util.h
  0f3dba102a04da8ca1e45b9b16741bde  gcc/collect-utils.cc
  6e6685d60444844fecf36350b5956f77  gcc/collect-utils.h
  30202062ccc5696f6203f07ab6965763  gcc/collect2-aix.cc
*************** f55010fab8b9aabea82c3ac50d031028  gcc/co
*** 3360,3366 ****
  5d00831740184b5f4f8f133a3a1ffc16  gcc/combine.cc
  2b9ccf7fc2473ef7e36aee9bcf170843  gcc/common.md
  8045185ca8e24e72801a20d223f8095d  gcc/common.opt
! 1993ece31020fdc23b391ee45140e8cb  gcc/common.opt.urls
  26050db921f73fd87b026dc950bde97b  gcc/common/common-target-def.h
  dae02ebe59cdaaf21611ad354e939ca5  gcc/common/common-target.def
  4a00b1cedd9d15d93e32920b16b3c292  gcc/common/common-target.h
--- 3333,3339 ----
  5d00831740184b5f4f8f133a3a1ffc16  gcc/combine.cc
  2b9ccf7fc2473ef7e36aee9bcf170843  gcc/common.md
  8045185ca8e24e72801a20d223f8095d  gcc/common.opt
! 0fa30baeb636ae24a437473c671f1ddb  gcc/common.opt.urls
  26050db921f73fd87b026dc950bde97b  gcc/common/common-target-def.h
  dae02ebe59cdaaf21611ad354e939ca5  gcc/common/common-target.def
  4a00b1cedd9d15d93e32920b16b3c292  gcc/common/common-target.h
*************** f842f1b8595f3ac795ba92c2b07085e6  gcc/co
*** 3405,3411 ****
  03a53ecd36b397fbe0846ead66505e2d  gcc/common/config/pa/pa-common.cc
  1fbcfc1a92bb13e4405bc75767cf8a36  gcc/common/config/pdp11/pdp11-common.cc
  7ee5967300d3c96a608eea63008aa893  gcc/common/config/pru/pru-common.cc
! cdbda143d3c43b1cdf4492aca972d5d2  gcc/common/config/riscv/riscv-common.cc
  8a5a4ee26b110f44497208d1b31e3503  gcc/common/config/riscv/riscv-ext-bitmask.def
  08537bef63b33fd56aeb2a292c9a207a  gcc/common/config/rs6000/rs6000-common.cc
  9ddaceac9f81b4798f64241b273f8e1c  gcc/common/config/rx/rx-common.cc
--- 3378,3384 ----
  03a53ecd36b397fbe0846ead66505e2d  gcc/common/config/pa/pa-common.cc
  1fbcfc1a92bb13e4405bc75767cf8a36  gcc/common/config/pdp11/pdp11-common.cc
  7ee5967300d3c96a608eea63008aa893  gcc/common/config/pru/pru-common.cc
! 32ac20bcf0b3b7dbed68099639d7cdfe  gcc/common/config/riscv/riscv-common.cc
  8a5a4ee26b110f44497208d1b31e3503  gcc/common/config/riscv/riscv-ext-bitmask.def
  08537bef63b33fd56aeb2a292c9a207a  gcc/common/config/rs6000/rs6000-common.cc
  9ddaceac9f81b4798f64241b273f8e1c  gcc/common/config/rx/rx-common.cc
*************** b5a916bb9dd788754ac9e4ad7174ee74  gcc/co
*** 3420,3426 ****
  b209201703dd766f76ff5e16b99191e5  gcc/compare-elim.cc
  618780fbce0ce0cb6f9b86e079ce4e54  gcc/conditions.h
  1b4bc58c657bf910929d06d51bc8fa6c  gcc/config.build
! baea24fe2fdaa63d9f58bc74893116f8  gcc/config.gcc
  053bb14b428d0f073932e88b9a29a8bd  gcc/config.host
  1d528f9807496430cc01191e59f745d3  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
--- 3393,3399 ----
  b209201703dd766f76ff5e16b99191e5  gcc/compare-elim.cc
  618780fbce0ce0cb6f9b86e079ce4e54  gcc/conditions.h
  1b4bc58c657bf910929d06d51bc8fa6c  gcc/config.build
! 417e94e154d32185488976be33bdc404  gcc/config.gcc
  053bb14b428d0f073932e88b9a29a8bd  gcc/config.host
  1d528f9807496430cc01191e59f745d3  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
*************** e055c97bc39ff21701576ecf45b3a7a0  gcc/co
*** 3472,3478 ****
  6a3e090aa0b4e965d85b3a17bd657513  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
  5249e3dd61e8bd70c85a23c5711f3ca2  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
  e2d80b89552da0c6b4cb6bede3b2e573  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 2578221253cb8c19e9f778140a8cf9af  gcc/config/aarch64/aarch64-sve-builtins.cc
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  5ef25fd86c1c16a4a6fb3f74e12802b4  gcc/config/aarch64/aarch64-sve-builtins.h
  9f3eb88ee9eb2b0790e38fde3982c230  gcc/config/aarch64/aarch64-sve.md
--- 3445,3451 ----
  6a3e090aa0b4e965d85b3a17bd657513  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
  5249e3dd61e8bd70c85a23c5711f3ca2  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
  e2d80b89552da0c6b4cb6bede3b2e573  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 354a32b5af602553358eb32a9ac919a5  gcc/config/aarch64/aarch64-sve-builtins.cc
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  5ef25fd86c1c16a4a6fb3f74e12802b4  gcc/config/aarch64/aarch64-sve-builtins.h
  9f3eb88ee9eb2b0790e38fde3982c230  gcc/config/aarch64/aarch64-sve.md
*************** b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/co
*** 4195,4201 ****
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
  78d20fa951c51eb623997a6948444b3d  gcc/config/i386/i386.cc
  a6cfbe637ab786c041cc2872a71bc247  gcc/config/i386/i386.h
! 8a6e365060f13dd33aedf4d0582a8b82  gcc/config/i386/i386.md
  23985b411cb15228b631691265bfefe9  gcc/config/i386/i386.opt
  59cb9adff8fe9d24eed1cfac0c5bf62c  gcc/config/i386/i386.opt.urls
  f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
--- 4168,4174 ----
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
  78d20fa951c51eb623997a6948444b3d  gcc/config/i386/i386.cc
  a6cfbe637ab786c041cc2872a71bc247  gcc/config/i386/i386.h
! d47a65cd85deaeb5a3bdf9e237285a2c  gcc/config/i386/i386.md
  23985b411cb15228b631691265bfefe9  gcc/config/i386/i386.opt
  59cb9adff8fe9d24eed1cfac0c5bf62c  gcc/config/i386/i386.opt.urls
  f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
*************** de4e89bc042c6bc7eb093bda5d33a266  gcc/co
*** 4258,4264 ****
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! 6439dd83f5a5ec6d9f8e6e803e561b6e  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
--- 4231,4237 ----
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! dc6ee6883c59cfabc1e0dd99e521654d  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
*************** ddd6087651a73d039e839dcd0722283c  gcc/co
*** 4780,4786 ****
  2f6253172cebc299090eb3ff21bce59d  gcc/config/nvptx/gen-multilib-matches.sh
  a675b50ac99c3589fbc9347a2c8b267f  gcc/config/nvptx/gen-omp-device-properties.sh
  4fa4386427965e8b1d155fd9e24a7b2e  gcc/config/nvptx/gen-opt.sh
! 30ef320ec8a8c6a2c2cb2c7249e847d4  gcc/config/nvptx/mkoffload.cc
  5bdd02ea89901317102b35ecc453fb67  gcc/config/nvptx/nvptx-c.cc
  c3a62cd55d11c3d62d77946f40fa616a  gcc/config/nvptx/nvptx-gen.h
  562c1684f8b31591ceaad426aade9a27  gcc/config/nvptx/nvptx-gen.opt
--- 4753,4759 ----
  2f6253172cebc299090eb3ff21bce59d  gcc/config/nvptx/gen-multilib-matches.sh
  a675b50ac99c3589fbc9347a2c8b267f  gcc/config/nvptx/gen-omp-device-properties.sh
  4fa4386427965e8b1d155fd9e24a7b2e  gcc/config/nvptx/gen-opt.sh
! 0eea18c51a73946711e7c25a61515f3f  gcc/config/nvptx/mkoffload.cc
  5bdd02ea89901317102b35ecc453fb67  gcc/config/nvptx/nvptx-c.cc
  c3a62cd55d11c3d62d77946f40fa616a  gcc/config/nvptx/nvptx-gen.h
  562c1684f8b31591ceaad426aade9a27  gcc/config/nvptx/nvptx-gen.opt
*************** f2528020fcdc72755829904c1e2bd9cd  gcc/co
*** 4814,4822 ****
  ba4527959028a093cad8694a308a8a98  gcc/config/or1k/or1k.cc
  fcbfb3ff3577f95c15cf20ae1c95b269  gcc/config/or1k/or1k.h
  f5e7694d32cf1092a0353e9cf60d09d4  gcc/config/or1k/or1k.md
! 3f0f02c02d2295376f66ab0666242364  gcc/config/or1k/or1k.opt
  08881bec5bba093b5cb1eddd91ef4014  gcc/config/or1k/or1k.opt.urls
! e81d7e77c10f88f37fa5c74d54edecf4  gcc/config/or1k/predicates.md
  db8691a94f44f22cd2b192588632bb9b  gcc/config/or1k/rtems.h
  53bcb430048193eb051a76841ed97244  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
--- 4787,4795 ----
  ba4527959028a093cad8694a308a8a98  gcc/config/or1k/or1k.cc
  fcbfb3ff3577f95c15cf20ae1c95b269  gcc/config/or1k/or1k.h
  f5e7694d32cf1092a0353e9cf60d09d4  gcc/config/or1k/or1k.md
! 1ef170db4cf4943c3da6cf4ca8d5f674  gcc/config/or1k/or1k.opt
  08881bec5bba093b5cb1eddd91ef4014  gcc/config/or1k/or1k.opt.urls
! 6e502c5c53fc16b65e45d77f36d63e76  gcc/config/or1k/predicates.md
  db8691a94f44f22cd2b192588632bb9b  gcc/config/or1k/rtems.h
  53bcb430048193eb051a76841ed97244  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
*************** d6da8f84e5835bd14f146fc765bcb39d  gcc/co
*** 4890,4896 ****
  cd13b51383c99c08d86250b61fed3805  gcc/config/pru/pru.opt.urls
  540013c309ceb3efb2b16d728b1fc726  gcc/config/pru/t-pru
  a5e691ce14017f2a89283ed510bb78fd  gcc/config/riscv/arch-canonicalize
! 16758263c2b4e1f25075a6baeb22e0a0  gcc/config/riscv/autovec-opt.md
  829cbcecbc17da1539fb79b7512d1523  gcc/config/riscv/autovec.md
  40e0e0684e3c3a934587129211c4674c  gcc/config/riscv/bitmanip.md
  c21886991e632848d5622ed5a3188f75  gcc/config/riscv/constraints.md
--- 4863,4869 ----
  cd13b51383c99c08d86250b61fed3805  gcc/config/pru/pru.opt.urls
  540013c309ceb3efb2b16d728b1fc726  gcc/config/pru/t-pru
  a5e691ce14017f2a89283ed510bb78fd  gcc/config/riscv/arch-canonicalize
! 1d5a6e01941bdc7405c8c5403d36eb79  gcc/config/riscv/autovec-opt.md
  829cbcecbc17da1539fb79b7512d1523  gcc/config/riscv/autovec.md
  40e0e0684e3c3a934587129211c4674c  gcc/config/riscv/bitmanip.md
  c21886991e632848d5622ed5a3188f75  gcc/config/riscv/constraints.md
*************** a3d3fa9142d4e2ed34ead146941c574a  gcc/co
*** 4915,4946 ****
  524361cff2d291f40d597f932bdcb3d0  gcc/config/riscv/predicates.md
  d7a63bbbf6653fc311084e8bb09d713b  gcc/config/riscv/riscv-avlprop.cc
  3b5651b95f6a076ccd28e73bae600e52  gcc/config/riscv/riscv-builtins.cc
! 815f99489b9dbc6b6a08ca988978b261  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 7b92928ed434be950fbfc66adbdbc9e8  gcc/config/riscv/riscv-cores.def
  173996678a5bf2b1b40e30fe260109b4  gcc/config/riscv/riscv-d.cc
  790bd2a5355776ab5ebf4c7814489760  gcc/config/riscv/riscv-d.h
  9848282285cd3a3e21f6181f220f6ba9  gcc/config/riscv/riscv-ext-corev.def
  a8a293d3f8f01367abc68e7556a51898  gcc/config/riscv/riscv-ext-sifive.def
  85fb34f0d0de09dc83b4df6f525d78f9  gcc/config/riscv/riscv-ext-thead.def
  5551f756c3aae6dce60511f7f52efa5c  gcc/config/riscv/riscv-ext-ventana.def
! b2c54459a7c24791287bb323e6f1e1f2  gcc/config/riscv/riscv-ext.def
! 8ba788831dfb8ea5b2ca13c4883ca31e  gcc/config/riscv/riscv-ext.opt
  8463b74f5d66e1a7f0d58a7ae087d8ad  gcc/config/riscv/riscv-ext.opt.urls
  1b0b6b632f747d9387ef25821e8673b4  gcc/config/riscv/riscv-feature-bits.h
  b467d35485b39b25863e918609a322d0  gcc/config/riscv/riscv-ftypes.def
  b1bc6d82a24b7b0e658a43956a37419c  gcc/config/riscv/riscv-modes.def
! 7390332430a5dbea60088aecf71a533e  gcc/config/riscv/riscv-opts.h
  2c59654f5f7fe2689efd370c0441b6bd  gcc/config/riscv/riscv-passes.def
! 00de4eb7cff73486569ffe3670da7941  gcc/config/riscv/riscv-protos.h
  446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
  da4e034d23a8f2754b1dfce0122f286e  gcc/config/riscv/riscv-shorten-memrefs.cc
  62b31689063eeeca8f0e7ae25da92d0a  gcc/config/riscv/riscv-sr.cc
  5934e743da72bdc74e1d53f049b127fc  gcc/config/riscv/riscv-string.cc
! f2f90e0d4af72ad1c79aba2821be11b4  gcc/config/riscv/riscv-subset.h
  be3e0da2403121c429e21501de9c9b5f  gcc/config/riscv/riscv-target-attr.cc
! ac57826b303b5c245d7bfd38103fc05b  gcc/config/riscv/riscv-v.cc
  0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
  c5f3161dedd668dfb126ffb191cfb236  gcc/config/riscv/riscv-vect-permconst.cc
  8bb68ed754e01cc6cbd31b250968d7f6  gcc/config/riscv/riscv-vector-builtins-bases.cc
--- 4888,4919 ----
  524361cff2d291f40d597f932bdcb3d0  gcc/config/riscv/predicates.md
  d7a63bbbf6653fc311084e8bb09d713b  gcc/config/riscv/riscv-avlprop.cc
  3b5651b95f6a076ccd28e73bae600e52  gcc/config/riscv/riscv-builtins.cc
! 717dabcf24d5f1356542a7716b96af87  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 101863ce3311b29e3db167d642c7bcda  gcc/config/riscv/riscv-cores.def
  173996678a5bf2b1b40e30fe260109b4  gcc/config/riscv/riscv-d.cc
  790bd2a5355776ab5ebf4c7814489760  gcc/config/riscv/riscv-d.h
  9848282285cd3a3e21f6181f220f6ba9  gcc/config/riscv/riscv-ext-corev.def
  a8a293d3f8f01367abc68e7556a51898  gcc/config/riscv/riscv-ext-sifive.def
  85fb34f0d0de09dc83b4df6f525d78f9  gcc/config/riscv/riscv-ext-thead.def
  5551f756c3aae6dce60511f7f52efa5c  gcc/config/riscv/riscv-ext-ventana.def
! abea7fc704411b385e408452f4dc8b01  gcc/config/riscv/riscv-ext.def
! 67c7b8379c6250f021f1e97c4ca63008  gcc/config/riscv/riscv-ext.opt
  8463b74f5d66e1a7f0d58a7ae087d8ad  gcc/config/riscv/riscv-ext.opt.urls
  1b0b6b632f747d9387ef25821e8673b4  gcc/config/riscv/riscv-feature-bits.h
  b467d35485b39b25863e918609a322d0  gcc/config/riscv/riscv-ftypes.def
  b1bc6d82a24b7b0e658a43956a37419c  gcc/config/riscv/riscv-modes.def
! 7631415b148bf332623531ebb3e0262b  gcc/config/riscv/riscv-opts.h
  2c59654f5f7fe2689efd370c0441b6bd  gcc/config/riscv/riscv-passes.def
! 326e47f80b5118040e84dfc78b93b45e  gcc/config/riscv/riscv-protos.h
  446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
  da4e034d23a8f2754b1dfce0122f286e  gcc/config/riscv/riscv-shorten-memrefs.cc
  62b31689063eeeca8f0e7ae25da92d0a  gcc/config/riscv/riscv-sr.cc
  5934e743da72bdc74e1d53f049b127fc  gcc/config/riscv/riscv-string.cc
! b0db0a336461a6390b254a883b8b491a  gcc/config/riscv/riscv-subset.h
  be3e0da2403121c429e21501de9c9b5f  gcc/config/riscv/riscv-target-attr.cc
! cf1ba66caa71129bc704d7325a4fb2d1  gcc/config/riscv/riscv-v.cc
  0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
  c5f3161dedd668dfb126ffb191cfb236  gcc/config/riscv/riscv-vect-permconst.cc
  8bb68ed754e01cc6cbd31b250968d7f6  gcc/config/riscv/riscv-vector-builtins-bases.cc
*************** bdc5f6caf56fd0411faf705e9c32ccd4  gcc/co
*** 4952,4967 ****
  e4137796901da09141309284b35af93c  gcc/config/riscv/riscv-vector-builtins.cc
  74c291180c302842c646af24c77d184c  gcc/config/riscv/riscv-vector-builtins.def
  9b7d99df8e2f12e55ad2fce0020b462c  gcc/config/riscv/riscv-vector-builtins.h
! 65ec1ed9e89dd3e0ac6f1970dad075b9  gcc/config/riscv/riscv-vector-costs.cc
  bd7a0d0d03ad4788f6cf7579df11a66e  gcc/config/riscv/riscv-vector-costs.h
  f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
  3c65f952c8116cc22f135cab9b639d28  gcc/config/riscv/riscv-vsetvl.cc
  16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 77111d1ecb7b54dd27ec2b9177d75656  gcc/config/riscv/riscv.cc
  1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
! 80eb1b2e57c5210d62f3ce508190ae70  gcc/config/riscv/riscv.md
! 9ea65ab93a9cc69269d47111131897e5  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
  374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
  a8044652cefd826404f261518f9e2321  gcc/config/riscv/riscv_crypto.h
--- 4925,4940 ----
  e4137796901da09141309284b35af93c  gcc/config/riscv/riscv-vector-builtins.cc
  74c291180c302842c646af24c77d184c  gcc/config/riscv/riscv-vector-builtins.def
  9b7d99df8e2f12e55ad2fce0020b462c  gcc/config/riscv/riscv-vector-builtins.h
! 147ceeb3518a43458ebef3a69344fc3f  gcc/config/riscv/riscv-vector-costs.cc
  bd7a0d0d03ad4788f6cf7579df11a66e  gcc/config/riscv/riscv-vector-costs.h
  f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
  3c65f952c8116cc22f135cab9b639d28  gcc/config/riscv/riscv-vsetvl.cc
  16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 52b4f9fa3943ab03915a82b188455aee  gcc/config/riscv/riscv.cc
  1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
! 84527b76070758ffa5fed1c03a07a9b0  gcc/config/riscv/riscv.md
! fec1c87bba727131a45d4ec4a9ae5490  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
  374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
  a8044652cefd826404f261518f9e2321  gcc/config/riscv/riscv_crypto.h
*************** faca69fa18f3f779cd3ee4d6a53e6193  gcc/co
*** 4983,4989 ****
  1c27821991689abdaa7a908a0cc8dfa4  gcc/config/riscv/t-elf-multilib
  381cb38e167feed84dad697fce89cabd  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
! 6164b18abce85da16da3bb7cd02bedee  gcc/config/riscv/t-riscv
  51c5ea17e60737c695a38285dfce555d  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
--- 4956,4962 ----
  1c27821991689abdaa7a908a0cc8dfa4  gcc/config/riscv/t-elf-multilib
  381cb38e167feed84dad697fce89cabd  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
! 897a602d7fa073c7a9d38e3fd3652ff1  gcc/config/riscv/t-riscv
  51c5ea17e60737c695a38285dfce555d  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
*************** bcf728ad2379630774fd5bb529d4ee86  gcc/co
*** 4994,5004 ****
  fd8e9517de64ab23821ea1284ea6d7f6  gcc/config/riscv/thead.md
  b5e46305db1116cc1758b504ea37fe74  gcc/config/riscv/vector-bfloat16.md
  88f7597398d0c8b8b87baba5fd207996  gcc/config/riscv/vector-crypto.md
! 1deb0295523d56fc4fc04a68a1b7230a  gcc/config/riscv/vector-iterators.md
  2aac5fc6721c093a0f679d0e14d196e1  gcc/config/riscv/vector.md
  4ffde0be9b9a0efe78c98b4407d00397  gcc/config/riscv/xiangshan.md
  0f64aaa114ab62a1a46f7ac422d6a129  gcc/config/riscv/zc.md
! 2a87e05e2432e50d410a6b774704755f  gcc/config/riscv/zicond.md
  484e293fd0201a6e967e08cfb88bfed2  gcc/config/rl78/constraints.md
  9d19734015ef93ceb13a9ebd14c415b0  gcc/config/rl78/predicates.md
  dd309418062404f78fec5e3e803f51b7  gcc/config/rl78/rl78-c.cc
--- 4967,4977 ----
  fd8e9517de64ab23821ea1284ea6d7f6  gcc/config/riscv/thead.md
  b5e46305db1116cc1758b504ea37fe74  gcc/config/riscv/vector-bfloat16.md
  88f7597398d0c8b8b87baba5fd207996  gcc/config/riscv/vector-crypto.md
! 386659da4c2647c59f1ef51de8dc56d4  gcc/config/riscv/vector-iterators.md
  2aac5fc6721c093a0f679d0e14d196e1  gcc/config/riscv/vector.md
  4ffde0be9b9a0efe78c98b4407d00397  gcc/config/riscv/xiangshan.md
  0f64aaa114ab62a1a46f7ac422d6a129  gcc/config/riscv/zc.md
! 36cba2444ae9c8f107fee34492bd0ed6  gcc/config/riscv/zicond.md
  484e293fd0201a6e967e08cfb88bfed2  gcc/config/rl78/constraints.md
  9d19734015ef93ceb13a9ebd14c415b0  gcc/config/rl78/predicates.md
  dd309418062404f78fec5e3e803f51b7  gcc/config/rl78/rl78-c.cc
*************** bcefe099935dfbd7bc9b6d446d83949a  gcc/co
*** 5103,5109 ****
  e8f307427b9691501f617f9921a29126  gcc/config/rs6000/predicates.md
  a1a56cb74b09656a0d65c8351472c0dc  gcc/config/rs6000/rbtree.cc
  1bf6742f3643571d537df3e6e0603170  gcc/config/rs6000/rbtree.h
! d139903a564018061688043567f8c198  gcc/config/rs6000/rs6000-builtin.cc
  dce39de8bb20b88ffeb8b2073101dcfe  gcc/config/rs6000/rs6000-builtins.def
  508c2cb53cbe6fe9884e599852ff8143  gcc/config/rs6000/rs6000-c.cc
  4e26f14a54f324eddc2f83da389b6392  gcc/config/rs6000/rs6000-call.cc
--- 5076,5082 ----
  e8f307427b9691501f617f9921a29126  gcc/config/rs6000/predicates.md
  a1a56cb74b09656a0d65c8351472c0dc  gcc/config/rs6000/rbtree.cc
  1bf6742f3643571d537df3e6e0603170  gcc/config/rs6000/rbtree.h
! 373df9f8823774dde0d5fecc9a0bc457  gcc/config/rs6000/rs6000-builtin.cc
  dce39de8bb20b88ffeb8b2073101dcfe  gcc/config/rs6000/rs6000-builtins.def
  508c2cb53cbe6fe9884e599852ff8143  gcc/config/rs6000/rs6000-c.cc
  4e26f14a54f324eddc2f83da389b6392  gcc/config/rs6000/rs6000-call.cc
*************** f3a2992c8e85b13e50b261e26924d83f  gcc/co
*** 5487,5495 ****
  87fc5c87547999f715031b4ff99fb67b  gcc/config/xtensa/xtensa-dynconfig.cc
  c7be35a23fd70ac184dd9072319304c7  gcc/config/xtensa/xtensa-opts.h
  e59f31891252abdd41eedc784b25ed6b  gcc/config/xtensa/xtensa-protos.h
! 2bd87eff96be222b9cf1c13670673a28  gcc/config/xtensa/xtensa.cc
  5cb04061b3da377a69382a940d1039cf  gcc/config/xtensa/xtensa.h
! 5528f4afb3487f17616b6d07632ea09c  gcc/config/xtensa/xtensa.md
  f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
  5583738d9d6612bf0f58bc6646eb1048  gcc/configure
--- 5460,5468 ----
  87fc5c87547999f715031b4ff99fb67b  gcc/config/xtensa/xtensa-dynconfig.cc
  c7be35a23fd70ac184dd9072319304c7  gcc/config/xtensa/xtensa-opts.h
  e59f31891252abdd41eedc784b25ed6b  gcc/config/xtensa/xtensa-protos.h
! c87ebf4d7ad05c1ea600369d7787d789  gcc/config/xtensa/xtensa.cc
  5cb04061b3da377a69382a940d1039cf  gcc/config/xtensa/xtensa.h
! 1529b9459d4cc31cd134de367a0eb992  gcc/config/xtensa/xtensa.md
  f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
  5583738d9d6612bf0f58bc6646eb1048  gcc/configure
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5501,5509 ****
  9a52d4bcaec7df09971007540ad91f77  gcc/coretypes.h
  086834dbb33047e862ba6b6171eda392  gcc/coroutine-builtins.def
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
! 2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 2e40d1d55297be0ee2f1f45e35acfdbc  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5474,5482 ----
  9a52d4bcaec7df09971007540ad91f77  gcc/coretypes.h
  086834dbb33047e862ba6b6171eda392  gcc/coroutine-builtins.def
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
! 3a1ca7b4fe869dd9b031c27c8ad034e5  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 3aa2e36550242e2d04e8d5dbb2aea9ab  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** fce8de27014c109814b3f69be6a5d4f6  gcc/cp
*** 5544,5563 ****
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  167833da56621df8026f51eb243c344a  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! db3faf1c61ef28c310bb2a316fbe9219  gcc/cp/constexpr.cc
  3974710745a4b09b4184ea22766bf2d3  gcc/cp/constraint.cc
  613233facbf4b0f1cff770ed6c49c666  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
! 02dd0b9bd700b429ad1101df3c9510b5  gcc/cp/coroutines.cc
! 6cab15e3da872b87bf31d0d8bc16ba37  gcc/cp/coroutines.h
! b27703312a47b05aa0b0b8a0f8ba978f  gcc/cp/cp-gimplify.cc
  3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
  0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
  7e2d2d0cd98f02686590d57bb37c0de9  gcc/cp/cp-objcp-common.cc
  acb30767d403ad5a0d7ae97437159ebe  gcc/cp/cp-objcp-common.h
  144049f5deb1aa6987eb55e86f53cb45  gcc/cp/cp-trait.def
  ce9f2ccac9e2657417018bc8f8064421  gcc/cp/cp-tree.def
! cd060d00e4514a202ae88bb64d10ff84  gcc/cp/cp-tree.h
  e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
  64450079a2dd9e5a8767bb5e4bf3d904  gcc/cp/cvt.cc
  28a2733b7abed60b2b102105bb7cebaf  gcc/cp/cxx-pretty-print.cc
--- 5517,5536 ----
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  167833da56621df8026f51eb243c344a  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! 8e902985df4571deafc1c61f71e4250c  gcc/cp/constexpr.cc
  3974710745a4b09b4184ea22766bf2d3  gcc/cp/constraint.cc
  613233facbf4b0f1cff770ed6c49c666  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
! fe02f5e03cd94966464f0dabaf424ae8  gcc/cp/coroutines.cc
! 349a4225e331d42cddd10a590ad5c5e2  gcc/cp/coroutines.h
! b001cf8db89c6befecfd660d313a1002  gcc/cp/cp-gimplify.cc
  3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
  0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
  7e2d2d0cd98f02686590d57bb37c0de9  gcc/cp/cp-objcp-common.cc
  acb30767d403ad5a0d7ae97437159ebe  gcc/cp/cp-objcp-common.h
  144049f5deb1aa6987eb55e86f53cb45  gcc/cp/cp-trait.def
  ce9f2ccac9e2657417018bc8f8064421  gcc/cp/cp-tree.def
! e106a628099103833a7466ef572668bd  gcc/cp/cp-tree.h
  e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
  64450079a2dd9e5a8767bb5e4bf3d904  gcc/cp/cvt.cc
  28a2733b7abed60b2b102105bb7cebaf  gcc/cp/cxx-pretty-print.cc
*************** e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp
*** 5565,5573 ****
  c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
  f267a13ff333261477fb6444ea11a684  gcc/cp/decl.cc
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
! 0447c75d7c7755b292b5f718de8ebac9  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
! 2ae069e2eecf08cde8e9a6eadce384e1  gcc/cp/error.cc
  86f47b28d673601022d0205cdd718f9d  gcc/cp/except.cc
  f1581b369c1962c764264b1b2af61ca2  gcc/cp/expr.cc
  3b7c086cfb4ed89e6ae40a09ca796704  gcc/cp/friend.cc
--- 5538,5546 ----
  c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
  f267a13ff333261477fb6444ea11a684  gcc/cp/decl.cc
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
! a8747e45489cb64f2f4528a1973fcacf  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
! d9ea913fbe43bf0dd45f96433d78f8ed  gcc/cp/error.cc
  86f47b28d673601022d0205cdd718f9d  gcc/cp/except.cc
  f1581b369c1962c764264b1b2af61ca2  gcc/cp/expr.cc
  3b7c086cfb4ed89e6ae40a09ca796704  gcc/cp/friend.cc
*************** aaf76a9b03fd0532d2904aef004fd66a  gcc/cp
*** 5582,5600 ****
  936bd061907a7a899c3285cf17b17674  gcc/cp/mapper-client.cc
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
! 5e988f88b0605dbac3e8ac682e35a5c6  gcc/cp/method.cc
  57fffba05a90806e35bd63a82fa88cd2  gcc/cp/module.cc
  06f95ada11e42d69946cf7b65d247c53  gcc/cp/name-lookup.cc
! 333c7af87a267d21ca401c727390365b  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! 4dcc5fb073081331b649ac3f5c5b32dd  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 6b51cbdc7e51971407e1854a8c4dd9f5  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  ee1ddf1e1b9554bb1a10109ce8c6dee5  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
! 2b9aafc946a3c94b8ab88daf9cbb43d8  gcc/cp/semantics.cc
  b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
  2425db76c32085977eff047c982cebab  gcc/cp/std-name-hint.h
  e3798db73e0b3e892e772acbe569a5b8  gcc/cp/tree.cc
--- 5555,5573 ----
  936bd061907a7a899c3285cf17b17674  gcc/cp/mapper-client.cc
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
! 600af25aec04b18064ff0ef80ac0e88d  gcc/cp/method.cc
  57fffba05a90806e35bd63a82fa88cd2  gcc/cp/module.cc
  06f95ada11e42d69946cf7b65d247c53  gcc/cp/name-lookup.cc
! 6e376c0a7ec6c4a14de40885e3b1a0cb  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! 5aea05ba09eca18a85bcc111ddcee9ae  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! ab13be676923d37d6280320c3d354168  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  ee1ddf1e1b9554bb1a10109ce8c6dee5  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
! cf0e2cb39b6f6cbedb4ebac0a2157123  gcc/cp/semantics.cc
  b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
  2425db76c32085977eff047c982cebab  gcc/cp/std-name-hint.h
  e3798db73e0b3e892e772acbe569a5b8  gcc/cp/tree.cc
*************** e0a7cab8692eb3cbd4b00c4494e48d70  gcc/di
*** 5891,5897 ****
  b14c12c33aee36a4d29601627a1a67da  gcc/diagnostic-core.h
  be405b20597be971120eee5709db8c4a  gcc/diagnostic-diagram.h
  a24233a009f0c9d29e034e6ba63082de  gcc/diagnostic-event-id.h
! a8fb5a03da341de5a40d769537fec27c  gcc/diagnostic-format-html.cc
  9dd0efe581c7fbd4e35dc41591b0893f  gcc/diagnostic-format-html.h
  d306b1c2d243e470e6dace9e9b9feb76  gcc/diagnostic-format-json.cc
  61f95df5bdbef545f0ad3dd04e2d5ac3  gcc/diagnostic-format-sarif.cc
--- 5864,5870 ----
  b14c12c33aee36a4d29601627a1a67da  gcc/diagnostic-core.h
  be405b20597be971120eee5709db8c4a  gcc/diagnostic-diagram.h
  a24233a009f0c9d29e034e6ba63082de  gcc/diagnostic-event-id.h
! 0d67ad4aeb249058c78f635a9c3606f8  gcc/diagnostic-format-html.cc
  9dd0efe581c7fbd4e35dc41591b0893f  gcc/diagnostic-format-html.h
  d306b1c2d243e470e6dace9e9b9feb76  gcc/diagnostic-format-json.cc
  61f95df5bdbef545f0ad3dd04e2d5ac3  gcc/diagnostic-format-sarif.cc
*************** ee4c7654f733cefcb73d4fd24f3e1b82  gcc/do
*** 5956,5964 ****
  9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 24cd0b31d695b3e960483721e348224d  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 2e083d680c56da042c23f14d39f97107  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 5929,5937 ----
  9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! b84226d727996f5d2d47a7da7364c695  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 17067ebb468c3620baa7c44a6ebecd0b  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** c9c36fbefa306c5ed545b38beb9d0a47  gcc/do
*** 6001,6011 ****
  2cd0efa7c8a7f870d4a0c0b2eed69798  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
  ee33d902cd60afae792843ff15ad6706  gcc/doc/portability.texi
! 40dea4ec08aa318af2f8078a5d4f4691  gcc/doc/riscv-ext.texi
  8489e4a02a5daa1d1ae726383b330653  gcc/doc/rtl.texi
  bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
! 1f35857360e800dead75de6b8f9feb8c  gcc/doc/sourcebuild.texi
! 7528f7e1e2755463754d0e45df406de2  gcc/doc/standards.texi
  fd3bf27e33907464460ab9208cdd2240  gcc/doc/tm.texi
  06d0869eb2bec892f989f31bcd7da233  gcc/doc/tm.texi.in
  c4168f9f01adf4dd8adc647c04107142  gcc/doc/tree-ssa.texi
--- 5974,5984 ----
  2cd0efa7c8a7f870d4a0c0b2eed69798  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
  ee33d902cd60afae792843ff15ad6706  gcc/doc/portability.texi
! f0059adcfa95e3a6335ba83e623c713c  gcc/doc/riscv-ext.texi
  8489e4a02a5daa1d1ae726383b330653  gcc/doc/rtl.texi
  bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
! 583af35d0673981e3feb3b5e05c64ce8  gcc/doc/sourcebuild.texi
! 324bbfba4e1ce0b6019ce86e466edde0  gcc/doc/standards.texi
  fd3bf27e33907464460ab9208cdd2240  gcc/doc/tm.texi
  06d0869eb2bec892f989f31bcd7da233  gcc/doc/tm.texi.in
  c4168f9f01adf4dd8adc647c04107142  gcc/doc/tree-ssa.texi
*************** baaae59ceda4df837a6f62ffb0f29ee7  gcc/dw
*** 6035,6041 ****
  fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
  e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
  237d0c79a98880d977007c3345019bf8  gcc/edit-context.h
! f27a5c4aba40bcd3fec7afbea47fc8ef  gcc/emit-rtl.cc
  958b8dfdb92b879b9cbab057e540c587  gcc/emit-rtl.h
  22fb4d062235835cdf34b4077884887d  gcc/errors.cc
  7109c06aed199f804c8906e6febd8c9f  gcc/errors.h
--- 6008,6014 ----
  fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
  e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
  237d0c79a98880d977007c3345019bf8  gcc/edit-context.h
! fc08cb49c66efe26457bf6640fe4b649  gcc/emit-rtl.cc
  958b8dfdb92b879b9cbab057e540c587  gcc/emit-rtl.h
  22fb4d062235835cdf34b4077884887d  gcc/errors.cc
  7109c06aed199f804c8906e6febd8c9f  gcc/errors.h
*************** e67bf1a2587fc7f7361e841145ff4cfb  gcc/es
*** 6049,6064 ****
  b5fa845ff578d70e8ceae655d6affc51  gcc/explow.h
  a4ee0bae47797ce73f05daef7a07edd4  gcc/expmed.cc
  dee0d85cc89e81b4cc185f1c3102811e  gcc/expmed.h
! be57bc61b2fcfe917394983b3537e3c4  gcc/expr.cc
  5480b0f834e382e22c92192d7f5a4744  gcc/expr.h
! 81dcf70fa4896526691f574757c41ad2  gcc/ext-dce.cc
  2ecf474a8f5380e5027c5b7a745cd736  gcc/fibonacci_heap.cc
  4e78fbbdb0a8c835b984d732a6d97a7b  gcc/fibonacci_heap.h
  ee644c05e4a3461a8c2f5a4a5ea285bd  gcc/file-find.cc
  0e60f266755de3aceb6aac0c955d9771  gcc/file-find.h
  776db52685d2e253eb6227b4cfac0b55  gcc/file-prefix-map.cc
  b0756a8dbbe0b39051dfda2c5e26663f  gcc/file-prefix-map.h
! e7580325e4512cd9f5c2d665b528fa8f  gcc/final.cc
  28cc3b30502fab34fffa55fd82454e16  gcc/fixed-value.cc
  7852b04b41add4ad6cc7c7c86cb82658  gcc/fixed-value.h
  96975c8e38a86e287c8c387deeeda7f0  gcc/flag-types.h
--- 6022,6037 ----
  b5fa845ff578d70e8ceae655d6affc51  gcc/explow.h
  a4ee0bae47797ce73f05daef7a07edd4  gcc/expmed.cc
  dee0d85cc89e81b4cc185f1c3102811e  gcc/expmed.h
! 93d26b0b77b2a69a4f7eddd558209360  gcc/expr.cc
  5480b0f834e382e22c92192d7f5a4744  gcc/expr.h
! 6023e86ee70f68a65ad9ecb5735697ae  gcc/ext-dce.cc
  2ecf474a8f5380e5027c5b7a745cd736  gcc/fibonacci_heap.cc
  4e78fbbdb0a8c835b984d732a6d97a7b  gcc/fibonacci_heap.h
  ee644c05e4a3461a8c2f5a4a5ea285bd  gcc/file-find.cc
  0e60f266755de3aceb6aac0c955d9771  gcc/file-find.h
  776db52685d2e253eb6227b4cfac0b55  gcc/file-prefix-map.cc
  b0756a8dbbe0b39051dfda2c5e26663f  gcc/file-prefix-map.h
! a7bd1af0b1ebb1020c3f0c463acaaae9  gcc/final.cc
  28cc3b30502fab34fffa55fd82454e16  gcc/fixed-value.cc
  7852b04b41add4ad6cc7c7c86cb82658  gcc/fixed-value.h
  96975c8e38a86e287c8c387deeeda7f0  gcc/flag-types.h
*************** a798cdca802a57ffa3473ab610b37c86  gcc/fo
*** 6068,6074 ****
  62673b998414c05d123a9e3cc51be1d9  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 5ae1e2a5050f5658095de058d9236982  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6041,6047 ----
  62673b998414c05d123a9e3cc51be1d9  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 32b395357da2e0f378fecd70f1849a95  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** ec152c8d16c33705590d8b2ddbcad0b7  gcc/fo
*** 6107,6113 ****
  8a26ac4e9bbfcee3a5911bf1864ee2e6  gcc/fortran/convert.cc
  e2cec99de05b647cb16807fa80637b97  gcc/fortran/cpp.cc
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
! 8f33d3cd143f8abd7293e089afa94452  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
  5eb64efcc949ffd1b8a68b073277aead  gcc/fortran/decl.cc
  c33e2c4c7527bec8a125dd093dc59f2a  gcc/fortran/dependency.cc
--- 6080,6086 ----
  8a26ac4e9bbfcee3a5911bf1864ee2e6  gcc/fortran/convert.cc
  e2cec99de05b647cb16807fa80637b97  gcc/fortran/cpp.cc
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
! a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
  5eb64efcc949ffd1b8a68b073277aead  gcc/fortran/decl.cc
  c33e2c4c7527bec8a125dd093dc59f2a  gcc/fortran/dependency.cc
*************** c33e2c4c7527bec8a125dd093dc59f2a  gcc/fo
*** 6115,6125 ****
  b6cce6988f87edda182aec1b6c3cd291  gcc/fortran/dump-parse-tree.cc
  c7e7056eadbc33e368018f5bd15ae27e  gcc/fortran/error.cc
  db184b6596cd9f39834087b0dc7d0ed8  gcc/fortran/expr.cc
! 88fde92a0336c0454c5baa0f3c24888a  gcc/fortran/f95-lang.cc
  e188a9b3cb73106cab46a15d36a12b66  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 1444006812909ce97b06c4dcb555bbe3  gcc/fortran/gfortran.h
  d29bb6813221f46b4cde9df77292c412  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  aea31b73f1b7395d6302c57cbbf4bacf  gcc/fortran/interface.cc
--- 6088,6098 ----
  b6cce6988f87edda182aec1b6c3cd291  gcc/fortran/dump-parse-tree.cc
  c7e7056eadbc33e368018f5bd15ae27e  gcc/fortran/error.cc
  db184b6596cd9f39834087b0dc7d0ed8  gcc/fortran/expr.cc
! 4951d066b4086c9dc1486fd5e2dbe2c2  gcc/fortran/f95-lang.cc
  e188a9b3cb73106cab46a15d36a12b66  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 223bf1fa3c929785708f08a09d09d3c3  gcc/fortran/gfortran.h
  d29bb6813221f46b4cde9df77292c412  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  aea31b73f1b7395d6302c57cbbf4bacf  gcc/fortran/interface.cc
*************** e0ae917f78fe49a1e67153dca52a68b2  gcc/fo
*** 6143,6149 ****
  998aff51cf65acc4d9efe5abebaaaff6  gcc/fortran/misc.cc
  3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
  50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
! 8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
  4dc9068325ab8f3c2ac3f22ee80283da  gcc/fortran/parse.cc
  c1b40e866a8bbe611aa65278fe2508d3  gcc/fortran/parse.h
  8282ea5f4e00d5c64da552ea2f31dcc6  gcc/fortran/primary.cc
--- 6116,6122 ----
  998aff51cf65acc4d9efe5abebaaaff6  gcc/fortran/misc.cc
  3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
  50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
! 5f5bb791665584c12e186daf259f7cdf  gcc/fortran/options.cc
  4dc9068325ab8f3c2ac3f22ee80283da  gcc/fortran/parse.cc
  c1b40e866a8bbe611aa65278fe2508d3  gcc/fortran/parse.h
  8282ea5f4e00d5c64da552ea2f31dcc6  gcc/fortran/primary.cc
*************** a4f5f15bbfd3cf3b780e3a8875ebf0df  gcc/fo
*** 6161,6167 ****
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  d8e305ea46f72c347ae93f0ab9d8337a  gcc/fortran/trans-decl.cc
! 0e477af087e7941701ef7d15e3bdae1e  gcc/fortran/trans-expr.cc
  619298ebdb7722b23738a67610a81830  gcc/fortran/trans-intrinsic.cc
  9cf7c294c06fdaea67dcd2b9ff2cf5ad  gcc/fortran/trans-io.cc
  710d1b981b11b3456d5e23839efa4675  gcc/fortran/trans-openmp.cc
--- 6134,6140 ----
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  d8e305ea46f72c347ae93f0ab9d8337a  gcc/fortran/trans-decl.cc
! 39bf1908703f27dd0ba11fe2a220248e  gcc/fortran/trans-expr.cc
  619298ebdb7722b23738a67610a81830  gcc/fortran/trans-intrinsic.cc
  9cf7c294c06fdaea67dcd2b9ff2cf5ad  gcc/fortran/trans-io.cc
  710d1b981b11b3456d5e23839efa4675  gcc/fortran/trans-openmp.cc
*************** da09d1e31d3994eb3d6958074d7b7ce5  gcc/gi
*** 6257,6264 ****
  613cd84d6a9d33c8a47ce0b484fe65cc  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 6d8705e22a261973531ad62cf6514ed9  gcc/gimple-fold.cc
! 563448545720cf30f89d6c372ef0033b  gcc/gimple-fold.h
  43ad47e8cd99d438040cf6937a3cbe5e  gcc/gimple-harden-conditionals.cc
  78586a1c0ce6834da91809b77f98c6d7  gcc/gimple-harden-control-flow.cc
  46c40ebab120d543476a2e46ac063bba  gcc/gimple-if-to-switch.cc
--- 6230,6237 ----
  613cd84d6a9d33c8a47ce0b484fe65cc  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 981494f0e6d65629db4c3af73f29109f  gcc/gimple-fold.cc
! 11c53c7404f0a514ba936db118da8027  gcc/gimple-fold.h
  43ad47e8cd99d438040cf6937a3cbe5e  gcc/gimple-harden-conditionals.cc
  78586a1c0ce6834da91809b77f98c6d7  gcc/gimple-harden-control-flow.cc
  46c40ebab120d543476a2e46ac063bba  gcc/gimple-if-to-switch.cc
*************** b54054c495232a416b1cdea9032d1d9f  gcc/lo
*** 6646,6656 ****
  755a196fed2cd7b5878159035d75b39b  gcc/lra-assigns.cc
  0232e051e662ebb7fd2fa507d9c581b8  gcc/lra-coalesce.cc
  54e62c1c9cb8ac20e26344c0abc15f9c  gcc/lra-constraints.cc
! 90be6ca8eebfbeae80589ba7a895bf60  gcc/lra-eliminations.cc
  d5aab2fda62b4b8a67dcd1bfeff169f5  gcc/lra-int.h
  9b39c90253128330d1b238b030a40fce  gcc/lra-lives.cc
  f98dc87a80f661782eacaf50d123997d  gcc/lra-remat.cc
! d5cf2fbf4d35e8e1f64d1638b2993c85  gcc/lra-spills.cc
  e5fef2ffe59f5bb8bf855af92be9ce6a  gcc/lra.cc
  f34f18b0bf45561aad0763e10bc1ecb1  gcc/lra.h
  47448197971da2e85aadd03dd315e469  gcc/lto-cgraph.cc
--- 6619,6629 ----
  755a196fed2cd7b5878159035d75b39b  gcc/lra-assigns.cc
  0232e051e662ebb7fd2fa507d9c581b8  gcc/lra-coalesce.cc
  54e62c1c9cb8ac20e26344c0abc15f9c  gcc/lra-constraints.cc
! 2495ade9709af129ff8d33e71553da76  gcc/lra-eliminations.cc
  d5aab2fda62b4b8a67dcd1bfeff169f5  gcc/lra-int.h
  9b39c90253128330d1b238b030a40fce  gcc/lra-lives.cc
  f98dc87a80f661782eacaf50d123997d  gcc/lra-remat.cc
! f2a8f0c5c085e7b8fca47ae12fc60944  gcc/lra-spills.cc
  e5fef2ffe59f5bb8bf855af92be9ce6a  gcc/lra.cc
  f34f18b0bf45561aad0763e10bc1ecb1  gcc/lra.h
  47448197971da2e85aadd03dd315e469  gcc/lto-cgraph.cc
*************** e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lt
*** 6691,6697 ****
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! d7895300193dcb8a096d82229c689f40  gcc/m2/ChangeLog
  33352ea845a8d2399793299f3e58a218  gcc/m2/Make-lang.in
  93fe99bf456561cd217f1c93d2ab7da7  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
--- 6664,6670 ----
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! b95d07d4c89efb77a345117f43d1f263  gcc/m2/ChangeLog
  33352ea845a8d2399793299f3e58a218  gcc/m2/Make-lang.in
  93fe99bf456561cd217f1c93d2ab7da7  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
*************** ffffd6bd10c2f3d61aee939845cdb397  gcc/m2
*** 6772,6778 ****
  5aae879fe93711ac462b3871f94cfdfb  gcc/m2/gm2-compiler/M2Printf.def
  2984233cca97a1078980faba9ae9c1c5  gcc/m2/gm2-compiler/M2Printf.mod
  1f3929030e3dde0bd645746be5c341d3  gcc/m2/gm2-compiler/M2Quads.def
! e159a93e4a854ebc6c9c911c19e9352a  gcc/m2/gm2-compiler/M2Quads.mod
  652e5da6749bca8b22b149208db30048  gcc/m2/gm2-compiler/M2Quiet.def
  fe82981e1fc213781973d90590cac13a  gcc/m2/gm2-compiler/M2Quiet.mod
  3a524bf1e1843ed3472cde4c27661681  gcc/m2/gm2-compiler/M2Range.def
--- 6745,6751 ----
  5aae879fe93711ac462b3871f94cfdfb  gcc/m2/gm2-compiler/M2Printf.def
  2984233cca97a1078980faba9ae9c1c5  gcc/m2/gm2-compiler/M2Printf.mod
  1f3929030e3dde0bd645746be5c341d3  gcc/m2/gm2-compiler/M2Quads.def
! 8b24c5d31b1e05fb7cbc0c192ca5aba8  gcc/m2/gm2-compiler/M2Quads.mod
  652e5da6749bca8b22b149208db30048  gcc/m2/gm2-compiler/M2Quiet.def
  fe82981e1fc213781973d90590cac13a  gcc/m2/gm2-compiler/M2Quiet.mod
  3a524bf1e1843ed3472cde4c27661681  gcc/m2/gm2-compiler/M2Range.def
*************** b347f8b97c2042773c008adffe4e54d9  gcc/m2
*** 6818,6836 ****
  7f0d77f27044b69065c97e7e1f2f361b  gcc/m2/gm2-compiler/P1Build.def
  022dddb1d109a1c84112ee601cb7e4fb  gcc/m2/gm2-compiler/P1SymBuild.def
  f84c328e57949cf1d3f9714ac54e6423  gcc/m2/gm2-compiler/P1SymBuild.mod
! 30a904cfa4fb7521224063ca4cb5db42  gcc/m2/gm2-compiler/P2Build.bnf
  5d3aa3c32f62966992c31b5bd6fe9bdb  gcc/m2/gm2-compiler/P2Build.def
  7d034c383eee29111871cfe944a77b96  gcc/m2/gm2-compiler/P2SymBuild.def
  59bcfdf13f9e458685b5b91da6fc5bdb  gcc/m2/gm2-compiler/P2SymBuild.mod
! 51b57398efecd0faf40087ef1797d3d0  gcc/m2/gm2-compiler/P3Build.bnf
  41f585d1e8e6fd1786dd36cb69cf3e82  gcc/m2/gm2-compiler/P3Build.def
  ad7a010b25f95dc012f12d3c97133a4b  gcc/m2/gm2-compiler/P3SymBuild.def
  feac1271dd2de34f953140b4b62a2c73  gcc/m2/gm2-compiler/P3SymBuild.mod
! 731c6ffb9b31221c7fee837869eff0a9  gcc/m2/gm2-compiler/PCBuild.bnf
  428e2092f5708fd9cf986ae14771fff1  gcc/m2/gm2-compiler/PCBuild.def
  333e3b954ec138cdfb9ac52c7fc37ee9  gcc/m2/gm2-compiler/PCSymBuild.def
  e524773f84b80cb2ecbe501fc5711e67  gcc/m2/gm2-compiler/PCSymBuild.mod
! 674904f1d941d249c3e960622fc886f7  gcc/m2/gm2-compiler/PHBuild.bnf
  08361e38dfa7f065be723afaa04d8986  gcc/m2/gm2-compiler/PHBuild.def
  b521bc37b844fd46fdfddcf3d2287f13  gcc/m2/gm2-compiler/PathName.def
  96de7226734080944c4bdf83b7dbb0ca  gcc/m2/gm2-compiler/PathName.mod
--- 6791,6809 ----
  7f0d77f27044b69065c97e7e1f2f361b  gcc/m2/gm2-compiler/P1Build.def
  022dddb1d109a1c84112ee601cb7e4fb  gcc/m2/gm2-compiler/P1SymBuild.def
  f84c328e57949cf1d3f9714ac54e6423  gcc/m2/gm2-compiler/P1SymBuild.mod
! dfc36d5f0832b9dd188d6557ffef76d3  gcc/m2/gm2-compiler/P2Build.bnf
  5d3aa3c32f62966992c31b5bd6fe9bdb  gcc/m2/gm2-compiler/P2Build.def
  7d034c383eee29111871cfe944a77b96  gcc/m2/gm2-compiler/P2SymBuild.def
  59bcfdf13f9e458685b5b91da6fc5bdb  gcc/m2/gm2-compiler/P2SymBuild.mod
! 3fd9aa5301c284bb3b4ee2d6479b711b  gcc/m2/gm2-compiler/P3Build.bnf
  41f585d1e8e6fd1786dd36cb69cf3e82  gcc/m2/gm2-compiler/P3Build.def
  ad7a010b25f95dc012f12d3c97133a4b  gcc/m2/gm2-compiler/P3SymBuild.def
  feac1271dd2de34f953140b4b62a2c73  gcc/m2/gm2-compiler/P3SymBuild.mod
! e00cf6ed8d0c099ab8f33394bfeb4dc3  gcc/m2/gm2-compiler/PCBuild.bnf
  428e2092f5708fd9cf986ae14771fff1  gcc/m2/gm2-compiler/PCBuild.def
  333e3b954ec138cdfb9ac52c7fc37ee9  gcc/m2/gm2-compiler/PCSymBuild.def
  e524773f84b80cb2ecbe501fc5711e67  gcc/m2/gm2-compiler/PCSymBuild.mod
! 08d1991abfb4f71b76010396a93251eb  gcc/m2/gm2-compiler/PHBuild.bnf
  08361e38dfa7f065be723afaa04d8986  gcc/m2/gm2-compiler/PHBuild.def
  b521bc37b844fd46fdfddcf3d2287f13  gcc/m2/gm2-compiler/PathName.def
  96de7226734080944c4bdf83b7dbb0ca  gcc/m2/gm2-compiler/PathName.mod
*************** bdf8e4e5301538b72767dc22581f3f7f  gcc/m2
*** 7165,7170 ****
--- 7138,7145 ----
  4a2d9a87b99d093e73909811facfba11  gcc/m2/gm2-libs-min/SYSTEM.mod
  6066eff2e23b028b779eab8f65a6cdb8  gcc/m2/gm2-libs-min/libc.c
  28dd7c1333503f47c1b34cbbedb9bd6c  gcc/m2/gm2-libs-min/libc.def
+ 338ffd9f9156c6f74cb6272e415672e4  gcc/m2/gm2-libs/ARRAYOFCHAR.def
+ ff9cd201ed5e5f197014f5ae68373fc0  gcc/m2/gm2-libs/ARRAYOFCHAR.mod
  0c0b70f740fb2aa15f3cd8ffa440bcad  gcc/m2/gm2-libs/ASCII.def
  8029a2f255a54f322fdd3b21c36b55f7  gcc/m2/gm2-libs/ASCII.mod
  68badbf0d3b417721274234d3a599134  gcc/m2/gm2-libs/Args.def
*************** aaf3e76436ae06a23600b884df25b479  gcc/m2
*** 7175,7180 ****
--- 7150,7158 ----
  0279b6197a1ac8020581bf9617f096c1  gcc/m2/gm2-libs/Break.mod
  9b18ce2868838c9ac24c173a65f40025  gcc/m2/gm2-libs/Builtins.def
  2e88c6b3000b5a048142be3323428a9a  gcc/m2/gm2-libs/Builtins.mod
+ f3f1821c9653cd795a6e0f0bbf2390de  gcc/m2/gm2-libs/CFileSysOp.def
+ f4cf4d8ab15291cf3125519c6568c434  gcc/m2/gm2-libs/CHAR.def
+ ce54ff0a1cc024cd31d69c3d7151561c  gcc/m2/gm2-libs/CHAR.mod
  093dac02bcfff5dad90c7fceeb93b9d4  gcc/m2/gm2-libs/COROUTINES.def
  0855cc9b09be34165c84ebe153d5ce0c  gcc/m2/gm2-libs/COROUTINES.mod
  18d09b4740fb69fea7773f675cc1053d  gcc/m2/gm2-libs/CmdArgs.def
*************** d6f94e02e9940d96ad9edcbb3b371f49  gcc/m2
*** 7187,7192 ****
--- 7165,7172 ----
  0dde314513020c8101bae6227dc7d4d4  gcc/m2/gm2-libs/Environment.mod
  34fadb2b6843988e6914d1436e56f4fc  gcc/m2/gm2-libs/FIO.def
  861b03d675f63653f159204dafbc300f  gcc/m2/gm2-libs/FIO.mod
+ 778d1ff012b61101cb234ca5b9ef9146  gcc/m2/gm2-libs/FileSysOp.def
+ 3a3c2b8ed0b5f9b1297332990036351a  gcc/m2/gm2-libs/FileSysOp.mod
  972105c4bd1196ec3fe7f29c84965fb1  gcc/m2/gm2-libs/FormatStrings.def
  bd7aee38dfe1f7908bdec7c13e1329c4  gcc/m2/gm2-libs/FormatStrings.mod
  41a0e4587ebf7b17402d7378e43a4855  gcc/m2/gm2-libs/FpuIO.def
*************** f5f27a5983f141be65a0627b66de7763  gcc/m2
*** 7247,7254 ****
--- 7227,7238 ----
  e30a0c0009f59e0d820cabb9ad9c48a9  gcc/m2/gm2-libs/StrIO.mod
  7234614cffc5479fba49d8079bf71271  gcc/m2/gm2-libs/StrLib.def
  39540142c68a33e144e9e9a66a8797ae  gcc/m2/gm2-libs/StrLib.mod
+ d856fab79aab71626127ae645d32826f  gcc/m2/gm2-libs/String.def
+ ca53d6119b3cacaa5709bea08344f588  gcc/m2/gm2-libs/String.mod
  f1d0448dddb0806234b4324974795511  gcc/m2/gm2-libs/StringConvert.def
  2827fc85c18fb254b57b06d1940f568d  gcc/m2/gm2-libs/StringConvert.mod
+ cfb8769699afb47506e59253ad077e03  gcc/m2/gm2-libs/StringFileSysOp.def
+ 8885e0f3776e679ed8d88fbc864757ee  gcc/m2/gm2-libs/StringFileSysOp.mod
  3602d43cda7124c63c9282bf1c8e57ba  gcc/m2/gm2-libs/SysExceptions.def
  324436308b22132f485cfe41190a5ffb  gcc/m2/gm2-libs/SysStorage.def
  bcf371a42b660b666ae976ce40ee34ff  gcc/m2/gm2-libs/SysStorage.mod
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7634,7640 ****
  88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  db2ee1a68662c8370d59f7e4f6cf917b  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
! 4d4cc0fe73b53260006e09426a7156ea  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
--- 7618,7624 ----
  88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  db2ee1a68662c8370d59f7e4f6cf917b  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
! 0625c2ddbba0dbf3c712ba7a87b1d3d8  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
*************** f70c3872b668ba9c99b8d73ab2f9cf79  gcc/ob
*** 7675,7684 ****
  127ff083af2dabd45a27016102f6b2ab  gcc/objcp/objcp-lang.cc
  8d1f0d9303077458b28a80a9546ff2ba  gcc/obstack-utils.h
  c2186582925518f8871bcb0f066553f0  gcc/omp-api.h
! 889315061b61c6bc0cb2f27a4eea3939  gcc/omp-builtins.def
  f441ac6601a5a1f6ba5ca39bef20c13a  gcc/omp-expand.cc
  286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
! 4690b68c8d78cbea16b05816b53a61cf  gcc/omp-general.cc
  cb2a8c86939322e491658cba12c21c2f  gcc/omp-general.h
  1324f8a540660f2cbdb237493c886d56  gcc/omp-low.cc
  73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
--- 7659,7668 ----
  127ff083af2dabd45a27016102f6b2ab  gcc/objcp/objcp-lang.cc
  8d1f0d9303077458b28a80a9546ff2ba  gcc/obstack-utils.h
  c2186582925518f8871bcb0f066553f0  gcc/omp-api.h
! bb29d43e983c44c073509e49c0c554db  gcc/omp-builtins.def
  f441ac6601a5a1f6ba5ca39bef20c13a  gcc/omp-expand.cc
  286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
! 9bd34ac7da102efa7529b0da01a4627e  gcc/omp-general.cc
  cb2a8c86939322e491658cba12c21c2f  gcc/omp-general.h
  1324f8a540660f2cbdb237493c886d56  gcc/omp-low.cc
  73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
*************** c9e6163e1eaa8f82c57f03f76e86da75  gcc/pa
*** 7728,7734 ****
  b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
  718e6aebe38eb0dd2bf3d15b5553f760  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! 6f1352dbd329b2ebb19a8b1337497ea4  gcc/pass_manager.h
  cf39cd628f9dc29a9a191f4af2c68346  gcc/passes.cc
  fc39d16481e008cabb9733b116958d1c  gcc/passes.def
  e3f908061f2b051f55381b513a49022b  gcc/path-coverage.cc
--- 7712,7718 ----
  b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
  718e6aebe38eb0dd2bf3d15b5553f760  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! 818628b1b793b8f87f62d0c18fd1219a  gcc/pass_manager.h
  cf39cd628f9dc29a9a191f4af2c68346  gcc/passes.cc
  fc39d16481e008cabb9733b116958d1c  gcc/passes.def
  e3f908061f2b051f55381b513a49022b  gcc/path-coverage.cc
*************** a5461dd81ec55dc6f56817a1f356f345  gcc/pr
*** 7781,7795 ****
  63499dea0e911b175def4a9153353027  gcc/print-rtl.h
  25b31c9113a977129e37056b6c5fd751  gcc/print-tree.cc
  469848c1e480b033f7ee22f68ec05f94  gcc/print-tree.h
! c7fd66d165bf09ee75a0d6f411c424a5  gcc/profile-count.cc
  baf3f698b3459c32f628569084b80d9c  gcc/profile-count.h
  be294583d74c167da1819e51e9001b52  gcc/profile.cc
  d30f617ac9705fc7dc5d14e744fe4ff0  gcc/profile.h
! cd6310734ad3891bc0e87e42637f183e  gcc/range-op-float.cc
! d6a9aa6c86860ab130f496f372c3c113  gcc/range-op-mixed.h
  1ec27428c1d18680765a21ac815ffb7e  gcc/range-op-ptr.cc
! 1330ef79e221ce00965378964ff32327  gcc/range-op.cc
! cd3f902ddf6d735eb53ecce834808827  gcc/range-op.h
  e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
  e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
  fbf6cd31aa699eaf7943473f49a25df6  gcc/read-md.cc
--- 7765,7779 ----
  63499dea0e911b175def4a9153353027  gcc/print-rtl.h
  25b31c9113a977129e37056b6c5fd751  gcc/print-tree.cc
  469848c1e480b033f7ee22f68ec05f94  gcc/print-tree.h
! 535c6328fbe64d2af384ff2ef5d9b40d  gcc/profile-count.cc
  baf3f698b3459c32f628569084b80d9c  gcc/profile-count.h
  be294583d74c167da1819e51e9001b52  gcc/profile.cc
  d30f617ac9705fc7dc5d14e744fe4ff0  gcc/profile.h
! 555a319d44f0f4857aa378a1691e1d27  gcc/range-op-float.cc
! 930dfbfa29eb6bc7e6b33c56109c42a2  gcc/range-op-mixed.h
  1ec27428c1d18680765a21ac815ffb7e  gcc/range-op-ptr.cc
! 614ecc51d10304272e55c74ddfdae99a  gcc/range-op.cc
! 24fea5bf4be00e9dba7bbeb8d52b4677  gcc/range-op.h
  e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
  e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
  fbf6cd31aa699eaf7943473f49a25df6  gcc/read-md.cc
*************** e8038f0b65555e326f704a4460123122  gcc/re
*** 7797,7803 ****
  3dd0d65025f58dfce5d6c65cbf460d0a  gcc/read-rtl-function.cc
  cd83aae447be541259a39119965eecb3  gcc/read-rtl-function.h
  9682aead4a158a567da54b3f2e28b405  gcc/read-rtl.cc
! b92e96443c50a876d7c10ea6563e0e26  gcc/real.cc
  cfd72298c4b4412115571bb0330d1cb4  gcc/real.h
  45eaf15130a976ff2f72716853fe77c6  gcc/realmpfr.cc
  ec455f45b6b3263f840fb385563308d7  gcc/realmpfr.h
--- 7781,7787 ----
  3dd0d65025f58dfce5d6c65cbf460d0a  gcc/read-rtl-function.cc
  cd83aae447be541259a39119965eecb3  gcc/read-rtl-function.h
  9682aead4a158a567da54b3f2e28b405  gcc/read-rtl.cc
! 4e15a5539de152fbb517e87ebb0b0875  gcc/real.cc
  cfd72298c4b4412115571bb0330d1cb4  gcc/real.h
  45eaf15130a976ff2f72716853fe77c6  gcc/realmpfr.cc
  ec455f45b6b3263f840fb385563308d7  gcc/realmpfr.h
*************** add2ef65d80adc09236eaff62179a1fe  gcc/rt
*** 7849,7856 ****
  f39c55472711c984059aff01fd972f31  gcc/rtl-tests.cc
  1105088521e8de72d332faeda31306c7  gcc/rtl.cc
  41ece3c6a40e9a14609645318016e228  gcc/rtl.def
! 325c220265233bde9a9a0bf35ba8fecb  gcc/rtl.h
! b1f87a78aa0bcacaf49d45b0a31b4f3f  gcc/rtlanal.cc
  e38f02dbd2d0d8c027ccae4b785f3fb2  gcc/rtlanal.h
  f829c444b36f34672cb4a7b019c4513b  gcc/rtlhash.cc
  ce0129afbbfb3ab85e5bd8ce9672117d  gcc/rtlhash.h
--- 7833,7840 ----
  f39c55472711c984059aff01fd972f31  gcc/rtl-tests.cc
  1105088521e8de72d332faeda31306c7  gcc/rtl.cc
  41ece3c6a40e9a14609645318016e228  gcc/rtl.def
! 45a03e4de1b2ffb9033607fb2c48a4e8  gcc/rtl.h
! 64d226d9414797f6f39beaac6975ea67  gcc/rtlanal.cc
  e38f02dbd2d0d8c027ccae4b785f3fb2  gcc/rtlanal.h
  f829c444b36f34672cb4a7b019c4513b  gcc/rtlhash.cc
  ce0129afbbfb3ab85e5bd8ce9672117d  gcc/rtlhash.h
*************** cf6dc6ad925fca1cf0c021015c344469  gcc/se
*** 8376,8385 ****
  74ebb02c30bec8d1c45c78a387c5ee18  gcc/selftest-logical-location.h
  22224372e5a2696e660289e86b2696a5  gcc/selftest-rtl.cc
  ab96230d11b93b85d4d1b85cc5d494ab  gcc/selftest-rtl.h
! 208622fee5e412189adf9fa83978e78a  gcc/selftest-run-tests.cc
  777b0025fe2356f118cb24f2302ae4ff  gcc/selftest-tree.h
  220320c985328c0546a9a80a7353964e  gcc/selftest.cc
! 22109e8fd0f9974a8bf1a2572bd74cf0  gcc/selftest.h
  71b83bf173726493d9fee558216a2e02  gcc/sese.cc
  62e0bec4b0ac9f8e027af35a2c2e2330  gcc/sese.h
  9123313dafdd85df1e747e738274ee2c  gcc/shortest-paths.h
--- 8360,8369 ----
  74ebb02c30bec8d1c45c78a387c5ee18  gcc/selftest-logical-location.h
  22224372e5a2696e660289e86b2696a5  gcc/selftest-rtl.cc
  ab96230d11b93b85d4d1b85cc5d494ab  gcc/selftest-rtl.h
! 5bfc4952abe408a262a202b0601d72e8  gcc/selftest-run-tests.cc
  777b0025fe2356f118cb24f2302ae4ff  gcc/selftest-tree.h
  220320c985328c0546a9a80a7353964e  gcc/selftest.cc
! 77ef0eb0fe55f14cbf7d202f1e79584e  gcc/selftest.h
  71b83bf173726493d9fee558216a2e02  gcc/sese.cc
  62e0bec4b0ac9f8e027af35a2c2e2330  gcc/sese.h
  9123313dafdd85df1e747e738274ee2c  gcc/shortest-paths.h
*************** b1497a03867668af210c32280876fdd7  gcc/sy
*** 8442,8448 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! f2f620f972d5676dc010c4d60a28bf6c  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8426,8432 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 69d2de10aa8a11028b036894bc1b93b3  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** cb1823c24b3132640f493855244a27f1  gcc/te
*** 18581,18587 ****
  088dc5cb2525b333a6e4b9edd63428ed  gcc/testsuite/c-c++-common/gomp/declare-variant-12.c
  3426413eb6163ee2d46f83ece16a0bc4  gcc/testsuite/c-c++-common/gomp/declare-variant-13.c
  8201a9ce72c161a5bd2784541f8201fa  gcc/testsuite/c-c++-common/gomp/declare-variant-14.c
! 2f33249e4eedd90971280884a3c04cab  gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
  5783ceed28bdb2e1617af49be1fe4d1d  gcc/testsuite/c-c++-common/gomp/declare-variant-3.c
  65b510d9e426dc2a3b6896eb93dd8335  gcc/testsuite/c-c++-common/gomp/declare-variant-4.c
  ee52d5fc3f8423c9720ccca8a58180a2  gcc/testsuite/c-c++-common/gomp/declare-variant-5.c
--- 18565,18571 ----
  088dc5cb2525b333a6e4b9edd63428ed  gcc/testsuite/c-c++-common/gomp/declare-variant-12.c
  3426413eb6163ee2d46f83ece16a0bc4  gcc/testsuite/c-c++-common/gomp/declare-variant-13.c
  8201a9ce72c161a5bd2784541f8201fa  gcc/testsuite/c-c++-common/gomp/declare-variant-14.c
! 6d8e68e3d6b33954cf219f53dc23e9bb  gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
  5783ceed28bdb2e1617af49be1fe4d1d  gcc/testsuite/c-c++-common/gomp/declare-variant-3.c
  65b510d9e426dc2a3b6896eb93dd8335  gcc/testsuite/c-c++-common/gomp/declare-variant-4.c
  ee52d5fc3f8423c9720ccca8a58180a2  gcc/testsuite/c-c++-common/gomp/declare-variant-5.c
*************** c4c693d3bd497dda156e8c80f281ec9f  gcc/te
*** 18720,18728 ****
  73bada7c7787403df92d2dfc87280580  gcc/testsuite/c-c++-common/gomp/metadirective-6.c
  7b22de52752aa4a8856fe8647b82149d  gcc/testsuite/c-c++-common/gomp/metadirective-7.c
  c567b86bb1126d3b39271713b71a2141  gcc/testsuite/c-c++-common/gomp/metadirective-8.c
  cc1a17af4b834e9dce3121d7b1504e85  gcc/testsuite/c-c++-common/gomp/metadirective-construct.c
  bfe7bd722a9814c4e3724c6c94b3bdc4  gcc/testsuite/c-c++-common/gomp/metadirective-device.c
! 76caa2cd758ae2f6b329164c66f75a05  gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c
  6b4e94542efc1bd9b8aeafa5fe783d4d  gcc/testsuite/c-c++-common/gomp/metadirective-no-score.c
  69c97abaf5f460360c59b85da779c004  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-1.c
  19d35171b50642272e61c9f69291eca9  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-2.c
--- 18704,18714 ----
  73bada7c7787403df92d2dfc87280580  gcc/testsuite/c-c++-common/gomp/metadirective-6.c
  7b22de52752aa4a8856fe8647b82149d  gcc/testsuite/c-c++-common/gomp/metadirective-7.c
  c567b86bb1126d3b39271713b71a2141  gcc/testsuite/c-c++-common/gomp/metadirective-8.c
+ c28fc6e101bf84c9d67bd2c517baab12  gcc/testsuite/c-c++-common/gomp/metadirective-condition-constexpr.c
+ 8485d76d1824f228789b67d7d2a1ebd7  gcc/testsuite/c-c++-common/gomp/metadirective-condition.c
  cc1a17af4b834e9dce3121d7b1504e85  gcc/testsuite/c-c++-common/gomp/metadirective-construct.c
  bfe7bd722a9814c4e3724c6c94b3bdc4  gcc/testsuite/c-c++-common/gomp/metadirective-device.c
! 7c91be054d86d927a2f10a75976a8761  gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c
  6b4e94542efc1bd9b8aeafa5fe783d4d  gcc/testsuite/c-c++-common/gomp/metadirective-no-score.c
  69c97abaf5f460360c59b85da779c004  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-1.c
  19d35171b50642272e61c9f69291eca9  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-2.c
*************** ce3fb89f1513613421cc620156235d68  gcc/te
*** 18735,18740 ****
--- 18721,18728 ----
  a8cae7afccfdaf5c55701d1fd623cbae  gcc/testsuite/c-c++-common/gomp/nothing-2.c
  314d7c905d7b458917321c534f1d5520  gcc/testsuite/c-c++-common/gomp/num-teams-1.c
  9284f2bc3ab39d4db900b0510ab44cb3  gcc/testsuite/c-c++-common/gomp/num-teams-2.c
+ 9085b42a44ff867d1851e43156fab957  gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device-2.c
+ 33e4dd55bc56c426feb1f4f08d3025f5  gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device.c
  6edff4d259a25d0cbbd6bd788efd47b2  gcc/testsuite/c-c++-common/gomp/ompx-1.c
  a53bfb3d3f3e9c540d6b019fcc527fa4  gcc/testsuite/c-c++-common/gomp/ompx-2.c
  a5b411651a6f93c5cf3ce9b7c306c2e4  gcc/testsuite/c-c++-common/gomp/order-1.c
*************** b75b654187426934820f1e2a8a63aaad  gcc/te
*** 21843,21848 ****
--- 21831,21837 ----
  99fb6f2e5c0e7bc8a3c78cbf8090a91f  gcc/testsuite/g++.dg/coroutines/pr116506.C
  59d8e6cfa9a450642b4a378751f44e8a  gcc/testsuite/g++.dg/coroutines/pr116793-1.C
  16df01e113e50e8969f23cb32c1ab8fd  gcc/testsuite/g++.dg/coroutines/pr116880.C
+ 6f5d9f0541a73db813050efb87fec0d6  gcc/testsuite/g++.dg/coroutines/pr118903.C
  639bf3d722d542a1aab7bcbf3114716a  gcc/testsuite/g++.dg/coroutines/pr120453.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
*************** b7603919caddaa5fd970651b9b859a39  gcc/te
*** 22269,22274 ****
--- 22258,22264 ----
  ecc0ef1a879b400ac24f5ea090a2027c  gcc/testsuite/g++.dg/cpp0x/alias-decl-79.C
  82163eb65f3dd2851d5aa67b8d473252  gcc/testsuite/g++.dg/cpp0x/alias-decl-79a.C
  77aa48fcd9f9b9ffab08fa7ebc5d52e2  gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C
+ 2c4b73fa235be0a7a7f59ce113d65ff8  gcc/testsuite/g++.dg/cpp0x/alias-decl-80.C
  0fea677a266ad89646463d41e4df0566  gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
  2b0ac9ee7e77902ee76b92dfbfcc37b3  gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C
  0c857f35d307877fbdc35abb07bb117c  gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1286.C
*************** bb1e8039c5f9a1898a554f4a2c5b948b  gcc/te
*** 26101,26106 ****
--- 26091,26097 ----
  d2b00d74edfce4b38dded9d7db2fe03e  gcc/testsuite/g++.dg/cpp1z/constexpr-if36.C
  68e49d8c04b03376d365a022cccfff64  gcc/testsuite/g++.dg/cpp1z/constexpr-if37.C
  5b41ab566c82afde0e0be2b28cfb55e4  gcc/testsuite/g++.dg/cpp1z/constexpr-if38.C
+ 2d5ffe49d0e04f8c3fb3dda71995114f  gcc/testsuite/g++.dg/cpp1z/constexpr-if39.C
  d32800b4d59baf4fd0d00036181adc4d  gcc/testsuite/g++.dg/cpp1z/constexpr-if4.C
  8fa44fc4f9f1105ec488f8e5308e62eb  gcc/testsuite/g++.dg/cpp1z/constexpr-if5.C
  dd3fed7a614d71be04ab2475cca10561  gcc/testsuite/g++.dg/cpp1z/constexpr-if6.C
*************** c4beb3372cb0e77f36a788efb02031c2  gcc/te
*** 27443,27448 ****
--- 27434,27440 ----
  d29f558af48deff313645aecd90adb8d  gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C
  89741a348551bf62e5198e689a2cb9eb  gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C
  1d3b0e7bd64b76d92b8ff4d82aba48e9  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue1.C
+ 7ab8f2bb925385f3c907d1d36a81ac9b  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C
  081a94c39fa972dab2d9f8590e087bc6  gcc/testsuite/g++.dg/cpp2a/constexpr-ref1.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
  1d1e610556de3295af12cf17177f42b7  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
*************** a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/te
*** 27498,27503 ****
--- 27490,27496 ----
  788c9769d26d7dc940ca016c456aa46b  gcc/testsuite/g++.dg/cpp2a/constinit19.C
  9f7da905ea744d36251021c627953aa7  gcc/testsuite/g++.dg/cpp2a/constinit2.C
  95455a3427e6e70c4c8f15488c58aaac  gcc/testsuite/g++.dg/cpp2a/constinit20.C
+ 53ac4d7ed8b6f12589ccff463969dc47  gcc/testsuite/g++.dg/cpp2a/constinit21.C
  bfb75b72cdd7648ff4412bc1f4c20b7e  gcc/testsuite/g++.dg/cpp2a/constinit3.C
  ec5836ef75d0047a1e68f87292524d25  gcc/testsuite/g++.dg/cpp2a/constinit4.C
  dedfc59644b0e60dc6b2af2a6aa72984  gcc/testsuite/g++.dg/cpp2a/constinit5.C
*************** ac8ae9af02e9ee2f464c6ba74c3f21d9  gcc/te
*** 29331,29336 ****
--- 29324,29330 ----
  ef7bbe101f86443fe254588a5ca27361  gcc/testsuite/g++.dg/ext/has_trivial_copy.C
  f271483cc849c390e250605e54ae37b8  gcc/testsuite/g++.dg/ext/has_trivial_destructor-1.C
  a24f991beb2c5296f2e8144630b7bb1a  gcc/testsuite/g++.dg/ext/has_trivial_destructor-2.C
+ d9a5225768f42f5bacffe98269f2d9d5  gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C
  72069a562c9156e50b3efde0f66048dc  gcc/testsuite/g++.dg/ext/has_virtual_destructor.C
  853c0d1bb8c4ec806df7ecfff1c64c10  gcc/testsuite/g++.dg/ext/init1.C
  04cb5500126619139ae126fdc51c8a1f  gcc/testsuite/g++.dg/ext/injected-ttp.C
*************** d84b4e6ad32eec6b47fea11f39244dd7  gcc/te
*** 29398,29403 ****
--- 29392,29398 ----
  d74301fd930f4a488c9e941cdd242900  gcc/testsuite/g++.dg/ext/is_convertible6.C
  ebb1df191bcea60ed6342dad182b8901  gcc/testsuite/g++.dg/ext/is_deducible1.C
  94a516051a47d1b7e866ec47efa5de01  gcc/testsuite/g++.dg/ext/is_destructible1.C
+ aa081a16610eaae6eaa83ad85ce8aa33  gcc/testsuite/g++.dg/ext/is_destructible2.C
  9da1ecf7ca599ccc9c1677e62cfc809f  gcc/testsuite/g++.dg/ext/is_empty.C
  51590a59aaf8715b9fe4a7ae06414cb8  gcc/testsuite/g++.dg/ext/is_empty2.C
  904cd436fd5b5ebe1349610a0aa7c2da  gcc/testsuite/g++.dg/ext/is_enum.C
*************** fc63cfdc56a33b15fa4d063e5ef655b2  gcc/te
*** 30131,30136 ****
--- 30126,30133 ----
  135dd9ca392aa9976b7a20570053aa68  gcc/testsuite/g++.dg/gomp/member-4.C
  c1d74700c9732009a221d3e853e0d1a3  gcc/testsuite/g++.dg/gomp/member-array-2.C
  b04637997ce93ec04bd981d2cda2f110  gcc/testsuite/g++.dg/gomp/member-array-omp.C
+ d4182799214f45dabaa5ac64c4ea27b7  gcc/testsuite/g++.dg/gomp/metadirective-condition-class.C
+ ba7e10ef037089d1a30c8bf2079be93e  gcc/testsuite/g++.dg/gomp/metadirective-condition-template.C
  ab2ceb1dedc2f10e9f7e407653985ce1  gcc/testsuite/g++.dg/gomp/metadirective-template-1.C
  40ddfb4cf46a4ea2a28ece501a9d1b2b  gcc/testsuite/g++.dg/gomp/method-1.C
  d829c2c1f9a522a97ec0370c1f67a993  gcc/testsuite/g++.dg/gomp/num-teams-1.C
*************** fae22c7cff0bae185284077ff2e72523  gcc/te
*** 32022,32028 ****
  0a66e0a40527f0507cceaeb322c91a15  gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_b.C
  097ffafa56bf8b6bcbb8f85c58b0e187  gcc/testsuite/g++.dg/modules/convop-1_a.C
  02940f3eec05ab2c1e44ea29d72255b6  gcc/testsuite/g++.dg/modules/convop-1_b.C
! ac21ba6dd7a4b896ded96e6d9d998074  gcc/testsuite/g++.dg/modules/cpp-1.C
  3bb7a96e17349f006fdc91b7d33ece61  gcc/testsuite/g++.dg/modules/cpp-10.C
  2d36bf18c705bff96fbeefdaf66de03e  gcc/testsuite/g++.dg/modules/cpp-11.C
  1c1ccb7e3d0b88bc9ac80c8c8ade95b4  gcc/testsuite/g++.dg/modules/cpp-12.C
--- 32019,32025 ----
  0a66e0a40527f0507cceaeb322c91a15  gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_b.C
  097ffafa56bf8b6bcbb8f85c58b0e187  gcc/testsuite/g++.dg/modules/convop-1_a.C
  02940f3eec05ab2c1e44ea29d72255b6  gcc/testsuite/g++.dg/modules/convop-1_b.C
! a12e7250787d90ecbf8a074e29830748  gcc/testsuite/g++.dg/modules/cpp-1.C
  3bb7a96e17349f006fdc91b7d33ece61  gcc/testsuite/g++.dg/modules/cpp-10.C
  2d36bf18c705bff96fbeefdaf66de03e  gcc/testsuite/g++.dg/modules/cpp-11.C
  1c1ccb7e3d0b88bc9ac80c8c8ade95b4  gcc/testsuite/g++.dg/modules/cpp-12.C
*************** d3b0a55e79b15e865f383cb22a8e75f3  gcc/te
*** 32037,32044 ****
  7df70a1a3701f4e80b19b9464ac25c08  gcc/testsuite/g++.dg/modules/cpp-2_a.H
  783ab638033bc17058b529268c3f6d93  gcc/testsuite/g++.dg/modules/cpp-2_b.H
  e1048ef57be07983f84fafa8dc76318c  gcc/testsuite/g++.dg/modules/cpp-2_c.C
! c2a9522111346f993bfbf518c09ba47e  gcc/testsuite/g++.dg/modules/cpp-3.C
! ce30e0cf66d2582f7002c6e0c0db5c23  gcc/testsuite/g++.dg/modules/cpp-4.C
  06dff50a736dc7a8b9894fc499b7e4e4  gcc/testsuite/g++.dg/modules/cpp-4.h
  b1f03c901247645230e4966afda6e912  gcc/testsuite/g++.dg/modules/cpp-5_a.H
  fbe86dd2a8732d33bad7bda15fc0e2db  gcc/testsuite/g++.dg/modules/cpp-5_b.C
--- 32034,32041 ----
  7df70a1a3701f4e80b19b9464ac25c08  gcc/testsuite/g++.dg/modules/cpp-2_a.H
  783ab638033bc17058b529268c3f6d93  gcc/testsuite/g++.dg/modules/cpp-2_b.H
  e1048ef57be07983f84fafa8dc76318c  gcc/testsuite/g++.dg/modules/cpp-2_c.C
! 88460606494e7464c4e0362e0a5e17b6  gcc/testsuite/g++.dg/modules/cpp-3.C
! 3e74f81dc57de6cc2a7ef26260b1940e  gcc/testsuite/g++.dg/modules/cpp-4.C
  06dff50a736dc7a8b9894fc499b7e4e4  gcc/testsuite/g++.dg/modules/cpp-4.h
  b1f03c901247645230e4966afda6e912  gcc/testsuite/g++.dg/modules/cpp-5_a.H
  fbe86dd2a8732d33bad7bda15fc0e2db  gcc/testsuite/g++.dg/modules/cpp-5_b.C
*************** cd9ce81573f1dd55ed9926ad0afbe423  gcc/te
*** 33820,33826 ****
  839e4041ddf7b91f61617c551027273b  gcc/testsuite/g++.dg/opt/pr65074.C
  12eb0915d4b7275f1bc0c55a27fe5a16  gcc/testsuite/g++.dg/opt/pr65105-4.C
  adca6059edef581a7bc185d3c1cdb81d  gcc/testsuite/g++.dg/opt/pr65554.C
! 44b3ec812920b25a36c3ab1d5fcdf7ff  gcc/testsuite/g++.dg/opt/pr66119.C
  ac2356162f00cd5e8804482480f1795a  gcc/testsuite/g++.dg/opt/pr6713.C
  ddd0cdc94ae2b3fb5f1da01082f09677  gcc/testsuite/g++.dg/opt/pr68157.C
  38e2f5d0566a28c09b5e21b63f5a4483  gcc/testsuite/g++.dg/opt/pr69141.C
--- 33817,33823 ----
  839e4041ddf7b91f61617c551027273b  gcc/testsuite/g++.dg/opt/pr65074.C
  12eb0915d4b7275f1bc0c55a27fe5a16  gcc/testsuite/g++.dg/opt/pr65105-4.C
  adca6059edef581a7bc185d3c1cdb81d  gcc/testsuite/g++.dg/opt/pr65554.C
! 2bf59a1a968e94a7356116d94daac795  gcc/testsuite/g++.dg/opt/pr66119.C
  ac2356162f00cd5e8804482480f1795a  gcc/testsuite/g++.dg/opt/pr6713.C
  ddd0cdc94ae2b3fb5f1da01082f09677  gcc/testsuite/g++.dg/opt/pr68157.C
  38e2f5d0566a28c09b5e21b63f5a4483  gcc/testsuite/g++.dg/opt/pr69141.C
*************** c26c19c6753e65db02ae97efd8a54af2  gcc/te
*** 37156,37167 ****
  e425d7fc584cf8535f3eee565f58f091  gcc/testsuite/g++.dg/tls/init-1.C
  ec6c7e65d57e2a70cb1a6852131a0f16  gcc/testsuite/g++.dg/tls/init-2.C
  e9afa7cf1ac751d2df40286607549ef0  gcc/testsuite/g++.dg/tls/locations1.C
! 2a8c59f8866b77fe70f624e3d722097d  gcc/testsuite/g++.dg/tls/pr102496-1.C
  abc37af969d1e3eb6c154521bc4614aa  gcc/testsuite/g++.dg/tls/pr102496-2.C
  7e8484ec05c7aa22b9de8e440eb62ad6  gcc/testsuite/g++.dg/tls/pr102642.C
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
! f4ebaa2e9bc5b065a4c81b1ec15efe2c  gcc/testsuite/g++.dg/tls/pr77285-1.C
  f1ca461838c5ae75f6825f6cd92ae307  gcc/testsuite/g++.dg/tls/pr77285-2.C
  4db79bd63ba94ab802fb63629928af1d  gcc/testsuite/g++.dg/tls/pr79288.C
  eaa257e5d01462b4484236d4e40a6e81  gcc/testsuite/g++.dg/tls/pr85400.C
--- 37153,37164 ----
  e425d7fc584cf8535f3eee565f58f091  gcc/testsuite/g++.dg/tls/init-1.C
  ec6c7e65d57e2a70cb1a6852131a0f16  gcc/testsuite/g++.dg/tls/init-2.C
  e9afa7cf1ac751d2df40286607549ef0  gcc/testsuite/g++.dg/tls/locations1.C
! a3c6e48df168850652cb297ec24efd8d  gcc/testsuite/g++.dg/tls/pr102496-1.C
  abc37af969d1e3eb6c154521bc4614aa  gcc/testsuite/g++.dg/tls/pr102496-2.C
  7e8484ec05c7aa22b9de8e440eb62ad6  gcc/testsuite/g++.dg/tls/pr102642.C
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
! 0ceb6a01aeecd4ce8dd293985c91a3de  gcc/testsuite/g++.dg/tls/pr77285-1.C
  f1ca461838c5ae75f6825f6cd92ae307  gcc/testsuite/g++.dg/tls/pr77285-2.C
  4db79bd63ba94ab802fb63629928af1d  gcc/testsuite/g++.dg/tls/pr79288.C
  eaa257e5d01462b4484236d4e40a6e81  gcc/testsuite/g++.dg/tls/pr85400.C
*************** d049885f4d053577c545356b2aed7783  gcc/te
*** 37980,37986 ****
  7f7f7d6d353f34c98889acc527e3e195  gcc/testsuite/g++.dg/tree-ssa/ldist-1.C
  e48684fba8399ff995984d71ebc63e26  gcc/testsuite/g++.dg/tree-ssa/lifetime-dse1.C
  8751bd4974a7134cbf8b6b4fa30f58e3  gcc/testsuite/g++.dg/tree-ssa/loop-cond-split-1.C
! eefc6e776fd9a44ba50cd61cd76f04e8  gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C
  8a88746bf26b483b92bb27194cb12cb4  gcc/testsuite/g++.dg/tree-ssa/modref-1.C
  c60f58c35051bdf33475572fe6676ded  gcc/testsuite/g++.dg/tree-ssa/new1.C
  15ab0ba34272a9b9cb6f26af6f24d6be  gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C
--- 37977,37983 ----
  7f7f7d6d353f34c98889acc527e3e195  gcc/testsuite/g++.dg/tree-ssa/ldist-1.C
  e48684fba8399ff995984d71ebc63e26  gcc/testsuite/g++.dg/tree-ssa/lifetime-dse1.C
  8751bd4974a7134cbf8b6b4fa30f58e3  gcc/testsuite/g++.dg/tree-ssa/loop-cond-split-1.C
! 2e94d74d37d26fff24ad120b1785858a  gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C
  8a88746bf26b483b92bb27194cb12cb4  gcc/testsuite/g++.dg/tree-ssa/modref-1.C
  c60f58c35051bdf33475572fe6676ded  gcc/testsuite/g++.dg/tree-ssa/new1.C
  15ab0ba34272a9b9cb6f26af6f24d6be  gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C
*************** f113072427101a2b7f160db112a1f54f  gcc/te
*** 42936,42941 ****
--- 42933,42939 ----
  94ea7d9cba55dd53f98f172e81e0c7ad  gcc/testsuite/g++.target/arm/pr103676.C
  d8845d0576030f586cc8563067a1c9ed  gcc/testsuite/g++.target/arm/pr107080.C
  98e5c3b96316f917c107a3470b80e1ac  gcc/testsuite/g++.target/arm/pr115485.C
+ 22b022621ec4a2ba2869db06da51c88b  gcc/testsuite/g++.target/arm/pr120424.C
  86ce099311b8a462979885c1f82c41db  gcc/testsuite/g++.target/arm/pr81497.C
  c66ac2233f3efac56ec64b9294b3708d  gcc/testsuite/g++.target/arm/pr95726.C
  881bcc41183f756e0d7cbda13b2b51df  gcc/testsuite/g++.target/arm/pr99593.C
*************** e7c4ad8e3b4d2a6588c231359cacaffb  gcc/te
*** 43072,43077 ****
--- 43070,43076 ----
  2a03baff08b5b7bdeb8d3633c49032bb  gcc/testsuite/g++.target/i386/pr103012.C
  d14b3d4a9b5fcacba2b980352b05c8e3  gcc/testsuite/g++.target/i386/pr103696.C
  d0389546e76e0d125a747ec062584763  gcc/testsuite/g++.target/i386/pr103750-fwprop-1.C
+ 45b969acc08044941db7a8b6e0be0747  gcc/testsuite/g++.target/i386/pr103750.C
  a87febe2b07ccee6b99d32890b389fd3  gcc/testsuite/g++.target/i386/pr103861-1-sse4.C
  37faebe0845bea899c8c08c800497d7a  gcc/testsuite/g++.target/i386/pr103861-1-xop.C
  647572387f8f768cf1afdecc5deeb027  gcc/testsuite/g++.target/i386/pr103861-1.C
*************** ad4c12cbdeae1f798d84fc1e51955bc4  gcc/te
*** 43117,43122 ****
--- 43116,43122 ----
  51556317586878910157bab09d18703d  gcc/testsuite/g++.target/i386/pr111822.C
  fd59bd55c8af155357d422bd60744790  gcc/testsuite/g++.target/i386/pr112443.C
  5d6b65e74ad6d774f3c3ba927501e59d  gcc/testsuite/g++.target/i386/pr112824-1.C
+ d6fb8115dbf51499f6980e87ccc401ea  gcc/testsuite/g++.target/i386/pr112824-2.C
  5571ccf83a637118ffbd77008f68ffc1  gcc/testsuite/g++.target/i386/pr112904.C
  2d12346b9d876784bbcc5cc97c19fd9f  gcc/testsuite/g++.target/i386/pr113560.C
  aa1fa5c91fdecbdc2a47df1fff1bf867  gcc/testsuite/g++.target/i386/pr114187.C
*************** fef8c8e0e438a70ba68e11025e033af6  gcc/te
*** 46273,46278 ****
--- 46273,46280 ----
  97dffb77bfdc924b76a1c91809febb87  gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x
  6f905cdc469586014bb19fd748162b58  gcc/testsuite/gcc.c-torture/execute/builtins/memset-lib.c
  52867f894dd88e60bcf0182d12a00624  gcc/testsuite/gcc.c-torture/execute/builtins/memset.c
+ 99438348a0fb8c16f611b552687c659a  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1-lib.c
+ 4f5330e68c8f3e38cba895db53031a61  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1.c
  99438348a0fb8c16f611b552687c659a  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c
  300d9ab3d9df6e85085c874f460a689f  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237.c
  8e258d2fc5daa60d7007d842cf555b36  gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk-lib.c
*************** c01d908b8b1ca87be88f727b6cd6e491  gcc/te
*** 47904,47909 ****
--- 47906,47912 ----
  756b797936acd5f6c41a6d5ccfc696b9  gcc/testsuite/gcc.dg/Wint-in-bool-context-4.c
  74e00c0632715138d6110d495d44182c  gcc/testsuite/gcc.dg/Wjump-misses-init-1.c
  afe3ee2ad32e9663adf1bf0ad0d91263  gcc/testsuite/gcc.dg/Wjump-misses-init-2.c
+ 7725ba86cd3bf4ec82b60cda265eced4  gcc/testsuite/gcc.dg/Wjump-misses-init-3.c
  623d989fba31af9cb3c8d7eab5cb6b66  gcc/testsuite/gcc.dg/Wlarger-than.c
  6f7f5aa958b936dbca6e4316ef2ba901  gcc/testsuite/gcc.dg/Wlarger-than2.c
  9323a6a92dcf4c5b25b6c5bbd0d9345b  gcc/testsuite/gcc.dg/Wlarger-than3.c
*************** c18469175af3ebdf263d34347ebe2d40  gcc/te
*** 49231,49236 ****
--- 49234,49240 ----
  d217543f954eb3f31e246355824f653a  gcc/testsuite/gcc.dg/bitint-120.c
  2cdc0474f10fd564ead32c0c64a2d7c8  gcc/testsuite/gcc.dg/bitint-121.c
  43db7c5f800ce763fcf885501389882a  gcc/testsuite/gcc.dg/bitint-122.c
+ 7d02ff9539e664bbbcfc85b464d916c1  gcc/testsuite/gcc.dg/bitint-123.c
  aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
  e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
  c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
*************** c16263fe97e9a67347f142108b0ef45c  gcc/te
*** 52544,52550 ****
  8274444b50d1968c43296a7054673b34  gcc/testsuite/gcc.dg/gnu23-tag-composite-3.c
  62aa66dd9de4209944d261bb9c728665  gcc/testsuite/gcc.dg/gnu23-tag-composite-4.c
  55eb38c543312d9a8ec407d5dc57ab64  gcc/testsuite/gcc.dg/gnu23-tag-composite-5.c
! 887f4e5101f5e72489cd28cddbde9ca9  gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c
  c85fa6543a15d51c958fa06a431c31a0  gcc/testsuite/gcc.dg/gnu23-tag-enum-1.c
  91a4022639b4da631739955963491d18  gcc/testsuite/gcc.dg/gnu23-typeof-1.c
  f4cdcfdd20fcbe93fb5c641aa6f0e1e7  gcc/testsuite/gcc.dg/gnu23-utf8char-1.c
--- 52548,52554 ----
  8274444b50d1968c43296a7054673b34  gcc/testsuite/gcc.dg/gnu23-tag-composite-3.c
  62aa66dd9de4209944d261bb9c728665  gcc/testsuite/gcc.dg/gnu23-tag-composite-4.c
  55eb38c543312d9a8ec407d5dc57ab64  gcc/testsuite/gcc.dg/gnu23-tag-composite-5.c
! 7ae4d5682427c0dd075f516246144195  gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c
  c85fa6543a15d51c958fa06a431c31a0  gcc/testsuite/gcc.dg/gnu23-tag-enum-1.c
  91a4022639b4da631739955963491d18  gcc/testsuite/gcc.dg/gnu23-typeof-1.c
  f4cdcfdd20fcbe93fb5c641aa6f0e1e7  gcc/testsuite/gcc.dg/gnu23-utf8char-1.c
*************** b7d6fb3e14f86c09ea6f178c014109c3  gcc/te
*** 55405,55410 ****
--- 55409,55415 ----
  c1b2e797633e4c55b12e32de20ad49e3  gcc/testsuite/gcc.dg/pr116879.c
  8aed09e5b7a0e94c0ab7d89427bc9ee7  gcc/testsuite/gcc.dg/pr116887.c
  af316e7c425bfdeaadea8998cbd27110  gcc/testsuite/gcc.dg/pr116891.c
+ 7ed571380ea3c44358d23d8dc9a197ff  gcc/testsuite/gcc.dg/pr116892.c
  74e00ad1edb39167550d49fdf426dbd3  gcc/testsuite/gcc.dg/pr116905.c
  603bb72cd5e79ceb80ff5fcc4c83606f  gcc/testsuite/gcc.dg/pr116906-1.c
  f721b513a9ffc969859bf3f862b29fc8  gcc/testsuite/gcc.dg/pr116906-2.c
*************** c1520f6dceb2ad219f9c1f006e65ea92  gcc/te
*** 55487,55493 ****
--- 55492,55500 ----
  419de75d508972d0daecf2c3b360b2c8  gcc/testsuite/gcc.dg/pr120354.c
  689934c8e3065936b13e4d29e7945bf3  gcc/testsuite/gcc.dg/pr120380.c
  fa5bb8fde0acecb33a479faffc86bd94  gcc/testsuite/gcc.dg/pr120381.c
+ 00ae80f6bc28b04e42c74bc9c2084c39  gcc/testsuite/gcc.dg/pr120447.c
  9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
+ 7e5ecdaab28f17bb60a37435dfa95af7  gcc/testsuite/gcc.dg/pr120525.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** e9fd20c6a5ee817fc329cc085c9032eb  gcc/te
*** 60377,60382 ****
--- 60384,60390 ----
  8d1595003065ecd1d4556067ec7e25cc  gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
  3efe9018c42617fad26ca176fc3306fd  gcc/testsuite/gcc.dg/tree-prof/20050826-2.c
  7fea89044d1cae3c25a1775dd049cbe7  gcc/testsuite/gcc.dg/tree-prof/bb-reorg.c
+ 9bc7df6cd831bae143cb16ce6ee5c741  gcc/testsuite/gcc.dg/tree-prof/clone-merge-1.c
  fea6679f47a5ff36663a877937522419  gcc/testsuite/gcc.dg/tree-prof/cmpsf-1.c
  124079e3848ee10f2ebc98be4d07e9f5  gcc/testsuite/gcc.dg/tree-prof/cold_partition_label.c
  e9f1e3170e9c1bd390f79587f24c6349  gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
*************** b7cfff07af56229a84adabedb33d4c58  gcc/te
*** 60511,60517 ****
  6981b5341c901b7de7b6c21a71f47eb1  gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c
  4b0817bcc2c6890a7266c638a0d32f45  gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c
  f675c641c9613200d6c10a8327621a00  gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c
! d64f06b6bc60f2a26df5a85f00b45925  gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c
  3d74f7a86f1ec677f56458b70548904e  gcc/testsuite/gcc.dg/tree-ssa/20031113-1.c
  ccbf57ac62324c514aa4cbd38bbd36a7  gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
  046d6c6897e5fb6982e21292a9f79c4a  gcc/testsuite/gcc.dg/tree-ssa/20040121-1.c
--- 60519,60525 ----
  6981b5341c901b7de7b6c21a71f47eb1  gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c
  4b0817bcc2c6890a7266c638a0d32f45  gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c
  f675c641c9613200d6c10a8327621a00  gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c
! bbf8c5a60b99077a95362d46779a9683  gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c
  3d74f7a86f1ec677f56458b70548904e  gcc/testsuite/gcc.dg/tree-ssa/20031113-1.c
  ccbf57ac62324c514aa4cbd38bbd36a7  gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
  046d6c6897e5fb6982e21292a9f79c4a  gcc/testsuite/gcc.dg/tree-ssa/20040121-1.c
*************** cb85a2159e6429ded025be9506d3d3ec  gcc/te
*** 60850,60855 ****
--- 60858,60864 ----
  eff8f806b1a91fc87bafb5aaff55fd32  gcc/testsuite/gcc.dg/tree-ssa/cswtch-3.c
  b51831242139a92b34dbcd60cebb1cd5  gcc/testsuite/gcc.dg/tree-ssa/cswtch-4.c
  480e4d735335d00028f58f451947cfe1  gcc/testsuite/gcc.dg/tree-ssa/cswtch-5.c
+ fd23db69035b063fe3ac0299d026bace  gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c
  59e69728c798843be3e7e01a41019422  gcc/testsuite/gcc.dg/tree-ssa/cswtch.c
  3a98d5ff303f51c628fb855f94b30645  gcc/testsuite/gcc.dg/tree-ssa/ctz-char.c
  2693b3a5d1d97d4cb3f14fea48ab348f  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-char.c
*************** e801619e0f762ef77d5184a84e241aaf  gcc/te
*** 61019,61024 ****
--- 61028,61035 ----
  f13f933c98b03cde87730a731e3f3ec1  gcc/testsuite/gcc.dg/tree-ssa/ifc-pr69489-2.c
  408be13ffcf3fa2e3e04aaf399eaf89f  gcc/testsuite/gcc.dg/tree-ssa/ifc-pr71503.c
  8f97d9a50bdf036c88ea79617b4bea19  gcc/testsuite/gcc.dg/tree-ssa/ifc-pr71683.c
+ da843661f081a86a5b27ab185c18e616  gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c
+ 93203f53e877f42f10c7df972b2351fb  gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c
  9863a7166ce42777205a510fff36e2ee  gcc/testsuite/gcc.dg/tree-ssa/inline-1.c
  140b6a02c1d8bf595fc72633853e48f4  gcc/testsuite/gcc.dg/tree-ssa/inline-10.c
  5f4ae2376e18749c34804d61bb1d74f7  gcc/testsuite/gcc.dg/tree-ssa/inline-11.c
*************** cef3bfd56530a07f8eb43ec1a8c7552d  gcc/te
*** 61377,61382 ****
--- 61388,61394 ----
  f26d2e01babf45dbaeac6dc0140557e7  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c
  d5f82ca4c500006079bdac0858cef071  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
  a39b55be53be7f30c85f02bc40f6fa4d  gcc/testsuite/gcc.dg/tree-ssa/phiprop-1.c
+ b18b8b5a19422d636c72d991386bfa91  gcc/testsuite/gcc.dg/tree-ssa/phiprop-2.c
  b81bf617d471d744150338432db43dc6  gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
  c7d4b48e1b7fabc4a3165b3279573966  gcc/testsuite/gcc.dg/tree-ssa/popcount.c
  698a1a5b66251de92ebeb4f655fd8be8  gcc/testsuite/gcc.dg/tree-ssa/popcount2.c
*************** e7f331e191d07635b3ac2b406e62617c  gcc/te
*** 61458,61463 ****
--- 61470,61476 ----
  ba0f756770b2c8c27b5698876e3038d6  gcc/testsuite/gcc.dg/tree-ssa/pr108137.c
  6e9a4a3a8a16375f78591054eb13656b  gcc/testsuite/gcc.dg/tree-ssa/pr108354-1.c
  c5a0107e4cd77a1915eefaff82e823a7  gcc/testsuite/gcc.dg/tree-ssa/pr108357.c
+ fbe3ccf98a91a4b513e988408a1f670d  gcc/testsuite/gcc.dg/tree-ssa/pr108358-a.c
  486e83eb732ae374266e81bf0ad91d4c  gcc/testsuite/gcc.dg/tree-ssa/pr108684-1.c
  336fbe90910f8510ce18879884624b1f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-1.c
  b95e043a8efd5687ccde935f82229c3f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-2.c
*************** b098058bf56a706b588ea3466b2d21f0  gcc/te
*** 61505,61510 ****
--- 61518,61524 ----
  02a5ab6dda99f9a8349410f9b29f8d78  gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
  02b4814f72330fad1ca31d29097c0f1e  gcc/testsuite/gcc.dg/tree-ssa/pr113993.c
  d044056d4248cb78637686f3d28272bb  gcc/testsuite/gcc.dg/tree-ssa/pr114009.c
+ 7d2821a8e9f6d119e895315af0317341  gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c
  9c0683e4499be406ba003816f4bd0db5  gcc/testsuite/gcc.dg/tree-ssa/pr114760-1.c
  5d8a744b9f15d7ea3d51feac8d667c77  gcc/testsuite/gcc.dg/tree-ssa/pr114760-2.c
  8710d339fbc689e052900f47a175994e  gcc/testsuite/gcc.dg/tree-ssa/pr114864.c
*************** b8236d8ce423075243050d2ed9692781  gcc/te
*** 61533,61538 ****
--- 61547,61555 ----
  6d2d98158a34d9ab09e487779a321f3d  gcc/testsuite/gcc.dg/tree-ssa/pr118637.c
  269c5fb72451371e1dde1dd85e06c989  gcc/testsuite/gcc.dg/tree-ssa/pr118902-1.c
  9f16ee3f51fd11f2ecc69288d35eb523  gcc/testsuite/gcc.dg/tree-ssa/pr120080.c
+ 7f3a7c07aebf7f97b00e05ed858383da  gcc/testsuite/gcc.dg/tree-ssa/pr120231-1.c
+ dab88e25e03ff735e2c1de465e1513fc  gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c
+ aeb12077d90e06af9a00cc755a37915a  gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** a616cf05ad4b0662588c437132967815  gcc/te
*** 61684,61690 ****
  cd4367b0a06a6ddc678bb82ef79e9178  gcc/testsuite/gcc.dg/tree-ssa/pr34244.c
  9a53a14953415500efa378b3c8629d45  gcc/testsuite/gcc.dg/tree-ssa/pr34635-1.c
  e6eaee55ed098e8181ec180a8a0cdd50  gcc/testsuite/gcc.dg/tree-ssa/pr34635.c
! d825c4d9b72ba6641cffb8c61f662340  gcc/testsuite/gcc.dg/tree-ssa/pr35286.c
  d7ea78bb3712cbac061e6498a5947a50  gcc/testsuite/gcc.dg/tree-ssa/pr35287.c
  d85d16a112cc50f7814e25d00a7bf55d  gcc/testsuite/gcc.dg/tree-ssa/pr36181.c
  d225a29621cff47f99749a95f0ed3a1d  gcc/testsuite/gcc.dg/tree-ssa/pr36326.c
--- 61701,61707 ----
  cd4367b0a06a6ddc678bb82ef79e9178  gcc/testsuite/gcc.dg/tree-ssa/pr34244.c
  9a53a14953415500efa378b3c8629d45  gcc/testsuite/gcc.dg/tree-ssa/pr34635-1.c
  e6eaee55ed098e8181ec180a8a0cdd50  gcc/testsuite/gcc.dg/tree-ssa/pr34635.c
! 0017cb2f2019750d7a860041a68d801c  gcc/testsuite/gcc.dg/tree-ssa/pr35286.c
  d7ea78bb3712cbac061e6498a5947a50  gcc/testsuite/gcc.dg/tree-ssa/pr35287.c
  d85d16a112cc50f7814e25d00a7bf55d  gcc/testsuite/gcc.dg/tree-ssa/pr36181.c
  d225a29621cff47f99749a95f0ed3a1d  gcc/testsuite/gcc.dg/tree-ssa/pr36326.c
*************** c63243a8574ce97ea22e7dde21b469c6  gcc/te
*** 61741,61747 ****
  c7ad6f1bea15d0129d2d4114715d38ab  gcc/testsuite/gcc.dg/tree-ssa/pr55579.c
  337de2f03bc182ae1e01fb18807fa344  gcc/testsuite/gcc.dg/tree-ssa/pr56719.c
  67a5b0f128b939266c30fba4ddbf8b7a  gcc/testsuite/gcc.dg/tree-ssa/pr56727.c
! a1b69b395bc1073391af5c497fbcaa6f  gcc/testsuite/gcc.dg/tree-ssa/pr57361.c
  3add5403cc3aefec17c98fd16ca42721  gcc/testsuite/gcc.dg/tree-ssa/pr57385.c
  6e5c334c8814768ab3b4bf81240e5d61  gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
  c4bed0849dd869035230ef14c12f5167  gcc/testsuite/gcc.dg/tree-ssa/pr58958.c
--- 61758,61765 ----
  c7ad6f1bea15d0129d2d4114715d38ab  gcc/testsuite/gcc.dg/tree-ssa/pr55579.c
  337de2f03bc182ae1e01fb18807fa344  gcc/testsuite/gcc.dg/tree-ssa/pr56719.c
  67a5b0f128b939266c30fba4ddbf8b7a  gcc/testsuite/gcc.dg/tree-ssa/pr56727.c
! e3a0265c95af021d160770625ca1867e  gcc/testsuite/gcc.dg/tree-ssa/pr57361-1.c
! d3f39eb4737f3f2f2e0a7ef9ea6cc0b7  gcc/testsuite/gcc.dg/tree-ssa/pr57361.c
  3add5403cc3aefec17c98fd16ca42721  gcc/testsuite/gcc.dg/tree-ssa/pr57385.c
  6e5c334c8814768ab3b4bf81240e5d61  gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
  c4bed0849dd869035230ef14c12f5167  gcc/testsuite/gcc.dg/tree-ssa/pr58958.c
*************** d25bed281c9e52c5070488f498c6e1ac  gcc/te
*** 62297,62304 ****
  df2fef34213133c5afed537f489aca64  gcc/testsuite/gcc.dg/tree-ssa/split-path-3.c
  d992ba599bfc7773921562d11d02f7da  gcc/testsuite/gcc.dg/tree-ssa/split-path-4.c
  a947bd2aec2bda9a99172e0f0bfe8acd  gcc/testsuite/gcc.dg/tree-ssa/split-path-5.c
! 50a204774033d9ad11517dafb2e34913  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
! ff3476556b9ca9f0a5f0389b2522eefa  gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
  cc58f2bbf63f20c83f4c8c0d2d1348d8  gcc/testsuite/gcc.dg/tree-ssa/split-path-8.c
  44357fdb9d6f097cddb4a49dbb427a27  gcc/testsuite/gcc.dg/tree-ssa/split-path-9.c
  de57f508f4b87a87da92299513721028  gcc/testsuite/gcc.dg/tree-ssa/sqrt_div.c
--- 62315,62322 ----
  df2fef34213133c5afed537f489aca64  gcc/testsuite/gcc.dg/tree-ssa/split-path-3.c
  d992ba599bfc7773921562d11d02f7da  gcc/testsuite/gcc.dg/tree-ssa/split-path-4.c
  a947bd2aec2bda9a99172e0f0bfe8acd  gcc/testsuite/gcc.dg/tree-ssa/split-path-5.c
! 7306543330c7415c1a56433c3640a1da  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
! 46474197a5896cf18dd8ec96929014da  gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
  cc58f2bbf63f20c83f4c8c0d2d1348d8  gcc/testsuite/gcc.dg/tree-ssa/split-path-8.c
  44357fdb9d6f097cddb4a49dbb427a27  gcc/testsuite/gcc.dg/tree-ssa/split-path-9.c
  de57f508f4b87a87da92299513721028  gcc/testsuite/gcc.dg/tree-ssa/sqrt_div.c
*************** b478e4234b2713f0df0d417dd9d13425  gcc/te
*** 66117,66122 ****
--- 66135,66141 ----
  b17ad011788c422a42d7da3d5a869239  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
  aa779f716e05ff6a4acc890465c03576  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
  f67a4b5e44d64eb195dea3cc6d237bba  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
+ 6ffc828da3c2dedc3b76d0a506c2b2c3  gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c
  3956a5fd71df11f14c94ff428d8264a6  gcc/testsuite/gcc.target/aarch64/adc-1.c
  d20a3c5925eb2e8c28249b5e4eb57a97  gcc/testsuite/gcc.target/aarch64/adc-2.c
  e2b1388fba47b95c8b27a3e1a29953ff  gcc/testsuite/gcc.target/aarch64/adds.c
*************** b8cc1762bc5a2f3599b4ca89f90fec1d  gcc/te
*** 72303,72309 ****
  e4716fbcf4507ded08c7ba19117342af  gcc/testsuite/gcc.target/aarch64/sve/pr95523.c
  73c22821e511dff2428a3cdf38594095  gcc/testsuite/gcc.target/aarch64/sve/pr95961.c
  2bc0ea26dbeeba1d473323fc407b8d0b  gcc/testsuite/gcc.target/aarch64/sve/pr96195.c
! aed1bb7e132d0854a926a7a7e314ba51  gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
  81df79ed0e2d1c5f6c67f08458be2c74  gcc/testsuite/gcc.target/aarch64/sve/pr96915.c
  b1c8f3af47e9cea755b055cce544806c  gcc/testsuite/gcc.target/aarch64/sve/pr97079.c
  a21cb5077461cbf23ca054f7c89a9bd8  gcc/testsuite/gcc.target/aarch64/sve/pr97092.c
--- 72322,72328 ----
  e4716fbcf4507ded08c7ba19117342af  gcc/testsuite/gcc.target/aarch64/sve/pr95523.c
  73c22821e511dff2428a3cdf38594095  gcc/testsuite/gcc.target/aarch64/sve/pr95961.c
  2bc0ea26dbeeba1d473323fc407b8d0b  gcc/testsuite/gcc.target/aarch64/sve/pr96195.c
! 58dac0eb9ed3737fb1dc6ce672960c6e  gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
  81df79ed0e2d1c5f6c67f08458be2c74  gcc/testsuite/gcc.target/aarch64/sve/pr96915.c
  b1c8f3af47e9cea755b055cce544806c  gcc/testsuite/gcc.target/aarch64/sve/pr97079.c
  a21cb5077461cbf23ca054f7c89a9bd8  gcc/testsuite/gcc.target/aarch64/sve/pr97092.c
*************** cfcefa0eda1f9dc2b828001739a59b3c  gcc/te
*** 74393,74398 ****
--- 74412,74418 ----
  db4bc54a5e1d217544b1f34004b2b698  gcc/testsuite/gcc.target/aarch64/vld1-vst1_1.c
  fee0e93ef0f9f011f34cd4553e9b4687  gcc/testsuite/gcc.target/aarch64/vld1_lane-o0.c
  868cc2ead39bb6a9cf3f94c412d7b992  gcc/testsuite/gcc.target/aarch64/vld1_lane.c
+ d6bbf1c588b6e57a466f1dc17cda6553  gcc/testsuite/gcc.target/aarch64/vld2-1.c
  ae3dcb9a10323462d2895ea14f4c6684  gcc/testsuite/gcc.target/aarch64/vldN_1.c
  0431b40be800f02cf76c818fe65d8d41  gcc/testsuite/gcc.target/aarch64/vldN_dup_1.c
  69fe1a151a14ceaba823dfa4f97fb2f4  gcc/testsuite/gcc.target/aarch64/vldN_lane_1.c
*************** d9d9cdf928da4c195b1a99dad0aeda06  gcc/te
*** 74590,74596 ****
  e6a1e115fbf28d06087d516fa4896471  gcc/testsuite/gcc.target/arc/firq-4.c
  fea7af7c12eb392f30364e1362155d21  gcc/testsuite/gcc.target/arc/firq-5.c
  3d599566405fe6df0acac7b4a16c3ca5  gcc/testsuite/gcc.target/arc/firq-6.c
! 64cd64d9aa6eb0154a5465c1457c2f0b  gcc/testsuite/gcc.target/arc/fma-1.c
  d84b29a4749c8b59782ed7037960886b  gcc/testsuite/gcc.target/arc/ieee_eq.c
  9f963e71c7574105d5690f43341ba8ca  gcc/testsuite/gcc.target/arc/insv-1.c
  b408ece5b1b90c502d91b8d9356f6f82  gcc/testsuite/gcc.target/arc/insv-2.c
--- 74610,74616 ----
  e6a1e115fbf28d06087d516fa4896471  gcc/testsuite/gcc.target/arc/firq-4.c
  fea7af7c12eb392f30364e1362155d21  gcc/testsuite/gcc.target/arc/firq-5.c
  3d599566405fe6df0acac7b4a16c3ca5  gcc/testsuite/gcc.target/arc/firq-6.c
! 2bf808e015fe8e6dd1aefd20d2673ab4  gcc/testsuite/gcc.target/arc/fma-1.c
  d84b29a4749c8b59782ed7037960886b  gcc/testsuite/gcc.target/arc/ieee_eq.c
  9f963e71c7574105d5690f43341ba8ca  gcc/testsuite/gcc.target/arc/insv-1.c
  b408ece5b1b90c502d91b8d9356f6f82  gcc/testsuite/gcc.target/arc/insv-2.c
*************** bb420ee68e25b3f2c223a9b99a8e7c79  gcc/te
*** 85757,85763 ****
--- 85777,85787 ----
  1eb4ee8a31ea901f2b8b18e1346e6d95  gcc/testsuite/gcc.target/i386/pr119884.c
  940e784d589973675da003c24eabc2ee  gcc/testsuite/gcc.target/i386/pr119919.c
  0a65f7a12fa8d04fa79c2af4b21b5f14  gcc/testsuite/gcc.target/i386/pr120031.c
+ 499323eca85489bbeb8478e0a1c91241  gcc/testsuite/gcc.target/i386/pr120032-1.c
+ 8b7deb747f63c3654334325f025937b4  gcc/testsuite/gcc.target/i386/pr120032-2.c
+ 20bea83e4863880948ed90566766c909  gcc/testsuite/gcc.target/i386/pr120032-3.c
  dd47421a141f36dc244e35b0237335f0  gcc/testsuite/gcc.target/i386/pr120360.c
+ 252fe8c2e6c536aceb69a6f43a4279b3  gcc/testsuite/gcc.target/i386/pr120553.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
*************** a0e8df751a0532abc2f56fae74b35ceb  gcc/te
*** 86118,86123 ****
--- 86142,86148 ----
  3e9f3d5fd14abd4982a1d20d13a214ba  gcc/testsuite/gcc.target/i386/pr48723.c
  b26834e660d14d009bf72740343d1f1e  gcc/testsuite/gcc.target/i386/pr49002-1.c
  1744d1b6525d493782f9f5936b33c289  gcc/testsuite/gcc.target/i386/pr49002-2.c
+ 74d0526592919ac67cdfd47d4d2ef17f  gcc/testsuite/gcc.target/i386/pr49095-2.c
  9a5e5122d19c99f875dbca1a673ddfd2  gcc/testsuite/gcc.target/i386/pr49095.c
  a294cc6e4c63c7891b458d6b03b24d18  gcc/testsuite/gcc.target/i386/pr49168-1.c
  eba01282bb2f285e74cc7ec9b9fb8ff7  gcc/testsuite/gcc.target/i386/pr49244-1.c
*************** b5a1195fb0000fa62d98484dc9e5e87b  gcc/te
*** 86800,86805 ****
--- 86825,86836 ----
  616daf2d4d783e488553e78b6c46d260  gcc/testsuite/gcc.target/i386/pr79173-10.c
  480c378e954d49ead07ff613c02aa220  gcc/testsuite/gcc.target/i386/pr79173-11.c
  7b3c56c3a7c4a5016a3ea348a5e0d550  gcc/testsuite/gcc.target/i386/pr79173-12.c
+ baf0732cf42a94b060c4de633778b4f5  gcc/testsuite/gcc.target/i386/pr79173-13.c
+ e916d5e1a945f303e2a85d7790faab02  gcc/testsuite/gcc.target/i386/pr79173-14.c
+ c9998116e2318243f3968fddeb6e204a  gcc/testsuite/gcc.target/i386/pr79173-15.c
+ a3b492fb2ea1a804dc72f32b39337d7e  gcc/testsuite/gcc.target/i386/pr79173-16.c
+ 0f3a227d412ba32302bbede4b5ce7546  gcc/testsuite/gcc.target/i386/pr79173-17.c
+ 0d6779043f5ed635a63b754d791b1bb1  gcc/testsuite/gcc.target/i386/pr79173-18.c
  170afdaa9dbc731764f764f8d5d55a1c  gcc/testsuite/gcc.target/i386/pr79173-2.c
  072519c437f2f5a7fa2fade014904329  gcc/testsuite/gcc.target/i386/pr79173-3.c
  dccb59824fde7bfbcbe8da947d024b4f  gcc/testsuite/gcc.target/i386/pr79173-4.c
*************** d80d32ac8bc1886121a5fa462b7c058f  gcc/te
*** 90617,90629 ****
  ba248cc080b98b0f2298851bf5ff50ee  gcc/testsuite/gcc.target/nvptx/weak.c
  cee646afb17baca3bd611110a0d24362  gcc/testsuite/gcc.target/or1k/args-1.c
  d59f1ded63c010f7c70d8914ff035369  gcc/testsuite/gcc.target/or1k/args-2.c
  2d02b13dc91536f4e79cec3dc8ff4842  gcc/testsuite/gcc.target/or1k/cmov-1.c
  9e49229cfb3a4570a9259ea659772866  gcc/testsuite/gcc.target/or1k/cmov-2.c
  6bd14b0136c11119eb7b862a377f7a1d  gcc/testsuite/gcc.target/or1k/div-mul-1.c
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
  907a0ece95eecc7c532fedb755ef1a48  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
! cbc20b748446a09b12e149a14d1dc326  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
  ea95f7612f0049e3a94038c123a0e60d  gcc/testsuite/gcc.target/or1k/return-4.c
  4ba1efdf24b285631d997edcdee7bc29  gcc/testsuite/gcc.target/or1k/ror-1.c
--- 90648,90662 ----
  ba248cc080b98b0f2298851bf5ff50ee  gcc/testsuite/gcc.target/nvptx/weak.c
  cee646afb17baca3bd611110a0d24362  gcc/testsuite/gcc.target/or1k/args-1.c
  d59f1ded63c010f7c70d8914ff035369  gcc/testsuite/gcc.target/or1k/args-2.c
+ 7a16a4efb516dd93d0072b82240fcb4d  gcc/testsuite/gcc.target/or1k/call-1.c
  2d02b13dc91536f4e79cec3dc8ff4842  gcc/testsuite/gcc.target/or1k/cmov-1.c
  9e49229cfb3a4570a9259ea659772866  gcc/testsuite/gcc.target/or1k/cmov-2.c
  6bd14b0136c11119eb7b862a377f7a1d  gcc/testsuite/gcc.target/or1k/div-mul-1.c
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
+ 12ae868dfb598fb35cde9f3deb2aa240  gcc/testsuite/gcc.target/or1k/got-1.c
  907a0ece95eecc7c532fedb755ef1a48  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
! 19a50da79764b52ec4c567f7aac53bdd  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
  ea95f7612f0049e3a94038c123a0e60d  gcc/testsuite/gcc.target/or1k/return-4.c
  4ba1efdf24b285631d997edcdee7bc29  gcc/testsuite/gcc.target/or1k/ror-1.c
*************** bec789a6108435830e82b6fdd221cb51  gcc/te
*** 93628,93639 ****
--- 93661,93682 ----
  f6c8f50458c8df94ccafb1928e48202a  gcc/testsuite/gcc.target/riscv/arch-56.c
  0c96ef9c808f4ca24e79e559697eea21  gcc/testsuite/gcc.target/riscv/arch-57.c
  ff856fed5ddef759c9032d497def7520  gcc/testsuite/gcc.target/riscv/arch-58.c
+ 1347057ac85e5b42b22bfa5afbfbb569  gcc/testsuite/gcc.target/riscv/arch-59.c
  2cd6ade559b1ab254703146aa7008e18  gcc/testsuite/gcc.target/riscv/arch-6.c
+ 106936adac7a80b5a01db383e2095b7a  gcc/testsuite/gcc.target/riscv/arch-60.c
  81519955d6644acb55c78120405494a5  gcc/testsuite/gcc.target/riscv/arch-7.c
  def4ef484e9166f9a01c65a411a9d916  gcc/testsuite/gcc.target/riscv/arch-8.c
  618e0be396e7e79ffa293a23f42b305d  gcc/testsuite/gcc.target/riscv/arch-9.c
+ 4b09da836713b995147d1ddf4b15f791  gcc/testsuite/gcc.target/riscv/arch-shlocofideleg.c
+ 4cc6a17415a162ed3a1f16b10f116eb1  gcc/testsuite/gcc.target/riscv/arch-smcsrind.c
+ b5b81669c4bd638c4b3b2a03da3402c7  gcc/testsuite/gcc.target/riscv/arch-smrnmi.c
  8f8880aaeaad3b06025ff64692da84bb  gcc/testsuite/gcc.target/riscv/arch-ss-1.c
  7166d1530d97826c40e96444ee4cc67a  gcc/testsuite/gcc.target/riscv/arch-ss-2.c
+ 56b05692699a43b167fa1d917de183b6  gcc/testsuite/gcc.target/riscv/arch-ssccptr.c
+ 228b4b08ec87c3aab0b819d614940092  gcc/testsuite/gcc.target/riscv/arch-sscounterenw.c
+ 747803496e0db732a7ac3c8b93f70c1f  gcc/testsuite/gcc.target/riscv/arch-sstvala.c
+ 12abb6568b8040d0ee34155127879caf  gcc/testsuite/gcc.target/riscv/arch-sstvecd.c
+ e3b6089c5a49102f5c6487e6f6d34f73  gcc/testsuite/gcc.target/riscv/arch-ssu64xl.c
  7e53fcd0c393d0469b2cf1b3dd12ede9  gcc/testsuite/gcc.target/riscv/arch-zilsd-1.c
  558e0806ff5d2460170aa161b8130f20  gcc/testsuite/gcc.target/riscv/arch-zilsd-2.c
  1ea95cf57e0971954e5c964450d8b009  gcc/testsuite/gcc.target/riscv/arch-zilsd-3.c
*************** b1501e176991bdafb852ead7111b522d  gcc/te
*** 94036,94041 ****
--- 94079,94085 ----
  0f7ebc2d65ebdb64c7b00775db650cdd  gcc/testsuite/gcc.target/riscv/mcpu-sifive-x280.c
  d66b77cd3223498c6e933305c7a7ca13  gcc/testsuite/gcc.target/riscv/mcpu-thead-c906.c
  80b46a59e47fe5cb83685a398cf89368  gcc/testsuite/gcc.target/riscv/mcpu-tt-ascalon-d8.c
+ dcced0272e68ebd6c311b4e558088af7  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-kunminghu.c
  65e147ffc7d34e1068d4e84bee668245  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-nanhu.c
  b5f6d51bd0ec8d7a190149dbf3823c23  gcc/testsuite/gcc.target/riscv/mcpu-xt-c908.c
  08941392c68d87472f730253b5192799  gcc/testsuite/gcc.target/riscv/mcpu-xt-c908v.c
*************** e51815ddb1131553c1d3c8f51d41d185  gcc/te
*** 94329,94334 ****
--- 94373,94381 ----
  fd1ad27c6f6aa8e73524a95358b4fff8  gcc/testsuite/gcc.target/riscv/movsine-ventana.c
  529f76ee14377024369064d810c9dc2b  gcc/testsuite/gcc.target/riscv/movsine-zicond.c
  a253f6211e939c78d54f7413baa13d8c  gcc/testsuite/gcc.target/riscv/movsine.c
+ b79b998aeb58db66bd0a67b99288020e  gcc/testsuite/gcc.target/riscv/nozicond-1.c
+ 08c516bd9c1d80612cfb2580834ae43d  gcc/testsuite/gcc.target/riscv/nozicond-2.c
+ 4925e10a6ae58d941956f63cfa564202  gcc/testsuite/gcc.target/riscv/nozicond-3.c
  91df64335c75c89ed2e21716fe77a561  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-1.c
  b31f65298e8fa9f53bbc717e292604ee  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-2.c
  6d72ece3cc973413992f5f3e461dcc16  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-3.c
*************** cc95a006cb086fccbd8375666fee1208  gcc/te
*** 94592,94601 ****
  e4535414d59b4e34dc4e78449117c69c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vcompress-avlprop-1.c
  1716c77c5018dfddc66454c42cce12a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run-nofm.c
  07efe4f36f94537a9ab61f369fb40c64  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run.c
! c7d04f84db2a06c35ae0dfd155faf2c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
! e64c0b8a3fdea9408eeebc6efd593cf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
! a63860d7dd00e0e1a12674d75cbcdd00  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
! e928ec4371bd2e2f47b2ced6b903fb1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c
  dbebd0845ac2d7cc9740dbc387d7a75a  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-template.h
  6872582bd5a1f2060a6b415ddb770818  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-zvfh-run.c
  54a1df2da3aa6bbb1e252eb686ecc85d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-run.c
--- 94639,94648 ----
  e4535414d59b4e34dc4e78449117c69c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vcompress-avlprop-1.c
  1716c77c5018dfddc66454c42cce12a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run-nofm.c
  07efe4f36f94537a9ab61f369fb40c64  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run.c
! 271e6bcf2e520091e54183d65cb8660f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
! 9d43535a71a58a0bc3e0e9fa7bf5a2f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
! 0d1ad463f3ce2b726642195fda6372d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
! 73f1f97d56da474653ee7aa1f8c6b0da  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c
  dbebd0845ac2d7cc9740dbc387d7a75a  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-template.h
  6872582bd5a1f2060a6b415ddb770818  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-zvfh-run.c
  54a1df2da3aa6bbb1e252eb686ecc85d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-run.c
*************** d90ca4ab32f893e58362b7afbe85e6fd  gcc/te
*** 95096,95102 ****
  c1274e3ee15699a124ca1ff4e24fd55b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-2.c
  c1779350d6b08b51c352226f6a13ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/madd-split2-1.c
  03b6c6282f299ea1ba67e487d39d0d18  gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c
! 85b6b9308922385bec91a059fce74bd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.c
  7da5b354874f99fde1d14c20b0fa76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c
  78f17ccf2c8434fe0739b9fd95e2aa43  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-1.c
  cc143b9c26bd55a3825fe0f7577a91fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-2.c
--- 95143,95149 ----
  c1274e3ee15699a124ca1ff4e24fd55b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-2.c
  c1779350d6b08b51c352226f6a13ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/madd-split2-1.c
  03b6c6282f299ea1ba67e487d39d0d18  gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c
! 968af9929dcdb9ff769f561707bd3e36  gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.c
  7da5b354874f99fde1d14c20b0fa76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c
  78f17ccf2c8434fe0739b9fd95e2aa43  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-1.c
  cc143b9c26bd55a3825fe0f7577a91fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-2.c
*************** f95d4e0ecca41e722099be6b52b3efe7  gcc/te
*** 96732,96787 ****
  35044d6a949091b4c23addf451f035ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c
  0026b1e2310b7242895d290cff3f1e9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-template.h
  2d052315288cbb1a315add9fb76abbc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vreinterpet-fixed.c
! 1e775906de0386ccad66365774476348  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c
! 5534ae12c7f39e11118c08a31209ea6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c
! 5d957d885d75a2e76ace85884045a161  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c
! 21366b0593b625873efe01c9b41995bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c
! 17c46c92262637b6b2a3cf54419aaff1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
! bfc4aa594d0351faaaf4032d01ec995b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
! fb9277ec0eae5be6ab59e23b4a788f32  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
! 63dda1a81ed2fee8aaf50012005f98da  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c
! 023704934c2ea36008dca58f2d5e14b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c
! c080508affc89c8add9d5ae37d284947  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c
! fbf1917b447ca8ccbac7fc421dc982e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c
! 63a1b5648ff4e288783cdf7a8e13f911  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c
! 74d76d27689efb5a69722bc970e696ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
! ef6fb1613bc6c29af302eb911cf2bdee  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
! a1a9d21a074c486a6028341761f1695e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
! b9128002a5df73436556c83c38ff0d88  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c
! 98c05ba95925eb6e57d216683018de08  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c
! 920443cd96c1af24b0e03df6c9a30d01  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c
! 646d4ab1d5d4cdfc1d8cedf97504af6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c
! 406bec0d78552a5f194c5b5b1083befc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c
! d5d18a4912d586cd48af5f1db1c55f9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
! b886baed5cd62f78487fbef9d21ce100  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
! ace3e7d56113073d063532db2f796b41  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
! a7b4d8554e4e17f9146dc2f836740781  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c
! 68a828f6f9db283ada9214f631628f2b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c
! 9c36305fef8302c44ff5728f1ef44dff  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c
! d63df10df8286d42b9b1b025b6aae17f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c
! 0ca45f29eb963d85b5e34dcd1ee9b08b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c
! 26d33f7055af51bdaeb496022bb2da16  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c
! 5d053fa9f1dfb913a723540bb8da485a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c
! 94b5b85ddabee1b0f6eae44f2ca0fe39  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c
! ac2e4e6672b79733a409c1e638ae39b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c
! 036c850865f35187c4739ebae91eb885  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c
! 6368165a7bc5d82c874fca3bb60a2225  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c
! 2e14fa314e6f087a959aa06419fd46cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c
! 3395eebefc4deeb1395066fe5ae794e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c
! 49dd85ecd69f913bc1c0a38c704b7fd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c
! 13781ecadf5b97cbef9ab79fc129c8b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c
! 7424d954645f85a2ebffd7a64a3cae9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c
! f7bb21d36952eb51a0164cf2b8b06329  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c
! a8e75b8f7bf3e74116b0938758823854  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c
! b7deaabbd5dcece0ad6055d645f69e38  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c
! e50d030f1984c15a7bf0b769fe6437ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c
! 5ea80134f16b628dfe2319a2bcc27275  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c
! a5921c43f33f1c876fa9c963742e35b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c
! 8e9ac4356e5eb95ae23000af90d91bcc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c
! 37a014140c99343c2df45d2b3f80232a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c
! 78174bf0377e0d9bb59e86bc42649f84  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c
  f6a301d0db99423158844de969165511  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h
! 574f7febaea2062329d43239aefb5189  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h
  ccb9cff4438796fd5c2c015df2204a55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_run.h
  f82d1e3332267f884d6990983f9a5c50  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i16.c
  9f3b8184fd845e5425e43d0e12950ff1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i32.c
--- 96779,96855 ----
  35044d6a949091b4c23addf451f035ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c
  0026b1e2310b7242895d290cff3f1e9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-template.h
  2d052315288cbb1a315add9fb76abbc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vreinterpet-fixed.c
! af8776830517bb954ac9c459d1e6e4df  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c
! 533425acb2dbaa2ee1585f05490f5252  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c
! d0da42342e145f70ceae46a5f395139a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c
! 284c74b2e8f38b34276014a398088a0a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c
! eda7efd66c9fa52bdb735fb1e517bc58  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c
! eda7efd66c9fa52bdb735fb1e517bc58  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c
! a3f071fb1601a2ef9f0701674b77eef9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c
! 457e2a52524f814e1f6349ee909ff170  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c
! 0fe045472992bc26ef2c863aacc842b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c
! 79ad5399a00921303ca0d6fc4ba66af0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c
! 5bd48ea837ae4b6d73e1ea5fb3dd1aed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c
! ad4aa170c353380285118d3b5bdf1249  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c
! 239946fdec5e251b3392f324c905aa7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h
! 79c32f2566be6d0eaf683a9534627f6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h
! 2cd372fdc4763cb63b73b83b70d38f39  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h
! df6f3d2360496d0671c8f5854c185132  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c
! 8a033d0af090fdff3cc9c59a4065b8fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c
! 0eb1337c135eaf2daab194fea24b2d1a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c
! fa45f7628fd0cf461614b227e67533f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c
! d3936994aed8527428b052823a62ceb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c
! 3fdb8e8594229f6ef254e55881825865  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c
! 7854a30c6170eb3b2f1b9cf3604e7d67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c
! 278fd0f1ef0150d3ec3ba9fa54e8fde7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c
! f6f16db59e04f17bc0cf83938f246616  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c
! 5d7155c76432faf00aac83af892c48cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c
! 49847df423c4dfc49a1f94f02ff50ce8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
! 631c28d8d7b2de42d52abb79cb3bf462  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
! 8a197a97959e0d6b7a2a1013fe238b2a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
! c1fa812da345140625f1d9a39a1822a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c
! cd02fac54917f069a61105a3d1bd8b87  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c
! f833d075aef941e4759c6687003220d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c
! 02f9a30a96af7c9f39c055aa8b5578d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c
! 2ad682ed7c54e2d23632e45bf43a76f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c
! 1c7520b0cace94f6cc8e732dbebf87b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
! 49adaea32eff8616c0f2f8b7ead23ccc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
! 61276feaa997ddf0d4e314d13afb3f5e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
! a4e9cc56b4a0fa80cd1027a5b47ede83  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c
! cec9fb0c60ae8bcead7ac9b35c94ad0a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c
! 155251ad7b63f75fbf4086a6dfca9843  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c
! d9e385f58f2e83322291af1e2cb834e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c
! 2824fd0a5febf3aba00926432f110dd8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c
! 5aaa0db836ce556909e5280d0e7bd899  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
! 82d219886047ee4c73db45b054730362  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
! 17ab2cd62359991ba05b2235802acc8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
! 8382a56574ce1eeeb818901e0f6668bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c
! 60f3b98b4a1594f3deacc3912af1b9e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c
! 8a0bd00b1302cb44eb20ba50466fb29e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c
! 843608a75dfce38bdd00292804f0ba02  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c
! 66d29685f2550255ccd704ffc7e1f40b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c
! 8e6ab2d987e11229936404a10870ed8f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c
! 74ef85269cb11f538e93c541667de1d3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c
! 67fcd70c96a12c2696cceb032a9f998b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c
! a1253d36bfbb7241bab31225feccf2fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c
! 2ea7c2800dd0a549f95fc9300fe3ac1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c
! 85706798ee6e05caa420a21a658ee669  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c
! c7b2660d4719458cbdaf163b02b2ad48  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c
! c286b6b08ca4f8e18cedab58d5abfbe1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c
! 1bca1db6d918e3c8f0b64f2878069a05  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c
! 78af4ce5fd9bb1eb1227ef7ab98bc5a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c
! 722c76c75a3f5d3b27c0522bd22656d3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c
! 14bd5344e75779e36280c1f34aec5fb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c
! 4ac211dc9d9d44d5c78e61718ac4e019  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c
! 629565d7f1286b69543727f26dc48a57  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c
! 9e683451f3304d077e2b8de907ed0c14  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c
! 2256731fcda00147802b2fa6de65c11d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c
! 3e6b1f1fd776ee96144b753f057fcf82  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c
! 541fe8aa98dbb20cc301f20fd689ee2e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c
! af5d030fe13babc88754f645efa12137  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c
! 4da3ebaa47949a9124ce4400b6e1f56a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c
  f6a301d0db99423158844de969165511  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h
! f0796a18ae6da9024dd32cbd64d8b064  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h
  ccb9cff4438796fd5c2c015df2204a55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_run.h
  f82d1e3332267f884d6990983f9a5c50  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i16.c
  9f3b8184fd845e5425e43d0e12950ff1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i32.c
*************** f45220ac5d3b632c2b85a02c4ba7b949  gcc/te
*** 96799,96804 ****
--- 96867,96880 ----
  6c202fff5843e60c2537c34d55f27524  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u32.c
  fd7186aaa46dcb3f9896b7632d2e89dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u64.c
  daed14994427ff6ab8a37961118d2c0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u8.c
+ c1e3449c1a3d3eeadf318388de16a788  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c
+ 1b8c0616d5552ab885ce14c8f0edee16  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c
+ 7cdec64d2c7d3cd13aeef2a42caeea89  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c
+ dc2b6bed194fc74b370b25a3dc744b75  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c
+ 23475411dab833c5215a743009981f64  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c
+ 7ecbf5a0a0464699bf38031217fcf372  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c
+ c6540253f4e8566becbeb0ec46e18999  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c
+ fae1dd6ff530da227dc062a923a9e722  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c
  9076cf8f652bb87f5614bdec4824fc2f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i16.c
  f3610778d536959133cfda7115cd7ca8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i32.c
  8b6a8f2a6c0bc3be747fd220041e321f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i64.c
*************** a1b3434fd11a0481b121c48ed2900eaa  gcc/te
*** 97266,97272 ****
  8c91437fa7b567afad5bfbc8bdc85f90  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c
  07ed1e2a91dfeb3efc3559a2d1cda889  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c
  1923a5b6a5f592a57920be56f0f46f37  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c
! 3065553bb9a4ea48171ae5b77af02475  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
  fe34a93a6b7cc99cb65d142eff6b7cbf  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c
  ce84e742fbfec32a98cefdb30a7de997  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c
  9e0506a9831857769313ef1dfd4a357f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c
--- 97342,97348 ----
  8c91437fa7b567afad5bfbc8bdc85f90  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c
  07ed1e2a91dfeb3efc3559a2d1cda889  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c
  1923a5b6a5f592a57920be56f0f46f37  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c
! 221b4ec6df47580950a6ebd735a51c85  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
  fe34a93a6b7cc99cb65d142eff6b7cbf  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c
  ce84e742fbfec32a98cefdb30a7de997  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c
  9e0506a9831857769313ef1dfd4a357f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c
*************** c68a73138459484ead0cddce6ce27d08  gcc/te
*** 97552,97557 ****
--- 97628,97634 ----
  eaed30eccbeb952165411cfd2c789b72  gcc/testsuite/gcc.target/riscv/rvv/base/pr118872.c
  96272d16f134fa97f27114f27089793a  gcc/testsuite/gcc.target/riscv/rvv/base/pr118931-run-1.c
  b8ddadeddd15bd6f079e943b9036825d  gcc/testsuite/gcc.target/riscv/rvv/base/pr119115.c
+ 8d1ba7c37ca5471a617b0d18076298c0  gcc/testsuite/gcc.target/riscv/rvv/base/pr119164.c
  3086321c9a12d3eecd8f1f9ad8ecac7a  gcc/testsuite/gcc.target/riscv/rvv/base/pr120436.c
  c05efbdfaafc64ad34b3d1c4b60a38eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr90263.c
  be75fd39ea9b3d01e3e22294359fb482  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-2.c
*************** c4be70fad6f83b1cee9a4a4829c74d53  gcc/te
*** 107278,107283 ****
--- 107355,107361 ----
  c9f5d0b619e02c01e5a95b9a39ad015d  gcc/testsuite/gfortran.dg/coarray_critical_2.f90
  f45302450737eca2b18efb44aab5205e  gcc/testsuite/gfortran.dg/coarray_critical_3.f90
  80a6683cc6d6fe77e4c0a0173c349d52  gcc/testsuite/gfortran.dg/coarray_data_1.f90
+ a6268ae9ec2d8edede67d81bcbcf16f1  gcc/testsuite/gfortran.dg/coarray_data_2.f90
  9548b18ea57c3895468bd270375183d8  gcc/testsuite/gfortran.dg/coarray_dependency_1.f90
  ae24a8ba632b111617b5af3d9ec9ed23  gcc/testsuite/gfortran.dg/coarray_event_1.f08
  fbd2090d586a51d16a8ccd3d6c9359e6  gcc/testsuite/gfortran.dg/coarray_event_2.f08
*************** d63391da91e43519d530db761b208cc9  gcc/te
*** 109305,109310 ****
--- 109383,109390 ----
  5d43e477ab60e438b8824d612b24022d  gcc/testsuite/gfortran.dg/gomp/omp_clauses1.f90
  41fb58e8b2edcf7fe98876928e703e8e  gcc/testsuite/gfortran.dg/gomp/omp_do1.f90
  818c401459cd690f09b6456c6af28b9a  gcc/testsuite/gfortran.dg/gomp/omp_do_concurrent.f90
+ 5f5a0d1616e63425912fcb98974f741c  gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90
+ 7a8ea6145f3e66bafa6aa7a4f1d806dd  gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device.f90
  c1f9abec8f22e154bb77201af2f18b23  gcc/testsuite/gfortran.dg/gomp/omp_parallel_1.f90
  073107c55ddf84d8db682f826501e5d5  gcc/testsuite/gfortran.dg/gomp/omp_parse1.f90
  3940c2cd145907f9545b48f9cd30792d  gcc/testsuite/gfortran.dg/gomp/omp_parse2.f
*************** acad20cfccb57d2647ecdf23fe5b886a  gcc/te
*** 110042,110048 ****
  fbf80885f0b7ba963b15836edf5d44e2  gcc/testsuite/gfortran.dg/inline_matmul_13.f90
  3f2f902262a56ac5434afbf85af50515  gcc/testsuite/gfortran.dg/inline_matmul_14.f90
  28d702d90ec2e4642ca7fe47281a7389  gcc/testsuite/gfortran.dg/inline_matmul_15.f90
! b7733e0b9862cb91e03cf6880071acc4  gcc/testsuite/gfortran.dg/inline_matmul_16.f90
  900a106ff5119b0b92900038676e75a2  gcc/testsuite/gfortran.dg/inline_matmul_17.f90
  dee6ff6cec856fe1f42312c1d4fd4807  gcc/testsuite/gfortran.dg/inline_matmul_18.f90
  2d0cc489aae9a8f125cf641cb1912f6c  gcc/testsuite/gfortran.dg/inline_matmul_19.f90
--- 110122,110128 ----
  fbf80885f0b7ba963b15836edf5d44e2  gcc/testsuite/gfortran.dg/inline_matmul_13.f90
  3f2f902262a56ac5434afbf85af50515  gcc/testsuite/gfortran.dg/inline_matmul_14.f90
  28d702d90ec2e4642ca7fe47281a7389  gcc/testsuite/gfortran.dg/inline_matmul_15.f90
! 510883dff0910547171496c50f6e7aca  gcc/testsuite/gfortran.dg/inline_matmul_16.f90
  900a106ff5119b0b92900038676e75a2  gcc/testsuite/gfortran.dg/inline_matmul_17.f90
  dee6ff6cec856fe1f42312c1d4fd4807  gcc/testsuite/gfortran.dg/inline_matmul_18.f90
  2d0cc489aae9a8f125cf641cb1912f6c  gcc/testsuite/gfortran.dg/inline_matmul_19.f90
*************** e5a418513e079e50ea576e021cf5ad8e  gcc/te
*** 110053,110058 ****
--- 110133,110139 ----
  1545bc137f7bcb397e7986a3324b63be  gcc/testsuite/gfortran.dg/inline_matmul_23.f90
  89a35f94060b171becdc54771a02040b  gcc/testsuite/gfortran.dg/inline_matmul_24.f90
  d5dddad98efc37928795b446cb8d6501  gcc/testsuite/gfortran.dg/inline_matmul_25.f90
+ 4887d0ef96e236941f816ecf873abb25  gcc/testsuite/gfortran.dg/inline_matmul_26.f90
  ffdb4ca68f61f3bd618415335c9c7c21  gcc/testsuite/gfortran.dg/inline_matmul_3.f90
  f95e5fd479c839cfa9cb3ac127ee7584  gcc/testsuite/gfortran.dg/inline_matmul_4.f90
  6cb787ca0dac6ea814c8af4ac7cb8022  gcc/testsuite/gfortran.dg/inline_matmul_5.f90
*************** bfe9a93946cdb6a9b66dd7249e65330d  gcc/te
*** 111477,111482 ****
--- 111558,111564 ----
  1c099fc2477935ea4f6d6e213b94eb2f  gcc/testsuite/gfortran.dg/pr119836_2.f90
  f4f853788012858a0134517250a7832c  gcc/testsuite/gfortran.dg/pr119836_3.f90
  a961dfda22a9cdab00655e080457bd32  gcc/testsuite/gfortran.dg/pr119836_4.f90
+ 884fdd238ddd6bcfe10770658ad8eaeb  gcc/testsuite/gfortran.dg/pr119856.f90
  8a73c3d21e2517a33bb24d479ee49a4d  gcc/testsuite/gfortran.dg/pr119948.f90
  b077fcbfe9cec19c19f0cd33e978b948  gcc/testsuite/gfortran.dg/pr120049_2.f90
  590ff128e6eb7429ddd91a02e4b826c5  gcc/testsuite/gfortran.dg/pr120049_a.f90
*************** eef9c4fb4632664f421c4067e9f7dd53  gcc/te
*** 112775,112780 ****
--- 112857,112863 ----
  9619c507201f560eff2135e49692d052  gcc/testsuite/gfortran.dg/save_5.f90
  bcec3240f40aa5093a05d7cd8024acf3  gcc/testsuite/gfortran.dg/save_6.f90
  751220763a6526f3644c983c901f1c25  gcc/testsuite/gfortran.dg/save_7.f90
+ 6be5b43eab49c79032e7249345565e1c  gcc/testsuite/gfortran.dg/save_8.f90
  969e348eec71de0c469550da97db323d  gcc/testsuite/gfortran.dg/save_common.f90
  8077a483f690b8b2a62c945c63fa4b57  gcc/testsuite/gfortran.dg/save_parameter.f90
  1a1f478cd1af5c7ca0f1139bd3142853  gcc/testsuite/gfortran.dg/save_result.f90
*************** f37df132a6d1265e9833af11738799ad  gcc/te
*** 114779,114784 ****
--- 114862,114868 ----
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/iso/extended-opaque/pass/testset.mod
+ dd62aea9ecf3ee966fdbe990c06704ab  gcc/testsuite/gm2/iso/fail/CHAR.mod
  74e6d5d98b64c8e15038da1eb20fc083  gcc/testsuite/gm2/iso/fail/arraymismatch.mod
  2aeb1840a853d9bd6dd61d9278a7b6a1  gcc/testsuite/gm2/iso/fail/badarray.mod
  5d08cec83a9fd8cfa6b718baa93a2715  gcc/testsuite/gm2/iso/fail/badarray2.mod
*************** c5ec5527b4bca04a200369be3b0d5133  gcc/te
*** 114798,114803 ****
--- 114882,114889 ----
  5ed1fa10cc675bda041dcdeeed28c41f  gcc/testsuite/gm2/iso/fail/badparam4.mod
  fecf4459acd65abc1b71561dc22d7689  gcc/testsuite/gm2/iso/fail/badparamarray.def
  8d98913215f9c558c4398522b8124ee1  gcc/testsuite/gm2/iso/fail/badparamarray.mod
+ 518c491ae8e4302554ef1995489cf08f  gcc/testsuite/gm2/iso/fail/badreturn.mod
+ 0bb573a71a0bb154185c5bcf52cef146  gcc/testsuite/gm2/iso/fail/badreturn2.mod
  4b91e3c389b30ac1774c9b61dccd90e1  gcc/testsuite/gm2/iso/fail/badset.mod
  4860278d84989ec562b892a13b6447ec  gcc/testsuite/gm2/iso/fail/badset2.mod
  dfcc6ecdf732afd377ec852b928da44c  gcc/testsuite/gm2/iso/fail/badset3.mod
*************** debbfd5917212ec7f4292381bb96ac54  gcc/te
*** 114895,114900 ****
--- 114981,114988 ----
  bf612e7d4b783c9e3495dec78e22634f  gcc/testsuite/gm2/iso/pass/isobitset2.mod
  5098f5609c0fb8e2e4faf8952d01dbf5  gcc/testsuite/gm2/iso/pass/longm.mod
  7caed1298e8e2fbc90e6fd77362e42f6  gcc/testsuite/gm2/iso/pass/m.mod
+ 7e81d8971a9f312ae0301b767eceaea5  gcc/testsuite/gm2/iso/pass/modulereturn.mod
+ 33f28bac3d16ef081c2504dafdd55f73  gcc/testsuite/gm2/iso/pass/modulereturn2.mod
  4aadbdc5a6663a31ae9d1d45a3ae1484  gcc/testsuite/gm2/iso/pass/proccast.mod
  8e92d1b76d700c108585fbcb6420ea2c  gcc/testsuite/gm2/iso/pass/realbitscast.mod
  238d44ce7ade63d31b039cc51513a564  gcc/testsuite/gm2/iso/pass/set12.mod
*************** e9bd0ecc9dd48042c7ba73738af78def  gcc/te
*** 114926,114931 ****
--- 115014,115020 ----
  1fbd81cab810f2270cb080d5d9dd1865  gcc/testsuite/gm2/iso/pass/testrotate.mod
  a8dfff8749defc38e520cb1cb7e81369  gcc/testsuite/gm2/iso/pass/unbounded.mod
  e189208c21019fb1a7863f3962e87c90  gcc/testsuite/gm2/iso/pass/unbounded2.mod
+ fe2cff5a6de73f88d5d36f1989be93d3  gcc/testsuite/gm2/iso/run/pass/CHAR.mod
  d71a6ac0e0221fe50dc256107211dd31  gcc/testsuite/gm2/iso/run/pass/adraddress.mod
  68113bc0c0aa774be83e0af4a4e7ba12  gcc/testsuite/gm2/iso/run/pass/adrunbounded3.mod
  a0eb439d9f4cc681b21fe56bfdb9af1a  gcc/testsuite/gm2/iso/run/pass/array9.mod
*************** d8b017fce021a48a38acf23ef7022b6c  gcc/te
*** 114957,114962 ****
--- 115046,115052 ----
  d60b1560bcbcb75d7155b713a0615e2b  gcc/testsuite/gm2/iso/run/pass/fileio.def
  159695faf1dbe033f4bdae12a3c1cd48  gcc/testsuite/gm2/iso/run/pass/fileio.mod
  5b867827747aed9a1a9fb833804c50c3  gcc/testsuite/gm2/iso/run/pass/hello.mod
+ 934be849c50957ef2bbfb56adecc7ce8  gcc/testsuite/gm2/iso/run/pass/importself.mod
  6c43786a6103c10ca7df3fb5094e1ce7  gcc/testsuite/gm2/iso/run/pass/int8field.mod
  015a316a5f6deb37e5a3eae416c1830d  gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp
  fbaaeb1457a87cc689195a316d3d5867  gcc/testsuite/gm2/iso/run/pass/lazyunique.mod
*************** e5d5befc7aececd211929f46bd11fdda  gcc/te
*** 115935,115940 ****
--- 116025,116032 ----
  03835ac6724df96b735b599622c5ed72  gcc/testsuite/gm2/pimlib/run/pass/testreal.mod
  6cd4e8bb0e0f2f90962a1667f6d2c50f  gcc/testsuite/gm2/pimlib/run/pass/testreal2.mod
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
+ 94dfcc8f117db06f4006eb96be4e84f8  gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod
+ 1aa30b418b9ca42daba58742ea25f51f  gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod
  d42665273dfdf6111268f44c425bef5a  gcc/testsuite/gm2/projects/README
  9a671ebc8f4bdad366a08a252439855c  gcc/testsuite/gm2/projects/iso/run/pass/halma/halma.mod
  08d5a7f3db0f9db283fd7cfc21db5f17  gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp
*************** a74903b20d1e5ae5e1f78ffa1ae48709  gcc/te
*** 116714,116719 ****
--- 116806,116813 ----
  50888c7d99e2853decd40633487df615  gcc/testsuite/gnat.dg/controlled7.adb
  9d7358f62eca1d9c1121bd8dd35c321f  gcc/testsuite/gnat.dg/controlled7.ads
  842882f2462282baa39af36da13b3c66  gcc/testsuite/gnat.dg/controlled8.adb
+ c4f92448e8d8937478f45d759675b3e0  gcc/testsuite/gnat.dg/controlled9.adb
+ 5dec8d4396a6c2de6a11ceaf7fade239  gcc/testsuite/gnat.dg/controlled9_pkg.ads
  2caa8502521e04928a03cde494abb0d9  gcc/testsuite/gnat.dg/controlled_record.adb
  1cd9edd01689b9de7916433d8b3c9211  gcc/testsuite/gnat.dg/controlled_record.ads
  37378155e6b901ea7e1e6d4b579bdd19  gcc/testsuite/gnat.dg/conv_bug.adb
*************** bc5d484f0195c40f96573375913aad6a  gcc/te
*** 118188,118193 ****
--- 118282,118288 ----
  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
+ 57ec76624056e533c277432e503fe83c  gcc/testsuite/gnat.dg/specs/aggr7.ads
  03d5230a50a20391e0238f6841dcaf91  gcc/testsuite/gnat.dg/specs/ai_116.ads
  7d85593bd2feb29192cd8b150c52dde2  gcc/testsuite/gnat.dg/specs/alignment1.ads
  2137406ab24e57901900aff5d6a8f7d6  gcc/testsuite/gnat.dg/specs/alignment2.ads
*************** d2c31258feee390ed4af80cdc8eacf9e  gcc/te
*** 118300,118305 ****
--- 118395,118403 ----
  4f688dab65d3a3dce65837fb7dc54961  gcc/testsuite/gnat.dg/specs/opt5.ads
  f156038848774963622d503fe89a172b  gcc/testsuite/gnat.dg/specs/opt5_pkg.ads
  3ea255ec02895b0a6def7cabd8242168  gcc/testsuite/gnat.dg/specs/opt6.ads
+ 28f117df0f784b2fc789be52a8363bc4  gcc/testsuite/gnat.dg/specs/opt7.ads
+ 9076cc8edf48925166dff1f53e624108  gcc/testsuite/gnat.dg/specs/opt7_pkg.adb
+ ab4d470a175348305442c782df20dc08  gcc/testsuite/gnat.dg/specs/opt7_pkg.ads
  a33d565d33da0c1fd4225f3e0005c81e  gcc/testsuite/gnat.dg/specs/oversize.ads
  c177b376a4a8546663a7caa87b66abb4  gcc/testsuite/gnat.dg/specs/pack10.ads
  aca39671a4d090d6d3c7a2abf4ee74a6  gcc/testsuite/gnat.dg/specs/pack10_pkg.adb
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 121143,121149 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 4deee301121f2a90e9c8bcf047dca363  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
--- 121241,121247 ----
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 474abc7842ec644f55393de877b9c421  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
*************** bb1d68366d38f270a98be14b26439127  gcc/te
*** 123587,123594 ****
  b3103c3f565f28145d20f738b0569bb8  gcc/text-art/tree-widget.cc
  910817a83a8d6f92b99b4c0cd1992f46  gcc/text-art/tree-widget.h
  fa5a9840f86de5ad789a8727d33117b0  gcc/text-art/types.h
! 973613e993ee7b0efec1698f073cd162  gcc/text-art/widget.cc
! eca9bbca0b49f380fb852038e80d51b2  gcc/text-art/widget.h
  edcd6b4cfe25a7233b7c7b59f0889ef4  gcc/text-range-label.h
  00cbafca76647e207526939f6ce782be  gcc/timevar.cc
  eb78bf31928298aa4e7de8a68cb0dd5a  gcc/timevar.def
--- 123685,123692 ----
  b3103c3f565f28145d20f738b0569bb8  gcc/text-art/tree-widget.cc
  910817a83a8d6f92b99b4c0cd1992f46  gcc/text-art/tree-widget.h
  fa5a9840f86de5ad789a8727d33117b0  gcc/text-art/types.h
! 0a656738b170d0274f494253a24b6b55  gcc/text-art/widget.cc
! 005378a67c7a2767ef581cb08d9150fb  gcc/text-art/widget.h
  edcd6b4cfe25a7233b7c7b59f0889ef4  gcc/text-range-label.h
  00cbafca76647e207526939f6ce782be  gcc/timevar.cc
  eb78bf31928298aa4e7de8a68cb0dd5a  gcc/timevar.def
*************** f01aeac56dffd44808096094e2bf76c1  gcc/tr
*** 123620,123633 ****
  21e7c804e59b1471314ee9c773a41ed1  gcc/tree-diagnostic.h
  061a86cf1b2c01bdde3dc32a0701f5b5  gcc/tree-dump.cc
  f9731b5179d6c364587220c2aea59a3e  gcc/tree-dump.h
! 979524586cd9e564f98af3c19702737b  gcc/tree-eh.cc
  4687ad88ec16848852a4d3f21bafdeba  gcc/tree-eh.h
  f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
  e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
  3b55b5e5e173904c824977c38dc00a9c  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
! a15ad5f558018215e101a6526b81aac4  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
  90ca59c0844cd326f35f9cae17ec174b  gcc/tree-into-ssa.cc
  ef1cb0fba517532ecda9f4e0dd5218f7  gcc/tree-into-ssa.h
--- 123718,123731 ----
  21e7c804e59b1471314ee9c773a41ed1  gcc/tree-diagnostic.h
  061a86cf1b2c01bdde3dc32a0701f5b5  gcc/tree-dump.cc
  f9731b5179d6c364587220c2aea59a3e  gcc/tree-dump.h
! 5b2959d3865102e60e008c1ba95fa361  gcc/tree-eh.cc
  4687ad88ec16848852a4d3f21bafdeba  gcc/tree-eh.h
  f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
  e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
  3b55b5e5e173904c824977c38dc00a9c  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
! 13f67eebd4d2b055a6009279c7033b66  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
  90ca59c0844cd326f35f9cae17ec174b  gcc/tree-into-ssa.cc
  ef1cb0fba517532ecda9f4e0dd5218f7  gcc/tree-into-ssa.h
*************** fd4dd1219acc650a4f7855faa0097964  gcc/tr
*** 123655,123668 ****
  f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
  fba416ae78dc089ae1624feee90fb7ab  gcc/tree-scalar-evolution.cc
  dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! f0f89902e3fb65efd0cee6aa170c1d13  gcc/tree-sra.cc
  c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
  b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
  34e846f14e9bc92a7bf94b3df502bd99  gcc/tree-ssa-alias.cc
  9d359861d05b5dfbc59cbf45c70feb0f  gcc/tree-ssa-alias.h
! 8dc44d35f782ba1dee0da995849e4e40  gcc/tree-ssa-ccp.cc
  0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
  56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
  44217fe298d550aecd4800f65391c931  gcc/tree-ssa-coalesce.h
--- 123753,123766 ----
  f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
  fba416ae78dc089ae1624feee90fb7ab  gcc/tree-scalar-evolution.cc
  dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! e9f74f0a94b92fcf4fafe691fee3c65b  gcc/tree-sra.cc
  c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
  b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
  34e846f14e9bc92a7bf94b3df502bd99  gcc/tree-ssa-alias.cc
  9d359861d05b5dfbc59cbf45c70feb0f  gcc/tree-ssa-alias.h
! 338ab724f39d1c1f947de15e26a7a7fa  gcc/tree-ssa-ccp.cc
  0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
  56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
  44217fe298d550aecd4800f65391c931  gcc/tree-ssa-coalesce.h
*************** adfc498b0c97a8123c02d418757df496  gcc/tr
*** 123673,123679 ****
  0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
  0f6ebc5926581225fb177dc311db6708  gcc/tree-ssa-dse.cc
  a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! 69ca90defcef8ccf04da828a8d949c66  gcc/tree-ssa-forwprop.cc
  0915c4bbeb42abdda8799c2b27e5db12  gcc/tree-ssa-ifcombine.cc
  488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
--- 123771,123777 ----
  0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
  0f6ebc5926581225fb177dc311db6708  gcc/tree-ssa-dse.cc
  a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! 6a5ebdd0005d4dd833c3d785309929c5  gcc/tree-ssa-forwprop.cc
  0915c4bbeb42abdda8799c2b27e5db12  gcc/tree-ssa-ifcombine.cc
  488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
*************** d380b6f85525112b40e562d94546fe3f  gcc/tr
*** 123695,123701 ****
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  0ed882dedcd92c361bc556587aaa4b74  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! 9a655b07daffd1a35031f99a649952a0  gcc/tree-ssa-phiopt.cc
  482f2356d81c3633ca476cd6628908b8  gcc/tree-ssa-phiprop.cc
  2dc49a3648eb85067602e95bd942eb2a  gcc/tree-ssa-pre.cc
  207e8eba5552b33b5aae2de6e7c1f35d  gcc/tree-ssa-propagate.cc
--- 123793,123799 ----
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  0ed882dedcd92c361bc556587aaa4b74  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! 487192303141111110ed63175019cf4f  gcc/tree-ssa-phiopt.cc
  482f2356d81c3633ca476cd6628908b8  gcc/tree-ssa-phiprop.cc
  2dc49a3648eb85067602e95bd942eb2a  gcc/tree-ssa-pre.cc
  207e8eba5552b33b5aae2de6e7c1f35d  gcc/tree-ssa-propagate.cc
*************** fbd423299c28bb3b3577ec61aba45439  gcc/tr
*** 123722,123728 ****
  1c04b8ffbb8738de9504d80999af12c8  gcc/tree-ssa-uninit.cc
  0cb7cabeb68ef8727724158e83e6c89e  gcc/tree-ssa.cc
  95d033c8a4bc14c898459494486fd902  gcc/tree-ssa.h
! 4d1d5b0b785c26e06439a0e53b1952ec  gcc/tree-ssanames.cc
  339bce59375d7679ec019cf010b6bcbc  gcc/tree-ssanames.h
  5fa0d7c6143cd9e39c30840b9996fa30  gcc/tree-stdarg.cc
  9817789b6289e73955015beb57c609b1  gcc/tree-stdarg.h
--- 123820,123826 ----
  1c04b8ffbb8738de9504d80999af12c8  gcc/tree-ssa-uninit.cc
  0cb7cabeb68ef8727724158e83e6c89e  gcc/tree-ssa.cc
  95d033c8a4bc14c898459494486fd902  gcc/tree-ssa.h
! a158ddca5c4525544dfaae5f1f6e4e1c  gcc/tree-ssanames.cc
  339bce59375d7679ec019cf010b6bcbc  gcc/tree-ssanames.h
  5fa0d7c6143cd9e39c30840b9996fa30  gcc/tree-stdarg.cc
  9817789b6289e73955015beb57c609b1  gcc/tree-stdarg.h
*************** af4c63760c432f66b1c6c8e7e7666699  gcc/tr
*** 123730,123746 ****
  629c2d175128efb2809d4ed7e08f1a18  gcc/tree-streamer-out.cc
  22cddc57dea71a3e5c57e033b6f86476  gcc/tree-streamer.cc
  6714826bb9cd5f171a08cbabcb1da8e6  gcc/tree-streamer.h
! 1001d7e4347de60f6d9e93f421ad5d6f  gcc/tree-switch-conversion.cc
  ebb8ac3717c1bf5db4371da2f3cf6af7  gcc/tree-switch-conversion.h
  7286ca79f7a1747d76089d76bc171abd  gcc/tree-tailcall.cc
! 1caa0a6844a979f057f1230a923a29f3  gcc/tree-vect-data-refs.cc
  5d8bb0df796ceea958fd65c5aedb5bce  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
  74ef1ea5c410a50a0742a2f04c2b11a9  gcc/tree-vect-loop.cc
  da6336ee0c69409d59d2599d74cc5717  gcc/tree-vect-patterns.cc
  baa70369c21f662d5e61d1296052d231  gcc/tree-vect-slp-patterns.cc
  c2d8929f6d6edd9804d3f9736a1928ce  gcc/tree-vect-slp.cc
! 11618946c6f0797979d1478d40f5b3b0  gcc/tree-vect-stmts.cc
  c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
  258611ff1e83cc7680e8c9f033499665  gcc/tree-vector-builder.h
  a4620080dfbf6757116ace6cfaae648f  gcc/tree-vectorizer.cc
--- 123828,123844 ----
  629c2d175128efb2809d4ed7e08f1a18  gcc/tree-streamer-out.cc
  22cddc57dea71a3e5c57e033b6f86476  gcc/tree-streamer.cc
  6714826bb9cd5f171a08cbabcb1da8e6  gcc/tree-streamer.h
! c7cfce71bf4903e72ac00b08e215eb2c  gcc/tree-switch-conversion.cc
  ebb8ac3717c1bf5db4371da2f3cf6af7  gcc/tree-switch-conversion.h
  7286ca79f7a1747d76089d76bc171abd  gcc/tree-tailcall.cc
! 7a3edc7838f7a32dce3ac210a8b7cc75  gcc/tree-vect-data-refs.cc
  5d8bb0df796ceea958fd65c5aedb5bce  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
  74ef1ea5c410a50a0742a2f04c2b11a9  gcc/tree-vect-loop.cc
  da6336ee0c69409d59d2599d74cc5717  gcc/tree-vect-patterns.cc
  baa70369c21f662d5e61d1296052d231  gcc/tree-vect-slp-patterns.cc
  c2d8929f6d6edd9804d3f9736a1928ce  gcc/tree-vect-slp.cc
! 7c8165df4959808aa140925b355b1846  gcc/tree-vect-stmts.cc
  c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
  258611ff1e83cc7680e8c9f033499665  gcc/tree-vector-builder.h
  a4620080dfbf6757116ace6cfaae648f  gcc/tree-vectorizer.cc
*************** df85736a75a28f2d961a417c6edbbeeb  gcc/va
*** 123778,123784 ****
  3d0525509765bf6d8ff7d4a7490bcc69  gcc/value-range.h
  deaa5727e1ea5e4802dc5240239a6a3a  gcc/value-relation.cc
  e10bc25b7d5b26ec39898cb88adde4dd  gcc/value-relation.h
! cba4500c3637e1d36913b20f1700d34e  gcc/var-tracking.cc
  8c55316e80e8121cbbb962ad5aa4610e  gcc/varasm.cc
  69f8e035a8548037bc8c8f7f854253c4  gcc/varasm.h
  e96ee31ef62fd5574909f9328fb29af9  gcc/varpool.cc
--- 123876,123882 ----
  3d0525509765bf6d8ff7d4a7490bcc69  gcc/value-range.h
  deaa5727e1ea5e4802dc5240239a6a3a  gcc/value-relation.cc
  e10bc25b7d5b26ec39898cb88adde4dd  gcc/value-relation.h
! db99ee82ab71b58820d60f9863e62aac  gcc/var-tracking.cc
  8c55316e80e8121cbbb962ad5aa4610e  gcc/varasm.cc
  69f8e035a8548037bc8c8f7f854253c4  gcc/varasm.h
  e96ee31ef62fd5574909f9328fb29af9  gcc/varpool.cc
*************** e3fa3f45e512510e34655f420629cbd8  gcc/wa
*** 123802,123808 ****
  4fc8c5d5a4dbeb10715da964977f1c81  gcc/wide-int.h
  818a3384157138e5a3f6fbc6368d2b11  gcc/xcoff.h
  3ed8fd509bbf160b502fe7e9e2e4c2c5  gcc/xml-printer.h
! 532976101da1840b74721d5ded6dfc25  gcc/xml.h
  172b2c568a40257f5c2537762154fa0b  gnattools/ChangeLog
  d8c97efb6bf9731cb774fb1b1b60a266  gnattools/Makefile.in
  813c7b1a065693bfcbc0b340b658fa5a  gnattools/configure
--- 123900,123907 ----
  4fc8c5d5a4dbeb10715da964977f1c81  gcc/wide-int.h
  818a3384157138e5a3f6fbc6368d2b11  gcc/xcoff.h
  3ed8fd509bbf160b502fe7e9e2e4c2c5  gcc/xml-printer.h
! a589c23ea777df06f4544437b41f49bb  gcc/xml.cc
! 435fa17d97ed8bf09617897d62a447e4  gcc/xml.h
  172b2c568a40257f5c2537762154fa0b  gnattools/ChangeLog
  d8c97efb6bf9731cb774fb1b1b60a266  gnattools/Makefile.in
  813c7b1a065693bfcbc0b340b658fa5a  gnattools/configure
*************** c4e8176c1964a5ebe0a55900f2141299  gotool
*** 123818,123831 ****
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! d255c4b2b46cb2adbce2b5b091a31495  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
  44b123c52a2755c9e6bf43ec0c33ae49  include/ansidecl.h
  4c0c9fd5dc8de59626a8749c4c8c41b1  include/btf.h
  deab60fc60574f76d56ea615e8341b4c  include/collectorAPI.h
  5d8e137d3cff8787494ce76cbea388dd  include/ctf.h
! 8ed11de640f9d9a4694534e118bd8500  include/cuda/cuda.h
  3ebaa744e5f7f023a1a5038522fd3652  include/demangle.h
  c921e8970575df1605fb70e1e24bae3f  include/dwarf2.def
  9cabd28208c99053b4f488bb2c78a1d1  include/dwarf2.h
--- 123917,123930 ----
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 5661e25bb3a6436341ef76e3acc83af3  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
  44b123c52a2755c9e6bf43ec0c33ae49  include/ansidecl.h
  4c0c9fd5dc8de59626a8749c4c8c41b1  include/btf.h
  deab60fc60574f76d56ea615e8341b4c  include/collectorAPI.h
  5d8e137d3cff8787494ce76cbea388dd  include/ctf.h
! 3cc2d7162f5b6bb41dd36fbff16d0390  include/cuda/cuda.h
  3ebaa744e5f7f023a1a5038522fd3652  include/demangle.h
  c921e8970575df1605fb70e1e24bae3f  include/dwarf2.def
  9cabd28208c99053b4f488bb2c78a1d1  include/dwarf2.h
*************** f017ba40c4699f1549cd341ad688007f  libgcc
*** 126161,126197 ****
  804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
  407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
  ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! 9f7a254b7b112757c79ee24af1228262  libgcobol/ChangeLog
  573e7a1dee0641f56d9b797b23dff44b  libgcobol/Makefile.am
  23cf4646d213d05645a0bf48209b374d  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
  8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
  0bf6afe766a6886d2ac1f175300477f2  libgcobol/aclocal.m4
! fcc7ca8c9be640166d0722f71ce6c5ef  libgcobol/charmaps.cc
  08bac5426c592bca32b87e76cd4a87a1  libgcobol/charmaps.h
! ca3f2312852a77577256c9a59e0494ac  libgcobol/common-defs.h
! 55c6d7709ebd3974b38cdddffc6c29f3  libgcobol/config.h.in
! 960f1025f03e1402396993e2527513be  libgcobol/configure
! 7acbee643dbc269e7c4fddc8279d5bff  libgcobol/configure.ac
  5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
  dc7dba3ea14b23da0b28124acfa2ca32  libgcobol/constants.cc
  641fcbe1c4aa0a6cde86f5b185638e11  libgcobol/ec.h
  fbd99afdab52fcee0543b901042350ef  libgcobol/exceptl.h
  ef8b11373d27f5ca4df73f09c6ccab75  libgcobol/gcobolio.h
! c55cb0079506ce09a3e94d9c8ad17a73  libgcobol/gfileio.cc
  4c5dc966be490381f53924b2441c9300  libgcobol/gfileio.h
! c452346edcf88bc8ab6ef406a68080a7  libgcobol/gmath.cc
  9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! 4902cf7b5f1bf2359c189d85e3ad89f9  libgcobol/intrinsic.cc
  0cf9ce2863c11a8fd875185c371fe6e6  libgcobol/io.cc
  b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 6b4abab251a709804127a341160cc352  libgcobol/libgcobol.cc
! a92501f6652c6261f981817076ae3254  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
! 78eae29429f976b3df0dd2d9df4a2193  libgcobol/valconv.cc
! 04c19ca3fa2ce47103a80f82c288c484  libgcobol/valconv.h
! 4b121007ae69b56d576e46ba27dd0617  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
--- 126260,126296 ----
  804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
  407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
  ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! c46ca5257b221a9a32b62ef2ddf0cf60  libgcobol/ChangeLog
  573e7a1dee0641f56d9b797b23dff44b  libgcobol/Makefile.am
  23cf4646d213d05645a0bf48209b374d  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
  8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
  0bf6afe766a6886d2ac1f175300477f2  libgcobol/aclocal.m4
! 3d3a800933c22566d11e09ab88c455e1  libgcobol/charmaps.cc
  08bac5426c592bca32b87e76cd4a87a1  libgcobol/charmaps.h
! b6ee3616eae9ac11be1daad800bf9909  libgcobol/common-defs.h
! 6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
! 7c39e3ffa421728393475f0c1e747e59  libgcobol/configure
! faf06b9fb823d12e0ec967db524ba97e  libgcobol/configure.ac
  5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
  dc7dba3ea14b23da0b28124acfa2ca32  libgcobol/constants.cc
  641fcbe1c4aa0a6cde86f5b185638e11  libgcobol/ec.h
  fbd99afdab52fcee0543b901042350ef  libgcobol/exceptl.h
  ef8b11373d27f5ca4df73f09c6ccab75  libgcobol/gcobolio.h
! 277d281d0d500adc75c24b68380de568  libgcobol/gfileio.cc
  4c5dc966be490381f53924b2441c9300  libgcobol/gfileio.h
! 42a0be811da2d9bccec1fc42d43424cb  libgcobol/gmath.cc
  9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! 0b5ae3b67b71166d4df84260814f27b1  libgcobol/intrinsic.cc
  0cf9ce2863c11a8fd875185c371fe6e6  libgcobol/io.cc
  b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 1b814a88622ab7dad7f894edd2c79344  libgcobol/libgcobol.cc
! eaf7d2874931c86ed39c2d32c5230232  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
! 7921a81e3cbf784d960d70db7bc6e242  libgcobol/valconv.cc
! c7d27fb7e36a42567d7cc4d14e7ed3fe  libgcobol/valconv.h
! ef42a4709e8899d529681778170d9fe4  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** cb8dbdeb91544ace120b8d6e9d9db37f  libgfo
*** 126529,126544 ****
  86560c471d5217f7f242301292489d37  libgfortran/generated/findloc1_s4.c
  ce348991d4021ce6e37ade66132b584b  libgfortran/generated/findloc2_s1.c
  909a5d687769a8116cfc9d0fdb43915e  libgfortran/generated/findloc2_s4.c
! 2a472d01b88b567f12c049c3b6994e08  libgfortran/generated/iall_i1.c
! 7e0c1198cdd4477b6f14837c40160d7b  libgfortran/generated/iall_i16.c
! f17a2f6d03f9590e9036448882c6df13  libgfortran/generated/iall_i2.c
! 0f23809bd3e4da1e8c49befb91bf4d09  libgfortran/generated/iall_i4.c
! fe5018de92ec293f2d18a084b71f0492  libgfortran/generated/iall_i8.c
! 0abc5ef2f3073936d1b60a711c161692  libgfortran/generated/iany_i1.c
! c7c8f29b1443e3f41946e220c9308971  libgfortran/generated/iany_i16.c
! c7bbd00c80c28d6c91677fb25527bc7d  libgfortran/generated/iany_i2.c
! 49fc65c57f4988d988b8113b277df128  libgfortran/generated/iany_i4.c
! 5c21e254114e5ae72785d2fb463b789f  libgfortran/generated/iany_i8.c
  954431b2d3a7b544abfe58432ee60820  libgfortran/generated/in_pack_c10.c
  7d28b7d6453052f0c5cbaa6fe507f79a  libgfortran/generated/in_pack_c16.c
  0fd5a397740c779fe9c0a01970076f6e  libgfortran/generated/in_pack_c17.c
--- 126628,126643 ----
  86560c471d5217f7f242301292489d37  libgfortran/generated/findloc1_s4.c
  ce348991d4021ce6e37ade66132b584b  libgfortran/generated/findloc2_s1.c
  909a5d687769a8116cfc9d0fdb43915e  libgfortran/generated/findloc2_s4.c
! c43c00ab96f1f547dab372ac9c547ad7  libgfortran/generated/iall_i1.c
! fefad6d253d8bbcfe1ce6e0971b4d980  libgfortran/generated/iall_i16.c
! b3961c10da0b1746a7efe45ddd5a8591  libgfortran/generated/iall_i2.c
! fcee9c97bff5a463d4dc978553f5c2aa  libgfortran/generated/iall_i4.c
! f3c980f24a92dcbd4717e54c15d8309c  libgfortran/generated/iall_i8.c
! 2814ee473d61e7c3c53151f9133cb611  libgfortran/generated/iany_i1.c
! 6cc26f6c62663a6408096666b333d1b6  libgfortran/generated/iany_i16.c
! e01e519a2eb21844b85709d5671ee5ca  libgfortran/generated/iany_i2.c
! 0b72a4e97ce98ef7e9241cbd8f461eb8  libgfortran/generated/iany_i4.c
! 4c1da0d47f68f3712169caf8bfa4f96f  libgfortran/generated/iany_i8.c
  954431b2d3a7b544abfe58432ee60820  libgfortran/generated/in_pack_c10.c
  7d28b7d6453052f0c5cbaa6fe507f79a  libgfortran/generated/in_pack_c16.c
  0fd5a397740c779fe9c0a01970076f6e  libgfortran/generated/in_pack_c17.c
*************** fb926836f60ca271ec304695d25acb69  libgfo
*** 126569,126579 ****
  df761ca897c7e6448825118054857e48  libgfortran/generated/in_unpack_r17.c
  957a95f8daaba04091d5ad12ac429ff6  libgfortran/generated/in_unpack_r4.c
  918afac324dd55f7e729f558ebe2c864  libgfortran/generated/in_unpack_r8.c
! 8fee6d3d38318ae5548147512dba12e4  libgfortran/generated/iparity_i1.c
! 1e63ad51363cdc45667028597195074c  libgfortran/generated/iparity_i16.c
! 45cd47c994a972c79a00f427705715dc  libgfortran/generated/iparity_i2.c
! f1615850086efb063710e6706cfb9e8e  libgfortran/generated/iparity_i4.c
! 1d4bb10a98ce9dfcd91ae707aec17c58  libgfortran/generated/iparity_i8.c
  c311ef23fd7a55e5fb220340eb546466  libgfortran/generated/matmul_c10.c
  46962aefa6ced7e56d5b092677a8be5b  libgfortran/generated/matmul_c16.c
  747b757c13a8647246831da804c678be  libgfortran/generated/matmul_c17.c
--- 126668,126678 ----
  df761ca897c7e6448825118054857e48  libgfortran/generated/in_unpack_r17.c
  957a95f8daaba04091d5ad12ac429ff6  libgfortran/generated/in_unpack_r4.c
  918afac324dd55f7e729f558ebe2c864  libgfortran/generated/in_unpack_r8.c
! 5bf5662bf39cf323dad6813528ef3641  libgfortran/generated/iparity_i1.c
! 27cc2c2ba7588dd9aa539ac5b79e9db6  libgfortran/generated/iparity_i16.c
! 4b277e592c89d72bd9a87ea39db05cc3  libgfortran/generated/iparity_i2.c
! d601bb226d223c0c2d6e67ea8355900c  libgfortran/generated/iparity_i4.c
! 4cee6a2600e5941f3e90a7ae65a32b62  libgfortran/generated/iparity_i8.c
  c311ef23fd7a55e5fb220340eb546466  libgfortran/generated/matmul_c10.c
  46962aefa6ced7e56d5b092677a8be5b  libgfortran/generated/matmul_c16.c
  747b757c13a8647246831da804c678be  libgfortran/generated/matmul_c17.c
*************** adf8c0d3faa5ba191c6252a93eebaf28  libgfo
*** 126592,126612 ****
  f2c482fd0063ba40b92d292260cab8c7  libgfortran/generated/matmul_r17.c
  22676c04856fb8e3c598148b31d73acb  libgfortran/generated/matmul_r4.c
  4a9c027426ab096e92457e5fc09f3a22  libgfortran/generated/matmul_r8.c
! 77d1d4ea399d83c30a078852166e5d17  libgfortran/generated/matmulavx128_c10.c
! b3432fde978772827912ecf645b8b26d  libgfortran/generated/matmulavx128_c16.c
! 41aeedbfd42213bf6ff5e70e6432986a  libgfortran/generated/matmulavx128_c17.c
! 346c48c9b67d1ed95a3b285bc621414e  libgfortran/generated/matmulavx128_c4.c
! b70121d5172f09d387a37b0abf97fda9  libgfortran/generated/matmulavx128_c8.c
! 1c3b8aec3132096a186986117ba508a6  libgfortran/generated/matmulavx128_i1.c
! bff8cb1916f2483da9edf88e57f4547a  libgfortran/generated/matmulavx128_i16.c
! 30e7023a2f65a59e7973e4aecc363f39  libgfortran/generated/matmulavx128_i2.c
! 811a8665c29edf3ba214d2918a071494  libgfortran/generated/matmulavx128_i4.c
! 1949f75feb3f6459c55b796fd56dc4f7  libgfortran/generated/matmulavx128_i8.c
! 09585e1080ea474ebe90e75470879dd1  libgfortran/generated/matmulavx128_r10.c
! d61cf3db52ffb14978e8ac41ed50995a  libgfortran/generated/matmulavx128_r16.c
! fd7a83acd0589710a7bb6b827786e0f3  libgfortran/generated/matmulavx128_r17.c
! 1db23a0890d914e6a2b9f8e9a528172b  libgfortran/generated/matmulavx128_r4.c
! 2c2ba8a04b1986799b8b1c302e35aaf5  libgfortran/generated/matmulavx128_r8.c
  7d7e6f6bfd1ae8d5b3728da6804c0a15  libgfortran/generated/maxloc0_16_i1.c
  dad7b7c6789f84c625d23027ea5d4ae3  libgfortran/generated/maxloc0_16_i16.c
  df8469bbb67460c431842b2c54e53c82  libgfortran/generated/maxloc0_16_i2.c
--- 126691,126711 ----
  f2c482fd0063ba40b92d292260cab8c7  libgfortran/generated/matmul_r17.c
  22676c04856fb8e3c598148b31d73acb  libgfortran/generated/matmul_r4.c
  4a9c027426ab096e92457e5fc09f3a22  libgfortran/generated/matmul_r8.c
! 2011aff52fb36e93168f59c1cbcd7854  libgfortran/generated/matmulavx128_c10.c
! d831c20e072d6dadec07b3dddffd0384  libgfortran/generated/matmulavx128_c16.c
! 547954b744398f38920e00a08481b24f  libgfortran/generated/matmulavx128_c17.c
! c125c48f21de6a81d29847dd8639a63e  libgfortran/generated/matmulavx128_c4.c
! 944f2011e18cf2421f97e6c2f9fe1dbe  libgfortran/generated/matmulavx128_c8.c
! a828b6393501775f815ab80df76a8b30  libgfortran/generated/matmulavx128_i1.c
! a8866a161a15d160cdcfd4a60afe92dd  libgfortran/generated/matmulavx128_i16.c
! cec1b067119486b8527406980fec7a41  libgfortran/generated/matmulavx128_i2.c
! 14b948e1bb8896a3d4b48001f30867a7  libgfortran/generated/matmulavx128_i4.c
! eddf3b7a5013efd844e66236485fa7d2  libgfortran/generated/matmulavx128_i8.c
! 4fac705444259e7db642d7080553444f  libgfortran/generated/matmulavx128_r10.c
! 08251bbcba4fe37d1edeba7b131502ea  libgfortran/generated/matmulavx128_r16.c
! 91fbc16a3dcdfc5bbda94e69580b28b2  libgfortran/generated/matmulavx128_r17.c
! 80407de2d33e844464132c1503c4744b  libgfortran/generated/matmulavx128_r4.c
! 0f61bac99f9a8de036b2b1b4fc442c00  libgfortran/generated/matmulavx128_r8.c
  7d7e6f6bfd1ae8d5b3728da6804c0a15  libgfortran/generated/maxloc0_16_i1.c
  dad7b7c6789f84c625d23027ea5d4ae3  libgfortran/generated/maxloc0_16_i16.c
  df8469bbb67460c431842b2c54e53c82  libgfortran/generated/maxloc0_16_i2.c
*************** bc7e80ccac43eeddf19ba016d2a32e85  libgfo
*** 126658,126712 ****
  46a85abb38366d94130159d1dfb93f3a  libgfortran/generated/maxloc0_8_r8.c
  3a4aa1783fb14078a1bade70d2ce65b5  libgfortran/generated/maxloc0_8_s1.c
  ec38a5bf9ed47e74723b76f8a14f0b61  libgfortran/generated/maxloc0_8_s4.c
! 2dc6b3560213e1b426614ba9cf79287a  libgfortran/generated/maxloc1_16_i1.c
! eba2725b3fd4771a5b1bad48b2761a33  libgfortran/generated/maxloc1_16_i16.c
! c62e6a694bab2fbce0a02a86d8d37206  libgfortran/generated/maxloc1_16_i2.c
! e74fadaaa8707366eb592476129408a2  libgfortran/generated/maxloc1_16_i4.c
! bf7456ecb86d9445e5983acefc747d4c  libgfortran/generated/maxloc1_16_i8.c
  c12b57f2b0210bf6c6b7aaff51906256  libgfortran/generated/maxloc1_16_m1.c
  ce72acbfdd6045160b44300411d3f07f  libgfortran/generated/maxloc1_16_m16.c
  d9fe5bcab54bf5af06514547d1e3404b  libgfortran/generated/maxloc1_16_m2.c
  3a4256951bd1b9b28407e65b75505945  libgfortran/generated/maxloc1_16_m4.c
  3a79f8db43ca865ae615fcade40a95c6  libgfortran/generated/maxloc1_16_m8.c
! df2fe8c79d52586344d08578e4edfa4d  libgfortran/generated/maxloc1_16_r10.c
! eb7a9f2313c9b09f44560db9a23504df  libgfortran/generated/maxloc1_16_r16.c
! 7a0d7e2dc9e20c291c737e8ebbc60b0a  libgfortran/generated/maxloc1_16_r17.c
! da61bb7e11344478889dc47b7596d804  libgfortran/generated/maxloc1_16_r4.c
! d60c1a4df2a4d8eb9023de739b7155b8  libgfortran/generated/maxloc1_16_r8.c
  536076b209d404cb16a44cb3b76fd338  libgfortran/generated/maxloc1_16_s1.c
  3dec3cf9edde57d35e4862ae017d03eb  libgfortran/generated/maxloc1_16_s4.c
! 552f89c8b58fc395b78a3e3d2e8b06cf  libgfortran/generated/maxloc1_4_i1.c
! c507fc2e66ec574faee3219eb3144b46  libgfortran/generated/maxloc1_4_i16.c
! e52232cebdac212023a61a56619c2a44  libgfortran/generated/maxloc1_4_i2.c
! f1e3cba6dd27158603c4d6cf077f942a  libgfortran/generated/maxloc1_4_i4.c
! 313907089e259e55f2491af268bebaa9  libgfortran/generated/maxloc1_4_i8.c
  1bfbbb666a13a53fcea3fce71c4b27bf  libgfortran/generated/maxloc1_4_m1.c
  4ef9b7c8eab28f664a9d5077655f0cff  libgfortran/generated/maxloc1_4_m16.c
  768d03c26047d5763215237325a5b973  libgfortran/generated/maxloc1_4_m2.c
  2521804819c001c5dc1f511afdc0ccc6  libgfortran/generated/maxloc1_4_m4.c
  b11acb8eca8664dbda7262a67565825f  libgfortran/generated/maxloc1_4_m8.c
! 5b1577a3f3e4bbf842f5b849867cad83  libgfortran/generated/maxloc1_4_r10.c
! 6a0f8837f31b291f27309cb53e49a0c4  libgfortran/generated/maxloc1_4_r16.c
! 9f588351fd28ef8e20a5623ce93a59a5  libgfortran/generated/maxloc1_4_r17.c
! d103fd99202925df7c3dd23efe81af0a  libgfortran/generated/maxloc1_4_r4.c
! c94f0b95481a97720c29459379257219  libgfortran/generated/maxloc1_4_r8.c
  c5a685eb5cab557893ae2bcac820bae7  libgfortran/generated/maxloc1_4_s1.c
  db288633a845d90460e917709af262ca  libgfortran/generated/maxloc1_4_s4.c
! 64931a89d362e8f24837f797a0bf61c7  libgfortran/generated/maxloc1_8_i1.c
! 9caddfa85aa3a5cca5de76d1ea14defd  libgfortran/generated/maxloc1_8_i16.c
! 028d2b330373f81a647baf9a63cedfbc  libgfortran/generated/maxloc1_8_i2.c
! 3f643c098ec0ebf26207db9d01ee625b  libgfortran/generated/maxloc1_8_i4.c
! 9b57d8642a825f853fc39df445f7e6b8  libgfortran/generated/maxloc1_8_i8.c
  0525a837bed7e68ee55831c6935b3083  libgfortran/generated/maxloc1_8_m1.c
  6cfb67139c32ba80137682c90f0f77fe  libgfortran/generated/maxloc1_8_m16.c
  085e2653d8fdb7fafc3977ab5d46e945  libgfortran/generated/maxloc1_8_m2.c
  347e7f033fc595ddc92223125dc20902  libgfortran/generated/maxloc1_8_m4.c
  83c1d3375ff9434fdc40136d7d165c15  libgfortran/generated/maxloc1_8_m8.c
! a5538f936916019edbe6eb586eefad22  libgfortran/generated/maxloc1_8_r10.c
! 22638b0085f2141a903df07c24d8d29c  libgfortran/generated/maxloc1_8_r16.c
! b0b0f18b4a4e9a2f027e0926258e37b3  libgfortran/generated/maxloc1_8_r17.c
! 88ad765cb7414fbcc9e952ff4d80f886  libgfortran/generated/maxloc1_8_r4.c
! 3a994917bb91815592d691ab8673ce89  libgfortran/generated/maxloc1_8_r8.c
  ce0f704b75da39f463179e8e62cb7529  libgfortran/generated/maxloc1_8_s1.c
  8dc34f7e2c22567dea0bd2700a99ba21  libgfortran/generated/maxloc1_8_s4.c
  5c752f4b482e22e797769a805e88c395  libgfortran/generated/maxloc2_16_s1.c
--- 126757,126811 ----
  46a85abb38366d94130159d1dfb93f3a  libgfortran/generated/maxloc0_8_r8.c
  3a4aa1783fb14078a1bade70d2ce65b5  libgfortran/generated/maxloc0_8_s1.c
  ec38a5bf9ed47e74723b76f8a14f0b61  libgfortran/generated/maxloc0_8_s4.c
! abb104716b050abaeee7032e55ac2d9e  libgfortran/generated/maxloc1_16_i1.c
! f2a9af120a363dbbee9e22c957c9af71  libgfortran/generated/maxloc1_16_i16.c
! e61db05245aa6d11d797931700b65e76  libgfortran/generated/maxloc1_16_i2.c
! 8313f53d9c9d1c63d1561b0a715ce71c  libgfortran/generated/maxloc1_16_i4.c
! 8f85105ad70b90c7f185cec74da9e7cd  libgfortran/generated/maxloc1_16_i8.c
  c12b57f2b0210bf6c6b7aaff51906256  libgfortran/generated/maxloc1_16_m1.c
  ce72acbfdd6045160b44300411d3f07f  libgfortran/generated/maxloc1_16_m16.c
  d9fe5bcab54bf5af06514547d1e3404b  libgfortran/generated/maxloc1_16_m2.c
  3a4256951bd1b9b28407e65b75505945  libgfortran/generated/maxloc1_16_m4.c
  3a79f8db43ca865ae615fcade40a95c6  libgfortran/generated/maxloc1_16_m8.c
! 8527aa3417ff8893a7392ded4a5ee28d  libgfortran/generated/maxloc1_16_r10.c
! 75bd2287ab6072b1d59c9c8327c34d45  libgfortran/generated/maxloc1_16_r16.c
! 3ea57e1a19b6618fe75d704da21a6079  libgfortran/generated/maxloc1_16_r17.c
! 3fa6776b0c1d63b791e377e56d9d72a7  libgfortran/generated/maxloc1_16_r4.c
! a144c898ef219694513359a58f184726  libgfortran/generated/maxloc1_16_r8.c
  536076b209d404cb16a44cb3b76fd338  libgfortran/generated/maxloc1_16_s1.c
  3dec3cf9edde57d35e4862ae017d03eb  libgfortran/generated/maxloc1_16_s4.c
! 18a478f9d6c38a6137b362eafd9750d6  libgfortran/generated/maxloc1_4_i1.c
! f4b1c97f45e9c0214b0b6f24a03cc6f7  libgfortran/generated/maxloc1_4_i16.c
! 5cecbc158bccc694ba1c7e2a9503aa2c  libgfortran/generated/maxloc1_4_i2.c
! 2dd8a2c8f6b188f299db885307bdfc7d  libgfortran/generated/maxloc1_4_i4.c
! 143bbe495837a084a4555dd4933c049c  libgfortran/generated/maxloc1_4_i8.c
  1bfbbb666a13a53fcea3fce71c4b27bf  libgfortran/generated/maxloc1_4_m1.c
  4ef9b7c8eab28f664a9d5077655f0cff  libgfortran/generated/maxloc1_4_m16.c
  768d03c26047d5763215237325a5b973  libgfortran/generated/maxloc1_4_m2.c
  2521804819c001c5dc1f511afdc0ccc6  libgfortran/generated/maxloc1_4_m4.c
  b11acb8eca8664dbda7262a67565825f  libgfortran/generated/maxloc1_4_m8.c
! 47aee9f2bc8b42dfcb542f47a4e4b8bb  libgfortran/generated/maxloc1_4_r10.c
! 824200f73f43c83d667c6b3dcc0f34d8  libgfortran/generated/maxloc1_4_r16.c
! 7db391d212c6be4034274b9e76607fbc  libgfortran/generated/maxloc1_4_r17.c
! a97acc4a63a33f64ac9b5dcb6535e712  libgfortran/generated/maxloc1_4_r4.c
! c54679e32dad0f8d9397b21976df1dc9  libgfortran/generated/maxloc1_4_r8.c
  c5a685eb5cab557893ae2bcac820bae7  libgfortran/generated/maxloc1_4_s1.c
  db288633a845d90460e917709af262ca  libgfortran/generated/maxloc1_4_s4.c
! a9187b156b93eab17d3abf4b4aabcde4  libgfortran/generated/maxloc1_8_i1.c
! f4039163ec55205d1f6095e9ccf40590  libgfortran/generated/maxloc1_8_i16.c
! c728fd20c1c55e875ea22d8b6d68924d  libgfortran/generated/maxloc1_8_i2.c
! 592d29c56cbb6212c2c88929ec477d00  libgfortran/generated/maxloc1_8_i4.c
! 7ad0fa7726586d65cab54cf192fa3a12  libgfortran/generated/maxloc1_8_i8.c
  0525a837bed7e68ee55831c6935b3083  libgfortran/generated/maxloc1_8_m1.c
  6cfb67139c32ba80137682c90f0f77fe  libgfortran/generated/maxloc1_8_m16.c
  085e2653d8fdb7fafc3977ab5d46e945  libgfortran/generated/maxloc1_8_m2.c
  347e7f033fc595ddc92223125dc20902  libgfortran/generated/maxloc1_8_m4.c
  83c1d3375ff9434fdc40136d7d165c15  libgfortran/generated/maxloc1_8_m8.c
! ba87caef218dc4dc661c0418dc98b7d3  libgfortran/generated/maxloc1_8_r10.c
! c78bf65cbd9e5b1c905cdb9414b4d835  libgfortran/generated/maxloc1_8_r16.c
! 22a28a5b0f9ee5d5518eec66552aa143  libgfortran/generated/maxloc1_8_r17.c
! 1e295124b9e575518c0ee61925364f9f  libgfortran/generated/maxloc1_8_r4.c
! 866fadfb063091138fcb449429150d0e  libgfortran/generated/maxloc1_8_r8.c
  ce0f704b75da39f463179e8e62cb7529  libgfortran/generated/maxloc1_8_s1.c
  8dc34f7e2c22567dea0bd2700a99ba21  libgfortran/generated/maxloc1_8_s4.c
  5c752f4b482e22e797769a805e88c395  libgfortran/generated/maxloc2_16_s1.c
*************** ce0f704b75da39f463179e8e62cb7529  libgfo
*** 126719,126739 ****
  12f244aa2226f5f6aed78d88719e3337  libgfortran/generated/maxval0_s4.c
  a10202db8770adae52b1dce48d7a9ec2  libgfortran/generated/maxval1_s1.c
  0265035613871e942cc733dc7988e3d7  libgfortran/generated/maxval1_s4.c
! 38e1b26a461a75a5dc4ed57d479007bd  libgfortran/generated/maxval_i1.c
! 1b7d064eb68c74690c6cfb0b51be288e  libgfortran/generated/maxval_i16.c
! f53afc8b9c86ca0ddc693e82e87de988  libgfortran/generated/maxval_i2.c
! 6bf86c67e22ebfe43f188dc643059db8  libgfortran/generated/maxval_i4.c
! 55141f70a5064f36d896bdad18d0a95f  libgfortran/generated/maxval_i8.c
  a09e7758408863a8d09097176d422b6b  libgfortran/generated/maxval_m1.c
  aee821dc1cf43984a98caa739138eec4  libgfortran/generated/maxval_m16.c
  84e9726150340486088bd3eb09bfe895  libgfortran/generated/maxval_m2.c
  38782a2ad1d52b618192a165f21b36c1  libgfortran/generated/maxval_m4.c
  a925befd87ae715223b61e2ae23c36ac  libgfortran/generated/maxval_m8.c
! 39e930ec37ce56356a74830fb3a3216d  libgfortran/generated/maxval_r10.c
! aeab205938d6bab5d8319052dc6c3377  libgfortran/generated/maxval_r16.c
! e3ddd8a76a0f88fd0cb9ef759cd2773f  libgfortran/generated/maxval_r17.c
! 2fc63bfb5fc817b469ef4b73314f4210  libgfortran/generated/maxval_r4.c
! 44a12148288e1719492d12d7743142bd  libgfortran/generated/maxval_r8.c
  3690455646e53b484921b84e230e6a18  libgfortran/generated/minloc0_16_i1.c
  c5752c281ce25818e807ead2d0594d1b  libgfortran/generated/minloc0_16_i16.c
  e01627cd3499c8d948b6be59333392c1  libgfortran/generated/minloc0_16_i2.c
--- 126818,126838 ----
  12f244aa2226f5f6aed78d88719e3337  libgfortran/generated/maxval0_s4.c
  a10202db8770adae52b1dce48d7a9ec2  libgfortran/generated/maxval1_s1.c
  0265035613871e942cc733dc7988e3d7  libgfortran/generated/maxval1_s4.c
! f09e3f289dd69b67f18d95f6b36873cc  libgfortran/generated/maxval_i1.c
! 34b9cf96a139d116dd1c70c25a61de71  libgfortran/generated/maxval_i16.c
! b88027134bb1bd8f3cfeedc8f33f4fec  libgfortran/generated/maxval_i2.c
! eb8754c52aa98c4a1af49756f2708dff  libgfortran/generated/maxval_i4.c
! 58bf37e2c409d04df7e5c30cb59f1879  libgfortran/generated/maxval_i8.c
  a09e7758408863a8d09097176d422b6b  libgfortran/generated/maxval_m1.c
  aee821dc1cf43984a98caa739138eec4  libgfortran/generated/maxval_m16.c
  84e9726150340486088bd3eb09bfe895  libgfortran/generated/maxval_m2.c
  38782a2ad1d52b618192a165f21b36c1  libgfortran/generated/maxval_m4.c
  a925befd87ae715223b61e2ae23c36ac  libgfortran/generated/maxval_m8.c
! 99ea88b95425734d273251d451714144  libgfortran/generated/maxval_r10.c
! a69562db67188aa26318578e11f6474b  libgfortran/generated/maxval_r16.c
! 0d67de9a860e08ae6049efe0f2cf6343  libgfortran/generated/maxval_r17.c
! 98b6ebe52d5462e303590621ae0d6645  libgfortran/generated/maxval_r4.c
! 490c8b3c73738d262dc3e61e9864b395  libgfortran/generated/maxval_r8.c
  3690455646e53b484921b84e230e6a18  libgfortran/generated/minloc0_16_i1.c
  c5752c281ce25818e807ead2d0594d1b  libgfortran/generated/minloc0_16_i16.c
  e01627cd3499c8d948b6be59333392c1  libgfortran/generated/minloc0_16_i2.c
*************** ed142e18d12363e27e780600da0809f4  libgfo
*** 126785,126839 ****
  273b8bfd4b1c1bf031df45b4e491d685  libgfortran/generated/minloc0_8_r8.c
  74a85838483370b112177d89189df6af  libgfortran/generated/minloc0_8_s1.c
  27248e968978593f2d44de4ec6230e11  libgfortran/generated/minloc0_8_s4.c
! 8e92bfa8e09d235774651870d2bbf1a7  libgfortran/generated/minloc1_16_i1.c
! 18413008d6916d7595c47fb3f588401e  libgfortran/generated/minloc1_16_i16.c
! 2042e4cf8f37354776247ddb7027876f  libgfortran/generated/minloc1_16_i2.c
! a311e1a7b38c74f059b105d8d90e8016  libgfortran/generated/minloc1_16_i4.c
! 556abb17156f0e31c9aeaf67f9a71b82  libgfortran/generated/minloc1_16_i8.c
  6a8b84c241145b0c2c26e05a6fea80e4  libgfortran/generated/minloc1_16_m1.c
  5c61638ea02b910d462df178c02d0ff3  libgfortran/generated/minloc1_16_m16.c
  ec470cd823ff5e13c3e3f8933c39d888  libgfortran/generated/minloc1_16_m2.c
  7613ad46320c10f94ed90ce136ff5e16  libgfortran/generated/minloc1_16_m4.c
  5945f9202e621a370492275e8ab7a1ca  libgfortran/generated/minloc1_16_m8.c
! 4d0d14996a39df99924b89289d1e409a  libgfortran/generated/minloc1_16_r10.c
! 32547f87eea1a3c1414db054bbc4682c  libgfortran/generated/minloc1_16_r16.c
! 540d4454c6e452889d980e916947f147  libgfortran/generated/minloc1_16_r17.c
! 961ddcf37fca125693a81eb8beb50dea  libgfortran/generated/minloc1_16_r4.c
! d69a82a2f324afe9988430e522eacce2  libgfortran/generated/minloc1_16_r8.c
  e1bd5df388dc6bf9c1dd989030b667a6  libgfortran/generated/minloc1_16_s1.c
  c03f2885f077a908f92063aba7bbb32a  libgfortran/generated/minloc1_16_s4.c
! 5847d66d480e9842d866c8eaf7c83887  libgfortran/generated/minloc1_4_i1.c
! 6d41e0a53d9b5f7cc912460023d0535e  libgfortran/generated/minloc1_4_i16.c
! d5a085137279dce24052958b942a5e1a  libgfortran/generated/minloc1_4_i2.c
! 5650ce7bc8f75d74dd255ccd94b6002f  libgfortran/generated/minloc1_4_i4.c
! 685a208de63e6a178dd4db7073f37fc7  libgfortran/generated/minloc1_4_i8.c
  91a6fd235949c942ad17537b51eca268  libgfortran/generated/minloc1_4_m1.c
  476c3325166b9d84dd79fa08a58b4713  libgfortran/generated/minloc1_4_m16.c
  8420815d36da5c1eefa6ffc35238fa41  libgfortran/generated/minloc1_4_m2.c
  2837b41a115e3d4435389a71f77b85c9  libgfortran/generated/minloc1_4_m4.c
  71464c2d29232ac1a133589c8edab0db  libgfortran/generated/minloc1_4_m8.c
! 7f26469b4b38d0f998545bf4bbc60211  libgfortran/generated/minloc1_4_r10.c
! ab8c2b2038b7552e095765c8e7a49152  libgfortran/generated/minloc1_4_r16.c
! f644fd56ed5d739e84abfe762cbf26a8  libgfortran/generated/minloc1_4_r17.c
! 1d7696a514235166b23f0e187b760b95  libgfortran/generated/minloc1_4_r4.c
! 41a98f8720b5be14e3c4e7bc68ec158e  libgfortran/generated/minloc1_4_r8.c
  6d77a5d312d3e4a2596b249a46928823  libgfortran/generated/minloc1_4_s1.c
  f8be71fae9f9719e4c904334f3def36f  libgfortran/generated/minloc1_4_s4.c
! 672a7ed532ba86f641353e19a4cce24e  libgfortran/generated/minloc1_8_i1.c
! c39fd4b96d951718c9cdad74fdadff1d  libgfortran/generated/minloc1_8_i16.c
! 3eeca6f84edd91144ee4e44f3996d2dd  libgfortran/generated/minloc1_8_i2.c
! cbc34a659ead9c006a093a3b86dbd1ef  libgfortran/generated/minloc1_8_i4.c
! a21e56b73858b470758fc3190d33afeb  libgfortran/generated/minloc1_8_i8.c
  2c198710cb24613a27e5356132dcea51  libgfortran/generated/minloc1_8_m1.c
  98fa526f262522cc950a142830225fd5  libgfortran/generated/minloc1_8_m16.c
  4a81a39b4d971679fd6b6c08d379b743  libgfortran/generated/minloc1_8_m2.c
  d25ca2efa33919775e5a47ad08b2b748  libgfortran/generated/minloc1_8_m4.c
  c911e305d6b6544970fb212eb0a4a826  libgfortran/generated/minloc1_8_m8.c
! e5be4044e10234d22cbf446c6fbb8611  libgfortran/generated/minloc1_8_r10.c
! 668c14a39f6eb36bbe717a789cd9fc8f  libgfortran/generated/minloc1_8_r16.c
! d96c62a9b844f9e4f1c2dbb14aaff660  libgfortran/generated/minloc1_8_r17.c
! 0066bca1fae1af406025e5efe30b1599  libgfortran/generated/minloc1_8_r4.c
! de5d5cc4c10f8007cdcc554c474f1673  libgfortran/generated/minloc1_8_r8.c
  6807fc39cfe49d1013e890acec86cff4  libgfortran/generated/minloc1_8_s1.c
  249a29d437e54adfdac9ebc73c4f935a  libgfortran/generated/minloc1_8_s4.c
  2954f167794fe46e84e387ecafdfd382  libgfortran/generated/minloc2_16_s1.c
--- 126884,126938 ----
  273b8bfd4b1c1bf031df45b4e491d685  libgfortran/generated/minloc0_8_r8.c
  74a85838483370b112177d89189df6af  libgfortran/generated/minloc0_8_s1.c
  27248e968978593f2d44de4ec6230e11  libgfortran/generated/minloc0_8_s4.c
! 84ac1ca0c113b508de99d3160c8fb817  libgfortran/generated/minloc1_16_i1.c
! 89fc568cd0f33a21c8d3967524225e6f  libgfortran/generated/minloc1_16_i16.c
! f20a6041bbc3009f6ea403464e9d8892  libgfortran/generated/minloc1_16_i2.c
! 276c9e6d8effdca3735792b848995c2f  libgfortran/generated/minloc1_16_i4.c
! 8d574352db22b0e16b81e66028595606  libgfortran/generated/minloc1_16_i8.c
  6a8b84c241145b0c2c26e05a6fea80e4  libgfortran/generated/minloc1_16_m1.c
  5c61638ea02b910d462df178c02d0ff3  libgfortran/generated/minloc1_16_m16.c
  ec470cd823ff5e13c3e3f8933c39d888  libgfortran/generated/minloc1_16_m2.c
  7613ad46320c10f94ed90ce136ff5e16  libgfortran/generated/minloc1_16_m4.c
  5945f9202e621a370492275e8ab7a1ca  libgfortran/generated/minloc1_16_m8.c
! c3229ab47594b0f2e63eddc8a0619cf0  libgfortran/generated/minloc1_16_r10.c
! bb7b65590e104db42a12dd80f3357163  libgfortran/generated/minloc1_16_r16.c
! 43268a5056b307529457398e7c83cbc6  libgfortran/generated/minloc1_16_r17.c
! af6b97c61d4523cc3c9cc286c3b33f6e  libgfortran/generated/minloc1_16_r4.c
! c7daf1548aeee8fa621f0493645f0b1b  libgfortran/generated/minloc1_16_r8.c
  e1bd5df388dc6bf9c1dd989030b667a6  libgfortran/generated/minloc1_16_s1.c
  c03f2885f077a908f92063aba7bbb32a  libgfortran/generated/minloc1_16_s4.c
! e388c9c33b9386160df475e514a6ee00  libgfortran/generated/minloc1_4_i1.c
! 3aa0e66f4b344597446fa04f5bccd01d  libgfortran/generated/minloc1_4_i16.c
! a00ad299b1c673e2a54612aeaafdb283  libgfortran/generated/minloc1_4_i2.c
! 389cd4db4c43f36911e25b859f8de4e4  libgfortran/generated/minloc1_4_i4.c
! 586f9f85299b5a3e8cd43323be490ccd  libgfortran/generated/minloc1_4_i8.c
  91a6fd235949c942ad17537b51eca268  libgfortran/generated/minloc1_4_m1.c
  476c3325166b9d84dd79fa08a58b4713  libgfortran/generated/minloc1_4_m16.c
  8420815d36da5c1eefa6ffc35238fa41  libgfortran/generated/minloc1_4_m2.c
  2837b41a115e3d4435389a71f77b85c9  libgfortran/generated/minloc1_4_m4.c
  71464c2d29232ac1a133589c8edab0db  libgfortran/generated/minloc1_4_m8.c
! 10c05b50c4cdd81310f0f3a9d0674707  libgfortran/generated/minloc1_4_r10.c
! 961caa9713b40770e992ef0bf279acf1  libgfortran/generated/minloc1_4_r16.c
! 4a5a8b6f7f5e3e272863c318b0c20155  libgfortran/generated/minloc1_4_r17.c
! 9590ccc87d2c468fe32f7ea8bb536dc2  libgfortran/generated/minloc1_4_r4.c
! d345e6c31172f51127183e2f9def2828  libgfortran/generated/minloc1_4_r8.c
  6d77a5d312d3e4a2596b249a46928823  libgfortran/generated/minloc1_4_s1.c
  f8be71fae9f9719e4c904334f3def36f  libgfortran/generated/minloc1_4_s4.c
! fd2d9af18314ae341d8f457f4da890a3  libgfortran/generated/minloc1_8_i1.c
! f7f66d2239911cee2b2d7654f38edafa  libgfortran/generated/minloc1_8_i16.c
! a86e532fb4a2fafcaa5cac09b0d0c1c7  libgfortran/generated/minloc1_8_i2.c
! 437dce434e4edca067ca6fae3b537c87  libgfortran/generated/minloc1_8_i4.c
! f285dfb11d08878e257c996e05c96225  libgfortran/generated/minloc1_8_i8.c
  2c198710cb24613a27e5356132dcea51  libgfortran/generated/minloc1_8_m1.c
  98fa526f262522cc950a142830225fd5  libgfortran/generated/minloc1_8_m16.c
  4a81a39b4d971679fd6b6c08d379b743  libgfortran/generated/minloc1_8_m2.c
  d25ca2efa33919775e5a47ad08b2b748  libgfortran/generated/minloc1_8_m4.c
  c911e305d6b6544970fb212eb0a4a826  libgfortran/generated/minloc1_8_m8.c
! 09d690f7c4593e37900a11f9eab947fd  libgfortran/generated/minloc1_8_r10.c
! 4efb29236a99318bdd5a7aa4d0482d84  libgfortran/generated/minloc1_8_r16.c
! 7661edccc7a62d56757991adccca8772  libgfortran/generated/minloc1_8_r17.c
! 5024bae188aa99ce4468b3aff994a864  libgfortran/generated/minloc1_8_r4.c
! 16c5e96bf88caa2c02ebd4ce3797aa03  libgfortran/generated/minloc1_8_r8.c
  6807fc39cfe49d1013e890acec86cff4  libgfortran/generated/minloc1_8_s1.c
  249a29d437e54adfdac9ebc73c4f935a  libgfortran/generated/minloc1_8_s4.c
  2954f167794fe46e84e387ecafdfd382  libgfortran/generated/minloc2_16_s1.c
*************** ffd2bdd1e465617800114f25032e41e7  libgfo
*** 126846,126872 ****
  91624b872dcd26edb52c4d13f7aa28a2  libgfortran/generated/minval0_s4.c
  99ebdc6b36c8d7a9226e292f6d5062f3  libgfortran/generated/minval1_s1.c
  9ada639d6bec5d4ae128ad658460ebdd  libgfortran/generated/minval1_s4.c
! 6589098e478df099739ab2ec2b1e0d3b  libgfortran/generated/minval_i1.c
! f7de54974b946e4b6e6d9df4df6807bd  libgfortran/generated/minval_i16.c
! 367d4449e0bc30778ce7fbcff398aa79  libgfortran/generated/minval_i2.c
! 7ecca091d36839b29a79f8d4ce0f7879  libgfortran/generated/minval_i4.c
! b48e50dd5de804a721defde8954d114c  libgfortran/generated/minval_i8.c
  0a1bdf47661dfd0b4259128f60911db8  libgfortran/generated/minval_m1.c
  b2416cb98ec70fae39154034f94b6d2c  libgfortran/generated/minval_m16.c
  b5291d121040c5ae89c57353784ab932  libgfortran/generated/minval_m2.c
  29cb319dfc9d0056208c83edd09174e5  libgfortran/generated/minval_m4.c
  1d4366ce440c483a0fd9f3f00d4d0002  libgfortran/generated/minval_m8.c
! 3d259ffb5419b573aa40c203408e513e  libgfortran/generated/minval_r10.c
! b902b8b370cfe245d8da776efc3e8946  libgfortran/generated/minval_r16.c
! 6f54b6efdb65e1b28690f2634330a1dc  libgfortran/generated/minval_r17.c
! 04edaa1fbad18ecfc101759c8e6d9230  libgfortran/generated/minval_r4.c
! 2a28add4b5fe7719aee4165520a8f385  libgfortran/generated/minval_r8.c
  f106c39bafe501e72b1c237a787ccab5  libgfortran/generated/misc_specifics.F90
! cc3ec44031f4438a6165cd3d2a643feb  libgfortran/generated/norm2_r10.c
! fb3598b999e8e60fcca32cbad9bd720d  libgfortran/generated/norm2_r16.c
! ce802065802545ff898163bdd892685d  libgfortran/generated/norm2_r17.c
! 76f0e60ca53ca8255e67345a3b4760df  libgfortran/generated/norm2_r4.c
! 5e5412047aa83362a75d031139bb74a2  libgfortran/generated/norm2_r8.c
  c3422759e7d7950a29ca54c292d5bef5  libgfortran/generated/pack_c10.c
  e85a419fb41febf66c9fe55538bd17b1  libgfortran/generated/pack_c16.c
  6ee54d0d224744b21e02e8589bb7f3df  libgfortran/generated/pack_c17.c
--- 126945,126971 ----
  91624b872dcd26edb52c4d13f7aa28a2  libgfortran/generated/minval0_s4.c
  99ebdc6b36c8d7a9226e292f6d5062f3  libgfortran/generated/minval1_s1.c
  9ada639d6bec5d4ae128ad658460ebdd  libgfortran/generated/minval1_s4.c
! 748037b80f0606f954d0915cb938a853  libgfortran/generated/minval_i1.c
! 22422c3115e6247268c276918c85d258  libgfortran/generated/minval_i16.c
! f6777aab224808d03e529cc98ea922a7  libgfortran/generated/minval_i2.c
! e390829efcde2cb9a7b6f007be504f78  libgfortran/generated/minval_i4.c
! de448d58bb63aec5482b44a15171e458  libgfortran/generated/minval_i8.c
  0a1bdf47661dfd0b4259128f60911db8  libgfortran/generated/minval_m1.c
  b2416cb98ec70fae39154034f94b6d2c  libgfortran/generated/minval_m16.c
  b5291d121040c5ae89c57353784ab932  libgfortran/generated/minval_m2.c
  29cb319dfc9d0056208c83edd09174e5  libgfortran/generated/minval_m4.c
  1d4366ce440c483a0fd9f3f00d4d0002  libgfortran/generated/minval_m8.c
! db4ad62e62ed8a1f5b72b1a898e6ed21  libgfortran/generated/minval_r10.c
! 9489abbe825d3f60e9ef24d43061cb79  libgfortran/generated/minval_r16.c
! 85b4cce40c7cf03229b0fed41b4cf995  libgfortran/generated/minval_r17.c
! 42fe58cda24077861e230f87b6a5a936  libgfortran/generated/minval_r4.c
! e6c46c90197a0e9f429b797f75b3e310  libgfortran/generated/minval_r8.c
  f106c39bafe501e72b1c237a787ccab5  libgfortran/generated/misc_specifics.F90
! be33ee8fc25ede17b034c24b4b9e5712  libgfortran/generated/norm2_r10.c
! 4770d0c6e5b6069eeb1f4bac29322d60  libgfortran/generated/norm2_r16.c
! 45b5e734d57c292b0645ca88dced447a  libgfortran/generated/norm2_r17.c
! 3050ebdd00157d1dfbc0ae7dacc92e82  libgfortran/generated/norm2_r4.c
! 82ecf967c3031498731c84bff90fbabe  libgfortran/generated/norm2_r8.c
  c3422759e7d7950a29ca54c292d5bef5  libgfortran/generated/pack_c10.c
  e85a419fb41febf66c9fe55538bd17b1  libgfortran/generated/pack_c16.c
  6ee54d0d224744b21e02e8589bb7f3df  libgfortran/generated/pack_c17.c
*************** e4d3ae67e81e8e29ad8050478d83604a  libgfo
*** 126882,126892 ****
  4adb40f94b256b990b2461ac0949071e  libgfortran/generated/pack_r17.c
  492d62c9d3fd471d3bb4a33cb9b012fb  libgfortran/generated/pack_r4.c
  3a17e076d07b1350b937ca44dff87d86  libgfortran/generated/pack_r8.c
! aaadca8a2f030c7bb67d5862484aac97  libgfortran/generated/parity_l1.c
! 28985a3dedc9bc57cb284e6ee20ac1db  libgfortran/generated/parity_l16.c
! db6e5c625aab1eaeaf375392a239a81a  libgfortran/generated/parity_l2.c
! 1826a27d51003d01211ec95ac63e40ff  libgfortran/generated/parity_l4.c
! 9a6b61034e90647d19aea45a378b1c9f  libgfortran/generated/parity_l8.c
  008aa33767fd9c7c5aadae3916d51c89  libgfortran/generated/pow_c10_i16.c
  0d152971608c1364727ea9af2c4f7c86  libgfortran/generated/pow_c10_i4.c
  ff900f0934beb455c0e3ff171f14d049  libgfortran/generated/pow_c10_i8.c
--- 126981,126991 ----
  4adb40f94b256b990b2461ac0949071e  libgfortran/generated/pack_r17.c
  492d62c9d3fd471d3bb4a33cb9b012fb  libgfortran/generated/pack_r4.c
  3a17e076d07b1350b937ca44dff87d86  libgfortran/generated/pack_r8.c
! b197aa4124acd7cc8b303f994d137bfb  libgfortran/generated/parity_l1.c
! b9ad1d0c15ad04656c0e4ced165901ca  libgfortran/generated/parity_l16.c
! a363ede890d814346f196918e6ff36ff  libgfortran/generated/parity_l2.c
! 5bb6aea76f1d56a93551ed88c5b71591  libgfortran/generated/parity_l4.c
! bbdd1b20a48a295496f22df39170f9d3  libgfortran/generated/parity_l8.c
  008aa33767fd9c7c5aadae3916d51c89  libgfortran/generated/pow_c10_i16.c
  0d152971608c1364727ea9af2c4f7c86  libgfortran/generated/pow_c10_i4.c
  ff900f0934beb455c0e3ff171f14d049  libgfortran/generated/pow_c10_i8.c
*************** a255d898311e104699cc608214c2f4d4  libgfo
*** 127104,127110 ****
  c7169b01bb969daf7e30948005f39988  libgfortran/io/fbuf.c
  914bd3e77f8227a3400ba2868e316308  libgfortran/io/fbuf.h
  9df5d9e5f674030f9bd193d261f25d47  libgfortran/io/file_pos.c
! 5449b8a8fac0f3133f4c32e7ddebc9ac  libgfortran/io/format.c
  95ba22ac86e130ffe2d943ec142f4427  libgfortran/io/format.h
  2c879686a9c5431b13c4d3a9323e5fed  libgfortran/io/inquire.c
  9a1581b774b6fa5ddc5861750824984f  libgfortran/io/intrinsics.c
--- 127203,127209 ----
  c7169b01bb969daf7e30948005f39988  libgfortran/io/fbuf.c
  914bd3e77f8227a3400ba2868e316308  libgfortran/io/fbuf.h
  9df5d9e5f674030f9bd193d261f25d47  libgfortran/io/file_pos.c
! 3ed8323377b84c77d37045619b804ce1  libgfortran/io/format.c
  95ba22ac86e130ffe2d943ec142f4427  libgfortran/io/format.h
  2c879686a9c5431b13c4d3a9323e5fed  libgfortran/io/inquire.c
  9a1581b774b6fa5ddc5861750824984f  libgfortran/io/intrinsics.c
*************** f63a06d746592d67d8c161bc2461a24e  libgfo
*** 127216,127222 ****
  e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
  fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
  08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 6c83ff2a6226517504b2bde69d47a38a  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
  38778826306c4efe1f6a33cb21cece23  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
--- 127315,127321 ----
  e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
  fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
  08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 074bdd69239e63b93b495139822b07dc  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
  38778826306c4efe1f6a33cb21cece23  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
*************** c0826ae4087216cbe3d07b7ac749be7c  libgm2
*** 127243,127250 ****
  36f227f41f6cb4fc9bd5eaa5345378f3  libgm2/libm2min/Makefile.am
  0508f72ba2d22517546c50f880f3cf9e  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
! 26e1cfb99ad6f72aa6ecedf590bada9b  libgm2/libm2pim/Makefile.am
! bf74dde0f66b5139acccabfa3477ac3c  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
--- 127342,127350 ----
  36f227f41f6cb4fc9bd5eaa5345378f3  libgm2/libm2min/Makefile.am
  0508f72ba2d22517546c50f880f3cf9e  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
! 672db9b5f503b1b02773144313a13746  libgm2/libm2pim/CFileSysOp.cc
! e9a9fa4aa273c6c9fb72e428bbac71b3  libgm2/libm2pim/Makefile.am
! ec626ef6d1f1791a48dde69a7877a01a  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 132752,132758 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 23f93a1e2ea2750012773a409106a8e5  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
  54c7bc8277669e3bf5f1a3db179ae206  libgomp/Makefile.in
--- 132852,132858 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 4196def670f9eb5476373a1f2d955063  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
  54c7bc8277669e3bf5f1a3db179ae206  libgomp/Makefile.in
*************** f4c32f19e8df86d2ac9c3d4cc4e788f1  libgom
*** 132891,132901 ****
  c798aea0a594e97c71edb3bd8cb93579  libgomp/iter.c
  c3d837ee5481f078c8b7875c1c8306be  libgomp/iter_ull.c
  0214d07a09a5c6e422ca9541c3f6cba4  libgomp/libgomp-plugin.c
! e1c9e7654ef894ec21f40582e0d7f0d5  libgomp/libgomp-plugin.h
! 5495bce7ebe90689b3e7213f8dd34827  libgomp/libgomp.h
! c2271585c33cfaeb8d6cade91601376a  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 2d209f6d15ff305897fab02c733d54ca  libgomp/libgomp.texi
  519d28879206bae759d85cd3bb7b493b  libgomp/libgomp_f.h.in
  fdadcc861565b686070908326f5e5914  libgomp/libgomp_g.h
  a5060d745455b036a62cc46de1fe0576  libgomp/lock.c
--- 132991,133001 ----
  c798aea0a594e97c71edb3bd8cb93579  libgomp/iter.c
  c3d837ee5481f078c8b7875c1c8306be  libgomp/iter_ull.c
  0214d07a09a5c6e422ca9541c3f6cba4  libgomp/libgomp-plugin.c
! fe834e77193cffc9757fa7871241a57b  libgomp/libgomp-plugin.h
! b5ba8a8b2b31f2f9bd9ac0760b81da9f  libgomp/libgomp.h
! 50f762df7ab8d23bd5473f223e32cf05  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 7679b9dac242ac19b50759f6a159ac33  libgomp/libgomp.texi
  519d28879206bae759d85cd3bb7b493b  libgomp/libgomp_f.h.in
  fdadcc861565b686070908326f5e5914  libgomp/libgomp_g.h
  a5060d745455b036a62cc46de1fe0576  libgomp/lock.c
*************** b6edffd0cc3b521c5885b285ddc3deaf  libgom
*** 132912,132920 ****
  cabec5d2660028884f23c85bd403f01e  libgomp/oacc-plugin.h
  a6450e2f5f7558ce92992048a3735241  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! 6bcd80e4e6537ec863c1d376f34de561  libgomp/omp.h.in
! c86ce0e3a2aeecaa5351b6f1ba8032e5  libgomp/omp_lib.f90.in
! 49663c3c3b724a5241612aae66a868dd  libgomp/omp_lib.h.in
  442785d02c04a38d6b923e1aff5ee030  libgomp/openacc.f90
  0380c0cfc562bb08603d6ff4bb9c8311  libgomp/openacc.h
  858bdcba6ddb1d7c44faa6e75b0a94e7  libgomp/openacc_lib.h
--- 133012,133020 ----
  cabec5d2660028884f23c85bd403f01e  libgomp/oacc-plugin.h
  a6450e2f5f7558ce92992048a3735241  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! b5f09519ce88ab69eebd367557be039a  libgomp/omp.h.in
! e41ce4d9881cd8bf0280948cc5c90ae9  libgomp/omp_lib.f90.in
! b64dca060dc3e768889b5d0f6086e4d0  libgomp/omp_lib.h.in
  442785d02c04a38d6b923e1aff5ee030  libgomp/openacc.f90
  0380c0cfc562bb08603d6ff4bb9c8311  libgomp/openacc.h
  858bdcba6ddb1d7c44faa6e75b0a94e7  libgomp/openacc_lib.h
*************** c86ce0e3a2aeecaa5351b6f1ba8032e5  libgom
*** 132922,132930 ****
  5d03c6596f36bc8b6127cd047fb71b81  libgomp/parallel.c
  b62a5d146dc237f28322cddf18c8a8bc  libgomp/plugin/Makefrag.am
  5a5c5a37c066333fa237c308a243cda1  libgomp/plugin/configfrag.ac
! 89a0efb8035fb3af682d1d4081804427  libgomp/plugin/cuda-lib.def
! 12dc44ffcfc062ba40f0f9088273060e  libgomp/plugin/plugin-gcn.c
! 37125a02810ccf86efdad50fea6e5a07  libgomp/plugin/plugin-nvptx.c
  0f2fc4f7d0850afd090ba2bb43681c8a  libgomp/priority_queue.c
  5c28f5f7bbc16dada259efc296bbe9f3  libgomp/priority_queue.h
  f1eee47026bb1c516cd1b3a9b9c1c5fa  libgomp/scope.c
--- 133022,133030 ----
  5d03c6596f36bc8b6127cd047fb71b81  libgomp/parallel.c
  b62a5d146dc237f28322cddf18c8a8bc  libgomp/plugin/Makefrag.am
  5a5c5a37c066333fa237c308a243cda1  libgomp/plugin/configfrag.ac
! b8346079425832c85a1dfc7ac3ab0286  libgomp/plugin/cuda-lib.def
! 2dd9ec99d8ce250f267f3dbeaccf8e67  libgomp/plugin/plugin-gcn.c
! d32639035041c7d7777507609f118dc5  libgomp/plugin/plugin-nvptx.c
  0f2fc4f7d0850afd090ba2bb43681c8a  libgomp/priority_queue.c
  5c28f5f7bbc16dada259efc296bbe9f3  libgomp/priority_queue.h
  f1eee47026bb1c516cd1b3a9b9c1c5fa  libgomp/scope.c
*************** f1eee47026bb1c516cd1b3a9b9c1c5fa  libgom
*** 132935,132941 ****
  6562eda8ef1a1fd0a2a0a9e5621f684b  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
  a8a23ca7c25ca51062b636b0c099096a  libgomp/target-indirect.c
! b12414cad453ffe50d802be0428e1960  libgomp/target.c
  8f03749b5187ce4fb4dce3f7d5b2d9f7  libgomp/task.c
  865cdfdff84a15247efff279e8aca77f  libgomp/taskloop.c
  f540431686cf02c11ae33b1cd66e01ca  libgomp/team.c
--- 133035,133041 ----
  6562eda8ef1a1fd0a2a0a9e5621f684b  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
  a8a23ca7c25ca51062b636b0c099096a  libgomp/target-indirect.c
! 97fb711d2cc01dbd47d08cbfda817d0e  libgomp/target.c
  8f03749b5187ce4fb4dce3f7d5b2d9f7  libgomp/task.c
  865cdfdff84a15247efff279e8aca77f  libgomp/taskloop.c
  f540431686cf02c11ae33b1cd66e01ca  libgomp/team.c
*************** d9c974865c1c03b48fac0231e028a7be  libgom
*** 133530,133535 ****
--- 133630,133638 ----
  857b86f8109e8843b901fc93bce4c8a8  libgomp/testsuite/libgomp.c-c++-common/nothing-1.c
  7b82eb3ecdfe1a29b71573e9670b905e  libgomp/testsuite/libgomp.c-c++-common/omp-display-env-1.c
  b44227078d5fcd5acfde164f5bf5bcbe  libgomp/testsuite/libgomp.c-c++-common/omp-display-env-2.c
+ f8a93d0f03afa6b6ecf0173347e50345  libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-2.c
+ 75c915440c0f7fe2bea12c6015c12df0  libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-3.c
+ 7c637d684293b3530653d3d2ec36b7e0  libgomp/testsuite/libgomp.c-c++-common/omp_target_memset.c
  ea669c503a0c8f82567ee811767d35be  libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
  74baf3447a9a73a48cd8d205ea13026b  libgomp/testsuite/libgomp.c-c++-common/order-reproducible-1.c
  e2bc55eb4581cd421c13c8ce68663678  libgomp/testsuite/libgomp.c-c++-common/order-reproducible-2.c
*************** a9b2ad991bd60cd4cd6ef4a68071bee6  libgom
*** 134188,134194 ****
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
  2c67f32f623ae7d4b5ad5c7688a6acb1  libgomp/testsuite/libgomp.c/target-link-1.c
  2615e18884995f596aab452699d4a70a  libgomp/testsuite/libgomp.c/target-map-zero-sized-2.c
! 6074fd0ddba8cd7a81233a0377d223c0  libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
  24c08630e1dc6f184073f42ff7c1bb73  libgomp/testsuite/libgomp.c/target-map-zero-sized.c
  7d9530ec8677e1a90e6b3d38859fc1b2  libgomp/testsuite/libgomp.c/target-print-1.c
  ec5b58aca4cfce9a6dafce47f592cdc3  libgomp/testsuite/libgomp.c/target-simd-clone-1.c
--- 134291,134297 ----
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
  2c67f32f623ae7d4b5ad5c7688a6acb1  libgomp/testsuite/libgomp.c/target-link-1.c
  2615e18884995f596aab452699d4a70a  libgomp/testsuite/libgomp.c/target-map-zero-sized-2.c
! 68edfd581475a06b17e8a98d85c86022  libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
  24c08630e1dc6f184073f42ff7c1bb73  libgomp/testsuite/libgomp.c/target-map-zero-sized.c
  7d9530ec8677e1a90e6b3d38859fc1b2  libgomp/testsuite/libgomp.c/target-print-1.c
  ec5b58aca4cfce9a6dafce47f592cdc3  libgomp/testsuite/libgomp.c/target-simd-clone-1.c
*************** d09da57ba1fe6d1b566373765f254243  libgom
*** 134524,134529 ****
--- 134627,134634 ----
  1a48e57dbad9754e5d6a3b9f67aa65b5  libgomp/testsuite/libgomp.fortran/omp_parse3.f90
  8170f7b977312f5e8e9fadd4c3b8fc8b  libgomp/testsuite/libgomp.fortran/omp_parse4.f90
  c910dfe57b9f53b8992d397c3571fd09  libgomp/testsuite/libgomp.fortran/omp_reduction.f
+ a28ac11969e4dd7aced601c757f947c3  libgomp/testsuite/libgomp.fortran/omp_target_memset-2.f90
+ b1fc0fd8ad5ab4e898de2fdc6cc6aa3c  libgomp/testsuite/libgomp.fortran/omp_target_memset.f90
  77c80068c3418c0e379971a5e4ac91f1  libgomp/testsuite/libgomp.fortran/omp_workshare1.f
  4c7b256074253b51c44fe0f469b4512e  libgomp/testsuite/libgomp.fortran/omp_workshare2.f
  3e8aa59e7a86d28bacafdfab584f0a22  libgomp/testsuite/libgomp.fortran/on_device_arch.c
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 137797,137803 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 7246aefe1ba623e78c9e6f1d3d62d5c2  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 137902,137908 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 49ee2fb97e5ff3d4a92e07d63afaa228  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** f372af73db4ac0ad88e43199e1f29e08  libstd
*** 137834,137840 ****
  9e25b4e524e0d639f272a9e96bab0ce3  libstdc++-v3/config/abi/compatibility.h
  0be6fea010f86e442ad030f82858fb73  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
! 2aa3eecf221694c7bca037536cfc26de  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
  3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
  13f901be7333a2072916659b04e88e8d  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
  d45eb5f70812c01e9571ca948c4da8cd  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
--- 137939,137945 ----
  9e25b4e524e0d639f272a9e96bab0ce3  libstdc++-v3/config/abi/compatibility.h
  0be6fea010f86e442ad030f82858fb73  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
! 2fa4fcaa6f3741829087f83dae5d4873  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
  3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
  13f901be7333a2072916659b04e88e8d  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
  d45eb5f70812c01e9571ca948c4da8cd  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
*************** c2f5862787920c2fc07b4f499e362a00  libstd
*** 138475,138498 ****
  d18c16b3c9c3ab2e7d487de90ec27d17  libstdc++-v3/include/bits/allocator.h
  a65f3932e944795c8e78b00d2e7f11a0  libstdc++-v3/include/bits/atomic_base.h
  7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
! 0bf65d82e78abe234a4e15c14c84874f  libstdc++-v3/include/bits/atomic_timed_wait.h
! f94cf4ee734e4fa2ce091a9513437593  libstdc++-v3/include/bits/atomic_wait.h
  3f7a7ce2588d1e8ea4f282e9f41ac292  libstdc++-v3/include/bits/basic_ios.h
  c54b27ddff7542cc6baa362f62fb5778  libstdc++-v3/include/bits/basic_ios.tcc
! c12d9fe807732868ad54545f1cc14f66  libstdc++-v3/include/bits/basic_string.h
  ae1074cab6b583707efdb40bf0099caf  libstdc++-v3/include/bits/basic_string.tcc
  858c4ad0f5f089f87e6b1feede7e0da5  libstdc++-v3/include/bits/boost_concept_check.h
  a155d2afa910d24be0955f42c4585228  libstdc++-v3/include/bits/c++0x_warning.h
! 047d91e40a978dcbedbfd761ecb495d4  libstdc++-v3/include/bits/c++config
  5384dfbb9eb9731df3aca40e40d55350  libstdc++-v3/include/bits/char_traits.h
  195dabcb74f9b313c574745539925b0e  libstdc++-v3/include/bits/charconv.h
! 2ac54ed5e0fab6bc6f771ecb2e9a9757  libstdc++-v3/include/bits/chrono.h
! cc5518c10418c2359bc69e4558d1ad10  libstdc++-v3/include/bits/chrono_io.h
  2ff73cb405cb01626a751e0fa0f339f3  libstdc++-v3/include/bits/codecvt.h
  23fc42ee8644308c793f44d20f00420e  libstdc++-v3/include/bits/concept_check.h
  e999e0783a5ca2165919f352526501e9  libstdc++-v3/include/bits/cow_string.h
  99157013f345a7984753e3d01fdd744f  libstdc++-v3/include/bits/cpp_type_traits.h
! 04bcf38ea86aaf64e794383ac7fa3a3a  libstdc++-v3/include/bits/cpyfunc_impl.h
  7cddddf44455557aa3a51978b5887fff  libstdc++-v3/include/bits/deque.tcc
  be08582d1795753f6e8fb613a7ec9fe0  libstdc++-v3/include/bits/elements_of.h
  397af990234a7f718cce0f629f7d8b13  libstdc++-v3/include/bits/enable_special_members.h
--- 138580,138603 ----
  d18c16b3c9c3ab2e7d487de90ec27d17  libstdc++-v3/include/bits/allocator.h
  a65f3932e944795c8e78b00d2e7f11a0  libstdc++-v3/include/bits/atomic_base.h
  7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
! 4cd9a8b6fc11b09815936aa0dc7bc6bc  libstdc++-v3/include/bits/atomic_timed_wait.h
! 9e4d1e459fb0dee50ef813187de0118c  libstdc++-v3/include/bits/atomic_wait.h
  3f7a7ce2588d1e8ea4f282e9f41ac292  libstdc++-v3/include/bits/basic_ios.h
  c54b27ddff7542cc6baa362f62fb5778  libstdc++-v3/include/bits/basic_ios.tcc
! a8626c36d4e92499a8be33d5646bdd2a  libstdc++-v3/include/bits/basic_string.h
  ae1074cab6b583707efdb40bf0099caf  libstdc++-v3/include/bits/basic_string.tcc
  858c4ad0f5f089f87e6b1feede7e0da5  libstdc++-v3/include/bits/boost_concept_check.h
  a155d2afa910d24be0955f42c4585228  libstdc++-v3/include/bits/c++0x_warning.h
! e3c307e48b9e12b0736fde183ffa8bd7  libstdc++-v3/include/bits/c++config
  5384dfbb9eb9731df3aca40e40d55350  libstdc++-v3/include/bits/char_traits.h
  195dabcb74f9b313c574745539925b0e  libstdc++-v3/include/bits/charconv.h
! 8a303c55e1a9a90d751641a38581e2bc  libstdc++-v3/include/bits/chrono.h
! 729d52cc106a57b28f26cc302e94d029  libstdc++-v3/include/bits/chrono_io.h
  2ff73cb405cb01626a751e0fa0f339f3  libstdc++-v3/include/bits/codecvt.h
  23fc42ee8644308c793f44d20f00420e  libstdc++-v3/include/bits/concept_check.h
  e999e0783a5ca2165919f352526501e9  libstdc++-v3/include/bits/cow_string.h
  99157013f345a7984753e3d01fdd744f  libstdc++-v3/include/bits/cpp_type_traits.h
! 1a6ab365d16951ef25f6a0b562b27ede  libstdc++-v3/include/bits/cpyfunc_impl.h
  7cddddf44455557aa3a51978b5887fff  libstdc++-v3/include/bits/deque.tcc
  be08582d1795753f6e8fb613a7ec9fe0  libstdc++-v3/include/bits/elements_of.h
  397af990234a7f718cce0f629f7d8b13  libstdc++-v3/include/bits/enable_special_members.h
*************** b194eb42ed4e3bc3a3f65805561d45c8  libstd
*** 138505,138524 ****
  b13fecc1efb3b85dacbed61c6d2a7eed  libstdc++-v3/include/bits/fs_ops.h
  5fa932fcea9eb5ed9e3683af8d5e9276  libstdc++-v3/include/bits/fs_path.h
  b3da24b61a3e8219dde982b2734707ec  libstdc++-v3/include/bits/fstream.tcc
! 1efda0b9414dbcb2a24dcc2f2c3c7311  libstdc++-v3/include/bits/funcref_impl.h
  bda3ca60f2214f1bd6656e6612aff428  libstdc++-v3/include/bits/functexcept.h
  edde9c9d1c9e267663f60a9f5cfe3ebe  libstdc++-v3/include/bits/functional_hash.h
! 6217558ddc01f2e832a716fac968c679  libstdc++-v3/include/bits/funcwrap.h
  f656180781457f5f36a26b5902da4b6f  libstdc++-v3/include/bits/gslice.h
  a94b98a38c3eb27aa6644a5fb468c9de  libstdc++-v3/include/bits/gslice_array.h
  df03a6e1a88ea69759bc32441b171cb9  libstdc++-v3/include/bits/hashtable.h
  bafd340e02d232fc7ced1eb5f68967ce  libstdc++-v3/include/bits/hashtable_policy.h
! 42122e18adc4626dd5757c66dd0b2bc4  libstdc++-v3/include/bits/indirect.h
  473034b12d8308be48d4a3b85fe19d83  libstdc++-v3/include/bits/indirect_array.h
  ab0c92c57c5ec5cb9d0bfb3a7963d00c  libstdc++-v3/include/bits/invoke.h
  11d329b94f374c9cc8f95f7e5a958ee5  libstdc++-v3/include/bits/ios_base.h
  2bc5cac03f5593d9be1d3d99b4b8f3b3  libstdc++-v3/include/bits/istream.tcc
! 397a68eebbac2594b59d178d5058fd5f  libstdc++-v3/include/bits/iterator_concepts.h
  141c7da3c057e3f798bef5a54873d5cc  libstdc++-v3/include/bits/list.tcc
  07d6a764dc4604a32ea343700b3a5a95  libstdc++-v3/include/bits/locale_classes.h
  4c9c92e77c3450c6e65949fa769d4f93  libstdc++-v3/include/bits/locale_classes.tcc
--- 138610,138629 ----
  b13fecc1efb3b85dacbed61c6d2a7eed  libstdc++-v3/include/bits/fs_ops.h
  5fa932fcea9eb5ed9e3683af8d5e9276  libstdc++-v3/include/bits/fs_path.h
  b3da24b61a3e8219dde982b2734707ec  libstdc++-v3/include/bits/fstream.tcc
! 02a8c025eda02a35e6a87a42955684fc  libstdc++-v3/include/bits/funcref_impl.h
  bda3ca60f2214f1bd6656e6612aff428  libstdc++-v3/include/bits/functexcept.h
  edde9c9d1c9e267663f60a9f5cfe3ebe  libstdc++-v3/include/bits/functional_hash.h
! 758a9f4624b07b6cd50c98ff3e88a050  libstdc++-v3/include/bits/funcwrap.h
  f656180781457f5f36a26b5902da4b6f  libstdc++-v3/include/bits/gslice.h
  a94b98a38c3eb27aa6644a5fb468c9de  libstdc++-v3/include/bits/gslice_array.h
  df03a6e1a88ea69759bc32441b171cb9  libstdc++-v3/include/bits/hashtable.h
  bafd340e02d232fc7ced1eb5f68967ce  libstdc++-v3/include/bits/hashtable_policy.h
! 1be2d01c9ba2c6e4ce4ee6f013de80b7  libstdc++-v3/include/bits/indirect.h
  473034b12d8308be48d4a3b85fe19d83  libstdc++-v3/include/bits/indirect_array.h
  ab0c92c57c5ec5cb9d0bfb3a7963d00c  libstdc++-v3/include/bits/invoke.h
  11d329b94f374c9cc8f95f7e5a958ee5  libstdc++-v3/include/bits/ios_base.h
  2bc5cac03f5593d9be1d3d99b4b8f3b3  libstdc++-v3/include/bits/istream.tcc
! 186073b3f504f950092274be6b20b5a9  libstdc++-v3/include/bits/iterator_concepts.h
  141c7da3c057e3f798bef5a54873d5cc  libstdc++-v3/include/bits/list.tcc
  07d6a764dc4604a32ea343700b3a5a95  libstdc++-v3/include/bits/locale_classes.h
  4c9c92e77c3450c6e65949fa769d4f93  libstdc++-v3/include/bits/locale_classes.tcc
*************** ebe0e043997d2c8b674df27da18dc48c  libstd
*** 138532,138538 ****
  49e58e9ec2145ed684701aa13f71f5af  libstdc++-v3/include/bits/max_size_type.h
  9eff13bd13b461742ae4d1e12f0cce28  libstdc++-v3/include/bits/memory_resource.h
  27bdede74800b12180665889a05cca6b  libstdc++-v3/include/bits/memoryfwd.h
! 9bdd2193666b79bd143f19d1111daae6  libstdc++-v3/include/bits/mofunc_impl.h
  6ac85b21a9fb05014efe9345967c51b4  libstdc++-v3/include/bits/monostate.h
  284986047a940fb75091291f654e6d43  libstdc++-v3/include/bits/move.h
  46c2f3b679b1978ddb4dff0bf8b97610  libstdc++-v3/include/bits/new_allocator.h
--- 138637,138643 ----
  49e58e9ec2145ed684701aa13f71f5af  libstdc++-v3/include/bits/max_size_type.h
  9eff13bd13b461742ae4d1e12f0cce28  libstdc++-v3/include/bits/memory_resource.h
  27bdede74800b12180665889a05cca6b  libstdc++-v3/include/bits/memoryfwd.h
! 3cdf6345e89c49a55bd7c9be035d3729  libstdc++-v3/include/bits/mofunc_impl.h
  6ac85b21a9fb05014efe9345967c51b4  libstdc++-v3/include/bits/monostate.h
  284986047a940fb75091291f654e6d43  libstdc++-v3/include/bits/move.h
  46c2f3b679b1978ddb4dff0bf8b97610  libstdc++-v3/include/bits/new_allocator.h
*************** a0ff2aff5e6b290f02129d8fd5066f94  libstd
*** 138549,138557 ****
  053e1de38aef43bbaf1a9a4af1e3ad2f  libstdc++-v3/include/bits/random.h
  924981b1c29c7c7b010418607af71d7b  libstdc++-v3/include/bits/random.tcc
  b0c29f09a819ac9aa11c3507409c11ef  libstdc++-v3/include/bits/range_access.h
! c4870f814a271600f0c3b220ce577780  libstdc++-v3/include/bits/ranges_algo.h
  2739c66cfdc38cbad18771e2317ce548  libstdc++-v3/include/bits/ranges_algobase.h
! 8805c3e4c5bcdfbc79b994570c5d5a42  libstdc++-v3/include/bits/ranges_base.h
  586727039587b10b560a902b1c7008b1  libstdc++-v3/include/bits/ranges_cmp.h
  4a47bd7ff3afbf353ca7c097f3fda6f8  libstdc++-v3/include/bits/ranges_uninitialized.h
  13ab6526ab5b8cd5e9a7b12e6bf761f6  libstdc++-v3/include/bits/ranges_util.h
--- 138654,138662 ----
  053e1de38aef43bbaf1a9a4af1e3ad2f  libstdc++-v3/include/bits/random.h
  924981b1c29c7c7b010418607af71d7b  libstdc++-v3/include/bits/random.tcc
  b0c29f09a819ac9aa11c3507409c11ef  libstdc++-v3/include/bits/range_access.h
! cf19d81d7bcf8f1af36e702f24965eb9  libstdc++-v3/include/bits/ranges_algo.h
  2739c66cfdc38cbad18771e2317ce548  libstdc++-v3/include/bits/ranges_algobase.h
! 12404cc111ad47773d8f645e76d111f3  libstdc++-v3/include/bits/ranges_base.h
  586727039587b10b560a902b1c7008b1  libstdc++-v3/include/bits/ranges_cmp.h
  4a47bd7ff3afbf353ca7c097f3fda6f8  libstdc++-v3/include/bits/ranges_uninitialized.h
  13ab6526ab5b8cd5e9a7b12e6bf761f6  libstdc++-v3/include/bits/ranges_util.h
*************** cffd73f057e9c37be8d8f13e0e97c5c0  libstd
*** 138570,138576 ****
  27e294ed24336b703f9fb025b6d69f51  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
  88c654658dd63604dd22c1f147bd3956  libstdc++-v3/include/bits/sat_arith.h
! 46c485225068f767bd33c09c42cd2e46  libstdc++-v3/include/bits/semaphore_base.h
  614b105136bea17f03ea2e00796f7f8e  libstdc++-v3/include/bits/shared_ptr.h
  23c0ae833e9a425540f0dd796ba1f1fb  libstdc++-v3/include/bits/shared_ptr_atomic.h
  b19c9b29864e7bd05e1b27c3ba9afbb4  libstdc++-v3/include/bits/shared_ptr_base.h
--- 138675,138681 ----
  27e294ed24336b703f9fb025b6d69f51  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
  88c654658dd63604dd22c1f147bd3956  libstdc++-v3/include/bits/sat_arith.h
! 4b60aa9d5174c0de92a784ea26cc1cc1  libstdc++-v3/include/bits/semaphore_base.h
  614b105136bea17f03ea2e00796f7f8e  libstdc++-v3/include/bits/shared_ptr.h
  23c0ae833e9a425540f0dd796ba1f1fb  libstdc++-v3/include/bits/shared_ptr_atomic.h
  b19c9b29864e7bd05e1b27c3ba9afbb4  libstdc++-v3/include/bits/shared_ptr_base.h
*************** de3723b929f14af1731389010c14893b  libstd
*** 138581,138591 ****
  c35a5da0369f3af2e9e202c9c8510914  libstdc++-v3/include/bits/std_function.h
  5b3bd66db6802c89905c016f488a41d0  libstdc++-v3/include/bits/std_mutex.h
  bb19c550085b43f6251959e05791f4c6  libstdc++-v3/include/bits/std_thread.h
! c8d5adfa5bf86a058ba1965ae82a2d92  libstdc++-v3/include/bits/stl_algo.h
  ba1901789908a4eca42f3ec20afebc3a  libstdc++-v3/include/bits/stl_algobase.h
  50378fb402a4f63ad663a2763f5cd08a  libstdc++-v3/include/bits/stl_bvector.h
  8b19d3c29a5f7649b167865966c49a51  libstdc++-v3/include/bits/stl_construct.h
! bf0e42750b9f0a11336d82706c33fedb  libstdc++-v3/include/bits/stl_deque.h
  8bd7e182b77be76921e6f1bead44217f  libstdc++-v3/include/bits/stl_function.h
  c6b4511debfbf2f7971dbae97dbcc998  libstdc++-v3/include/bits/stl_heap.h
  2f2000c15148ae7767daa74756a00019  libstdc++-v3/include/bits/stl_iterator.h
--- 138686,138696 ----
  c35a5da0369f3af2e9e202c9c8510914  libstdc++-v3/include/bits/std_function.h
  5b3bd66db6802c89905c016f488a41d0  libstdc++-v3/include/bits/std_mutex.h
  bb19c550085b43f6251959e05791f4c6  libstdc++-v3/include/bits/std_thread.h
! 49ff8521bb744ea31d55e5841e423121  libstdc++-v3/include/bits/stl_algo.h
  ba1901789908a4eca42f3ec20afebc3a  libstdc++-v3/include/bits/stl_algobase.h
  50378fb402a4f63ad663a2763f5cd08a  libstdc++-v3/include/bits/stl_bvector.h
  8b19d3c29a5f7649b167865966c49a51  libstdc++-v3/include/bits/stl_construct.h
! 914ee95a80c9537f434a34cddd3409fb  libstdc++-v3/include/bits/stl_deque.h
  8bd7e182b77be76921e6f1bead44217f  libstdc++-v3/include/bits/stl_function.h
  c6b4511debfbf2f7971dbae97dbcc998  libstdc++-v3/include/bits/stl_heap.h
  2f2000c15148ae7767daa74756a00019  libstdc++-v3/include/bits/stl_iterator.h
*************** c48928d63732da42056105c33cf860ff  libstd
*** 138605,138611 ****
  e090d043a8cdc4479dde4340af533938  libstdc++-v3/include/bits/stl_tempbuf.h
  eaceb582a18a6a7ee11227f1fc82b069  libstdc++-v3/include/bits/stl_tree.h
  875a120da5d87944fd151bca22a7703c  libstdc++-v3/include/bits/stl_uninitialized.h
! 2b3876a7052223fd5d8ba2a62f835c80  libstdc++-v3/include/bits/stl_vector.h
  c021eea8ffb782c5cae76e39deaa7369  libstdc++-v3/include/bits/stream_iterator.h
  69fecd7181ec71c850dba6e19cf9a58c  libstdc++-v3/include/bits/streambuf.tcc
  512415517592a497decfef44b9a855e2  libstdc++-v3/include/bits/streambuf_iterator.h
--- 138710,138716 ----
  e090d043a8cdc4479dde4340af533938  libstdc++-v3/include/bits/stl_tempbuf.h
  eaceb582a18a6a7ee11227f1fc82b069  libstdc++-v3/include/bits/stl_tree.h
  875a120da5d87944fd151bca22a7703c  libstdc++-v3/include/bits/stl_uninitialized.h
! a370f99cf5710c07aee43e033d2e6b9b  libstdc++-v3/include/bits/stl_vector.h
  c021eea8ffb782c5cae76e39deaa7369  libstdc++-v3/include/bits/stream_iterator.h
  69fecd7181ec71c850dba6e19cf9a58c  libstdc++-v3/include/bits/streambuf.tcc
  512415517592a497decfef44b9a855e2  libstdc++-v3/include/bits/streambuf_iterator.h
*************** a462fb6c466b34fa25624b7fab6323e3  libstd
*** 138627,138635 ****
  a229b5c8ad2904a3b3173239225596c4  libstdc++-v3/include/bits/valarray_array.h
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
! 7e44d906c5281d878723bac525e69466  libstdc++-v3/include/bits/vector.tcc
! d853651c7ad86b2c623638876a56db01  libstdc++-v3/include/bits/version.def
! 1263f7f3bb7e19b0cf0b109e4da9982e  libstdc++-v3/include/bits/version.h
  0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
--- 138732,138740 ----
  a229b5c8ad2904a3b3173239225596c4  libstdc++-v3/include/bits/valarray_array.h
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
! 652419a46dc988dd67c512e4f7d5638a  libstdc++-v3/include/bits/vector.tcc
! f3ae8a0a58b613ec7a9310a36c03802b  libstdc++-v3/include/bits/version.def
! 6dcea72a24d5be0fc41e19a22714f039  libstdc++-v3/include/bits/version.h
  0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
*************** f1cc3238df41adc204bc4f90accc63f3  libstd
*** 139175,139186 ****
  9641fe465599079a5bc733f08bd242eb  libstdc++-v3/include/pstl/unseq_backend_simd.h
  6e7da3aed3b413aec47ea7457e6ea726  libstdc++-v3/include/pstl/utils.h
  2bd04b33c3c9ee14ba8890fcbceb4328  libstdc++-v3/include/std/.editorconfig
! 9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
  0629d22f554a52275f62402292b23e12  libstdc++-v3/include/std/atomic
  d1730a41b18e21cbac0f5328aad2d223  libstdc++-v3/include/std/barrier
! 3522a71755241728e1ff2d4f931ff5be  libstdc++-v3/include/std/bit
  5651be4f16ccfbe8539766c53154dc20  libstdc++-v3/include/std/bitset
  3fca3267513b72857aff767e71c81692  libstdc++-v3/include/std/charconv
  cb5ee04f24eb3f44950a511e7d8fd2e7  libstdc++-v3/include/std/chrono
--- 139280,139291 ----
  9641fe465599079a5bc733f08bd242eb  libstdc++-v3/include/pstl/unseq_backend_simd.h
  6e7da3aed3b413aec47ea7457e6ea726  libstdc++-v3/include/pstl/utils.h
  2bd04b33c3c9ee14ba8890fcbceb4328  libstdc++-v3/include/std/.editorconfig
! d26c17df4d8dbf3f28df91e901fb1ae2  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
  0629d22f554a52275f62402292b23e12  libstdc++-v3/include/std/atomic
  d1730a41b18e21cbac0f5328aad2d223  libstdc++-v3/include/std/barrier
! 66a9c513e3e5b0698ace3297c819bdcf  libstdc++-v3/include/std/bit
  5651be4f16ccfbe8539766c53154dc20  libstdc++-v3/include/std/bitset
  3fca3267513b72857aff767e71c81692  libstdc++-v3/include/std/charconv
  cb5ee04f24eb3f44950a511e7d8fd2e7  libstdc++-v3/include/std/chrono
*************** c3c1dced3bd41cb17dfb1d65d089f9d3  libstd
*** 139193,139201 ****
  ae96a272e65886b9386e26db37971da1  libstdc++-v3/include/std/execution
  13f5f9752c9229e8ce2f5a145ba63b2a  libstdc++-v3/include/std/expected
  c2e511ae49957a9f02446e544d201582  libstdc++-v3/include/std/filesystem
! 9a3c9583f416afcb392d75d922d864a1  libstdc++-v3/include/std/flat_map
  8a5fa0a4bb554b2db8c2fed26a6993ca  libstdc++-v3/include/std/flat_set
! 185c76e0066f6c1f63b259bc67e3671e  libstdc++-v3/include/std/format
  fa4316749922813b44f2ee282452813b  libstdc++-v3/include/std/forward_list
  e790ae6877466aa86b47f36d201e8563  libstdc++-v3/include/std/fstream
  866d33497e4338e4e1a5289de701f9ba  libstdc++-v3/include/std/functional
--- 139298,139306 ----
  ae96a272e65886b9386e26db37971da1  libstdc++-v3/include/std/execution
  13f5f9752c9229e8ce2f5a145ba63b2a  libstdc++-v3/include/std/expected
  c2e511ae49957a9f02446e544d201582  libstdc++-v3/include/std/filesystem
! 5aa136a1aaeb7658dee6ccdd5cb6e5c6  libstdc++-v3/include/std/flat_map
  8a5fa0a4bb554b2db8c2fed26a6993ca  libstdc++-v3/include/std/flat_set
! 37992e3139c3ee4583504aec5cf58ff6  libstdc++-v3/include/std/format
  fa4316749922813b44f2ee282452813b  libstdc++-v3/include/std/forward_list
  e790ae6877466aa86b47f36d201e8563  libstdc++-v3/include/std/fstream
  866d33497e4338e4e1a5289de701f9ba  libstdc++-v3/include/std/functional
*************** c9ef2791c2dc0d6c98a1a85c8f6aa473  libstd
*** 139213,139219 ****
  f4af31191dea172207576960ad71d42d  libstdc++-v3/include/std/locale
  8b76fc7da76f0579c2fd1f22821d03be  libstdc++-v3/include/std/map
  1acc29ca9bc70866ca3b49f2fd2d6c5b  libstdc++-v3/include/std/mdspan
! 0520cac0dd2a0a1a25f885c7830b6051  libstdc++-v3/include/std/memory
  9e86c11ff29d60fddf403674e9182b36  libstdc++-v3/include/std/memory_resource
  a7b8e00d6cf56ea696ec15140b7c1d15  libstdc++-v3/include/std/mutex
  ef0d0725f5b70a4c1b5b62b84b2b63f7  libstdc++-v3/include/std/numbers
--- 139318,139324 ----
  f4af31191dea172207576960ad71d42d  libstdc++-v3/include/std/locale
  8b76fc7da76f0579c2fd1f22821d03be  libstdc++-v3/include/std/map
  1acc29ca9bc70866ca3b49f2fd2d6c5b  libstdc++-v3/include/std/mdspan
! 2b8d6320d7f5a907bf3c094dcbe4d9f5  libstdc++-v3/include/std/memory
  9e86c11ff29d60fddf403674e9182b36  libstdc++-v3/include/std/memory_resource
  a7b8e00d6cf56ea696ec15140b7c1d15  libstdc++-v3/include/std/mutex
  ef0d0725f5b70a4c1b5b62b84b2b63f7  libstdc++-v3/include/std/numbers
*************** b944796362aa39fc1cba3747d2247464  libstd
*** 139227,139233 ****
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
  400d95a1fd416911b5c47562d7a586cf  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
! 29188a81b4040317360024eb2b7e3e61  libstdc++-v3/include/std/semaphore
  9b8d5c4868a64371c6591ccd2d8ae5f0  libstdc++-v3/include/std/set
  ee32950ba29d7cda3e788de0776d8c16  libstdc++-v3/include/std/shared_mutex
  61856a4d90554afdb8c60710d5dea8c5  libstdc++-v3/include/std/source_location
--- 139332,139338 ----
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
  400d95a1fd416911b5c47562d7a586cf  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
! 91c6fab351369373bcb191b27bc13900  libstdc++-v3/include/std/semaphore
  9b8d5c4868a64371c6591ccd2d8ae5f0  libstdc++-v3/include/std/set
  ee32950ba29d7cda3e788de0776d8c16  libstdc++-v3/include/std/shared_mutex
  61856a4d90554afdb8c60710d5dea8c5  libstdc++-v3/include/std/source_location
*************** f5759070e24ce7ac653599ead1274a2d  libstd
*** 139238,139244 ****
  ceee5b8e3956e8b0b5cf0c37821eb61a  libstdc++-v3/include/std/stacktrace
  03274bc404214a9a2c8235a5ae90f4fd  libstdc++-v3/include/std/stdexcept
  ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
! ce747bb13a47b4ef33f5a3d2d11c472f  libstdc++-v3/include/std/stop_token
  56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
  905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
  c5a4df8fdbbe4b3d33d0b52db500e16d  libstdc++-v3/include/std/string_view
--- 139343,139349 ----
  ceee5b8e3956e8b0b5cf0c37821eb61a  libstdc++-v3/include/std/stacktrace
  03274bc404214a9a2c8235a5ae90f4fd  libstdc++-v3/include/std/stdexcept
  ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
! f94da7d8b23732e753bad8cc986bedd1  libstdc++-v3/include/std/stop_token
  56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
  905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
  c5a4df8fdbbe4b3d33d0b52db500e16d  libstdc++-v3/include/std/string_view
*************** c5a4df8fdbbe4b3d33d0b52db500e16d  libstd
*** 139247,139253 ****
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  7cdac9ea092e51e067047e2b3fb2060e  libstdc++-v3/include/std/thread
  af3d3134c33d40c51e1d3493f1fb7cc4  libstdc++-v3/include/std/tuple
! 616a544220511645637b756b8541cbbc  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
  c82be32edefaa23cc1228b092d319315  libstdc++-v3/include/std/unordered_set
--- 139352,139358 ----
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  7cdac9ea092e51e067047e2b3fb2060e  libstdc++-v3/include/std/thread
  af3d3134c33d40c51e1d3493f1fb7cc4  libstdc++-v3/include/std/tuple
! a226c77b238f160c30a4815500ae57d2  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
  c82be32edefaa23cc1228b092d319315  libstdc++-v3/include/std/unordered_set
*************** e66e202fb59625eb933c316b0bf9ee34  libstd
*** 139545,139551 ****
  6bbe101ec337afce54e0c8dee6fdd6d3  libstdc++-v3/src/c++17/uint128_t.h
  b077554d5097430340afb0af8789ea1a  libstdc++-v3/src/c++20/Makefile.am
  a70eb0f686f8378eddb86ac7513b4c9a  libstdc++-v3/src/c++20/Makefile.in
! 05b9269e2a6b70c0137a3caaff658ad4  libstdc++-v3/src/c++20/atomic.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
  e9e89f4578e59d252e4caaf0b63d6dfb  libstdc++-v3/src/c++20/tzdata.zi
--- 139650,139656 ----
  6bbe101ec337afce54e0c8dee6fdd6d3  libstdc++-v3/src/c++17/uint128_t.h
  b077554d5097430340afb0af8789ea1a  libstdc++-v3/src/c++20/Makefile.am
  a70eb0f686f8378eddb86ac7513b4c9a  libstdc++-v3/src/c++20/Makefile.in
! 44b19f393472c9494f63f59cbe9fe25f  libstdc++-v3/src/c++20/atomic.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
  e9e89f4578e59d252e4caaf0b63d6dfb  libstdc++-v3/src/c++20/tzdata.zi
*************** d85f3a53465585d54b96880e79456c79  libstd
*** 139556,139562 ****
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 97e12936d967ba1f57b5e77ffdeba0e9  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  97527213996a1ca6a0910b1ab5f6c3a3  libstdc++-v3/src/c++26/Makefile.am
  5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
--- 139661,139667 ----
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 54fe1c43fad6dfb23bc4c5910ad45ce7  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  97527213996a1ca6a0910b1ab5f6c3a3  libstdc++-v3/src/c++26/Makefile.am
  5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
*************** a3b9ca97435d798fd3f8c7bb4032ebd9  libstd
*** 140089,140098 ****
  414f2d4aa5542289673f653f70daf19e  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
  7c993d1a79f9898222dd51d8ce772ec0  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
  d3dd0426932e9c536f4b38fbebb59b84  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 6b16236bcc6a48e948577e16b773d58c  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
  09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
! 803b1e189d5ddb97ddf470bc478e2291  libstdc++-v3/testsuite/20_util/copyable_function/conv.cc
  f2d2d2bd40840c1534687ec3fbd7dcfd  libstdc++-v3/testsuite/20_util/copyable_function/copy.cc
  a2d4d3098924fba867e2bdd0e868f984  libstdc++-v3/testsuite/20_util/copyable_function/move.cc
  8e23784a64bbd4264903dd6f0e5d6ca3  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
  4f2ff053f2863571ccf7c9b5578267db  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
--- 140194,140204 ----
  414f2d4aa5542289673f653f70daf19e  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
  7c993d1a79f9898222dd51d8ce772ec0  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
  d3dd0426932e9c536f4b38fbebb59b84  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 5af7dbdaf6a9f788a46b6f6674d5bd9e  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
  09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
! d08c6d7092cbc05d4491a4d25574eea5  libstdc++-v3/testsuite/20_util/copyable_function/conv.cc
  f2d2d2bd40840c1534687ec3fbd7dcfd  libstdc++-v3/testsuite/20_util/copyable_function/copy.cc
+ b5b62c4ed58b361b1b583217e7f3f5b5  libstdc++-v3/testsuite/20_util/copyable_function/incomplete_neg.cc
  a2d4d3098924fba867e2bdd0e868f984  libstdc++-v3/testsuite/20_util/copyable_function/move.cc
  8e23784a64bbd4264903dd6f0e5d6ca3  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
  4f2ff053f2863571ccf7c9b5578267db  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
*************** ae2ce9313b5b55e9f92c8d0a2fdcd6ba  libstd
*** 140302,140312 ****
  d0675e06358623699e0ac00ab3a3b4ff  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
  aaf31ad5f5751b35d44492f62dcf0929  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
  f75ada21895a46443c0cf6c6c4272819  libstdc++-v3/testsuite/20_util/function_ref/assign.cc
! 0b6df94ae01a6ff6d9ad55670d292d3e  libstdc++-v3/testsuite/20_util/function_ref/call.cc
  e6bab8c83483438e3bf29c2ea7c9df3b  libstdc++-v3/testsuite/20_util/function_ref/cons.cc
  3de18ca48e3562cca5c9ed68264b9830  libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
! 2dc395f781a824c875fe168bd37ff7a8  libstdc++-v3/testsuite/20_util/function_ref/conv.cc
  251b2d0a159c5328e727be53f574da1f  libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
  07ac98f7c18f41e232e70b8b3bbe462d  libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
  73764ddebcfc0e9d84061e05bfaa4b19  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
  602383b745f03a3986179ef6272aa326  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
--- 140408,140419 ----
  d0675e06358623699e0ac00ab3a3b4ff  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
  aaf31ad5f5751b35d44492f62dcf0929  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
  f75ada21895a46443c0cf6c6c4272819  libstdc++-v3/testsuite/20_util/function_ref/assign.cc
! 8440f806f3ce4af7f88b77407d17a9a5  libstdc++-v3/testsuite/20_util/function_ref/call.cc
  e6bab8c83483438e3bf29c2ea7c9df3b  libstdc++-v3/testsuite/20_util/function_ref/cons.cc
  3de18ca48e3562cca5c9ed68264b9830  libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
! 6769087af53b9f703272c8bf23f3c862  libstdc++-v3/testsuite/20_util/function_ref/conv.cc
  251b2d0a159c5328e727be53f574da1f  libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
+ fe11d1f21c6bd06aa902315e0eb169b2  libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc
  07ac98f7c18f41e232e70b8b3bbe462d  libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
  73764ddebcfc0e9d84061e05bfaa4b19  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
  602383b745f03a3986179ef6272aa326  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
*************** fb519a4b4b950e75c7541408b2c1f711  libstd
*** 140697,140705 ****
  3a7fc4002948841398e165a8c78094b6  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
  4bdefefb0438a5b9e79b07a712ef66f1  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
  1d1a8b8a8d0549a7606a768d5eeae646  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
! a19a61e76c22fb2ad58c016b04a92d9d  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
  a3d46eda1cd19ee59590b7e89ae8f69e  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
! c44c827c39a1268af7dd63f524c856b9  libstdc++-v3/testsuite/20_util/move_only_function/conv.cc
  c1251c13c980f553cec1234149e46952  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
  cf58b13b168563fa8fea60315876bccb  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
  9fcafb98ed0f6058577644e7dfae368d  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
--- 140804,140813 ----
  3a7fc4002948841398e165a8c78094b6  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
  4bdefefb0438a5b9e79b07a712ef66f1  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
  1d1a8b8a8d0549a7606a768d5eeae646  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
! 9da33f150a40ad4e22d4db6e67518139  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
  a3d46eda1cd19ee59590b7e89ae8f69e  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
! 481a7ae1c6272ea9f31ce6b72c951deb  libstdc++-v3/testsuite/20_util/move_only_function/conv.cc
! 6d0ef91fda28c1d7c858259ba2222847  libstdc++-v3/testsuite/20_util/move_only_function/incomplete_neg.cc
  c1251c13c980f553cec1234149e46952  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
  cf58b13b168563fa8fea60315876bccb  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
  9fcafb98ed0f6058577644e7dfae368d  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
*************** ec6997cdd9a94dff1e8525a338851cc5  libstd
*** 141130,141135 ****
--- 141238,141244 ----
  2a6a31d77778debf3fc91b1cea557b6b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
  a30e63b74d043813ec682fada12affcf  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
  b1affac1600571c2a58ec6515df38a45  libstdc++-v3/testsuite/20_util/system_clock/1.cc
+ 3df5d35bbcbd9760389b0f913b3844dc  libstdc++-v3/testsuite/20_util/system_clock/99832.cc
  8aa7e890744708e387c4df2ef0ccd70e  libstdc++-v3/testsuite/20_util/system_clock/constexpr_data.cc
  873e1494b6fbf3f61d9ef79c899f447a  libstdc++-v3/testsuite/20_util/temporary_buffer.cc
  5d657fa8f16a4aecffcad1fb7165bb7b  libstdc++-v3/testsuite/20_util/time_point/1.cc
*************** c5f32b33de65013c0fc106b121d9adb9  libstd
*** 142696,142702 ****
  66d8e0b64dc2f55b235d2a74c80953c3  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
  2ef42205ec9719ecefddda3ad2adc42a  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
  ca98b78997105b8f93c1c653568b6095  libstdc++-v3/testsuite/23_containers/deque/version.cc
! 4aca23a1e685aa528cdd1856f1e726cf  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
  710f5ae26fb931929eec91619c0d93b9  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
  9b2f42aff2cc15dfd3a3f7693a799f84  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
  76d6af8252b5ad047167bd10312d53bc  libstdc++-v3/testsuite/23_containers/flat_set/1.cc
--- 142805,142811 ----
  66d8e0b64dc2f55b235d2a74c80953c3  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
  2ef42205ec9719ecefddda3ad2adc42a  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
  ca98b78997105b8f93c1c653568b6095  libstdc++-v3/testsuite/23_containers/deque/version.cc
! 1492854298ee7b1d66830e5105c20370  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
  710f5ae26fb931929eec91619c0d93b9  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
  9b2f42aff2cc15dfd3a3f7693a799f84  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
  76d6af8252b5ad047167bd10312d53bc  libstdc++-v3/testsuite/23_containers/flat_set/1.cc
*************** adc2648dfe1a7935b7056247fe6a464c  libstd
*** 144449,144454 ****
--- 144558,144564 ----
  3a74b3aece4270d0428dedf9edad4fd1  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
  fb3438dc74bb18899d6862fa0a336f0d  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
  f6209221dd7311dbe1d42f0de88a731e  libstdc++-v3/testsuite/25_algorithms/default_template_value.cc
+ 574ef91b3f4ec1f13b9d9e79b4999fee  libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc
  480e89db71d3dc273b8a94f68c6ca8a5  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
  da701df52f121ca10189a8abe1f5e2af  libstdc++-v3/testsuite/25_algorithms/equal/101485.cc
  fef2789a32f1fdce19d3ec94d109104a  libstdc++-v3/testsuite/25_algorithms/equal/2.cc
*************** bfa5e3860296b4181f34cde9caeac92f  libstd
*** 145074,145079 ****
--- 145184,145190 ----
  aed5b5a1bbd68cf60e20fcece3ee0863  libstdc++-v3/testsuite/25_algorithms/stable_sort/overaligned.cc
  1518c073deb3f2c39cdf5c09da636943  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
  418e36cf4cf27f47b0792b634f97a1a1  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/pod.cc
+ ed6f6f508ec323519c9a830fd0d89140  libstdc++-v3/testsuite/25_algorithms/starts_with/1.cc
  23e3dbfe578ca46a82c7382e4f6ffea3  libstdc++-v3/testsuite/25_algorithms/swap/68877.cc
  221e743662b6406dd6a2e8dc22549874  libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
  909f0d7c881a2b61f0f9fa468c5db6a3  libstdc++-v3/testsuite/25_algorithms/swap/dr809.cc
*************** bccc2620741d0bb50ee990ac03515498  libstd
*** 145107,145112 ****
--- 145218,145224 ----
  9017b16aa2b3514d77f2217dfa840239  libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
  025c3b6404eb8b477ce9e6cfe7cc6c9f  libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
  8aa85ba6eb17f92a2514e964dece3932  libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
+ 91cc68ce8cc7db1c1695fb98cc9cad50  libstdc++-v3/testsuite/25_algorithms/unique_copy/lwg2439.cc
  7919be45417a16080b52507c963b33aa  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
  344dbd3215f1a1cbbdecbd992213837c  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/pod.cc
  114cc2af89a8c0c92666c66a57ad7d45  libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
*************** d508988e912552a146d894cae609ff0a  libstd
*** 147114,147121 ****
  012a28a975155453dc4d1a1a42b83c05  libstdc++-v3/testsuite/30_threads/async/launch.cc
  0ab71466a096fb9b01892baae2d90094  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
  60a42d79d9965410b9f49c6e650d3b26  libstdc++-v3/testsuite/30_threads/async/sync.cc
! 000429d401150382fad415f2a5edcfef  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! d64918f853977f3af217ab9dc4e7db07  libstdc++-v3/testsuite/30_threads/barrier/2.cc
  2e4b4a1edc554b62a8dec9a53502f295  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
  a5d6607362cb1730b0eb170378baada8  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
  d44eb2ed4480e7bdd222001853336093  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
--- 147226,147233 ----
  012a28a975155453dc4d1a1a42b83c05  libstdc++-v3/testsuite/30_threads/async/launch.cc
  0ab71466a096fb9b01892baae2d90094  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
  60a42d79d9965410b9f49c6e650d3b26  libstdc++-v3/testsuite/30_threads/async/sync.cc
! 840bbb3f8257760b883eb31d10abea0b  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! d6c00dbb775c084ce351ec3506b25c96  libstdc++-v3/testsuite/30_threads/barrier/2.cc
  2e4b4a1edc554b62a8dec9a53502f295  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
  a5d6607362cb1730b0eb170378baada8  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
  d44eb2ed4480e7bdd222001853336093  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
*************** c08ecc556763caa8424e75d0366adda3  libstd
*** 147311,147322 ****
  6d91a3500350913fb0ad2c995ac5c8b5  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/nodiscard.cc
  f4a8a2d74bc16221b34e102342dd7256  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
  a5016633d435a0151778486da6a6bb36  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! ca8bc8826b00f7ab2b7b4922e5f675c6  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
  57c8658b1850c9bcf97a3d0f4692e542  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! 6c93d0876a2bf86d96675d4c9a30d8b7  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! 2b0ad80e57172787d7d892d819efc6a6  libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
! 9b53d7368cacb8dc413d6a74cb85bcb5  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! 5afa3086b34916390261ea23a2491501  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
  4f207de1d73d5bd34d9e8795669f8336  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
  c9dd80031d6b79f53eaac381d40b5587  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
  c5cb880fec7ba8a061cab8fbdfa71e18  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
--- 147423,147438 ----
  6d91a3500350913fb0ad2c995ac5c8b5  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/nodiscard.cc
  f4a8a2d74bc16221b34e102342dd7256  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
  a5016633d435a0151778486da6a6bb36  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! 5ba2494d3ab4e511e04790fcc50d313d  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
  57c8658b1850c9bcf97a3d0f4692e542  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! 793ba6602c4ef1d90597853cc48da8c0  libstdc++-v3/testsuite/30_threads/semaphore/104928-2.cc
! bbad618d0600ff51ebf158402e336f56  libstdc++-v3/testsuite/30_threads/semaphore/104928.cc
! 08690d8a8bb29da6c41669aa1a08acdb  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! f9b61c3e90198cb11778c83744270868  libstdc++-v3/testsuite/30_threads/semaphore/3.cc
! a1b75b087a553d7bd454e8afd100015c  libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
! 50bbb3b91d48e84e674e5d633c6e6ebe  libstdc++-v3/testsuite/30_threads/semaphore/cons_neg.cc
! b193f0b053da9d3d193796a7d1961722  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! 87d0d445a39c2df1fb181b006c20cad0  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
  4f207de1d73d5bd34d9e8795669f8336  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
  c9dd80031d6b79f53eaac381d40b5587  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
  c5cb880fec7ba8a061cab8fbdfa71e18  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
*************** e7d2a20ce851bd6197787606fcea68bd  libstd
*** 148696,148702 ****
  9da8b451d80f7ce437c2c7f6cfcee138  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
  a1d452e66d840a306985b18ad9ae0a8e  libstdc++-v3/testsuite/std/format/functions/107871.cc
  a7244ffd437f4addc853cfdd012c5cba  libstdc++-v3/testsuite/std/format/functions/114519.cc
! 65da57eca7a76cae7e4d9d49643039ed  libstdc++-v3/testsuite/std/format/functions/format.cc
  8ee425f04d2e4782e67ab2eb62208b7f  libstdc++-v3/testsuite/std/format/functions/format_to.cc
  c5e2b63672ec2df6fdcba9b4e1ba3ba0  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
  f859e29ec6cd7017c9d0abc60ed4b8ce  libstdc++-v3/testsuite/std/format/functions/size.cc
--- 148812,148818 ----
  9da8b451d80f7ce437c2c7f6cfcee138  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
  a1d452e66d840a306985b18ad9ae0a8e  libstdc++-v3/testsuite/std/format/functions/107871.cc
  a7244ffd437f4addc853cfdd012c5cba  libstdc++-v3/testsuite/std/format/functions/114519.cc
! 2e322d829887ddbcbe464445bc11e93f  libstdc++-v3/testsuite/std/format/functions/format.cc
  8ee425f04d2e4782e67ab2eb62208b7f  libstdc++-v3/testsuite/std/format/functions/format_to.cc
  c5e2b63672ec2df6fdcba9b4e1ba3ba0  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
  f859e29ec6cd7017c9d0abc60ed4b8ce  libstdc++-v3/testsuite/std/format/functions/size.cc
*************** b66acde099f00f183d242567d716ce77  libstd
*** 148723,148728 ****
--- 148839,148852 ----
  47d2f6e77c7a9f2340bdb3f3d4b87adb  libstdc++-v3/testsuite/std/memory/indirect/move.cc
  f7f913b9b36585aa320d330e01a6161e  libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc
  bd53b7a3045c16d0fa75e9a8be586efe  libstdc++-v3/testsuite/std/memory/indirect/relops.cc
+ 903cd9d083a7483a17a37e37f0cbf23b  libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
+ 74a07b93bb4cfda7416d07fa87ee3aef  libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc
+ 7fb928d35c89f294587a06af2af7d42d  libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
+ 923de47eb314b7d7214f5612afcfd1b9  libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
+ 55ac719ef5aacc445ff21a9ba04af7db  libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc
+ f8c9db32ebd1429bbaf2c1ead8562583  libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc
+ 9730632888af8b3b61abea4eec29259d  libstdc++-v3/testsuite/std/memory/polymorphic/move.cc
+ bcef9a9c26c1010ff275c4ccac1aa60f  libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc
  716be24e6491ab60adb349f3f5c0b720  libstdc++-v3/testsuite/std/ranges/97600.cc
  9f1ea1f1671d48aea7ae18a55694c05d  libstdc++-v3/testsuite/std/ranges/access/101782.cc
  ccd1ddf5ca05fc6916f617c3d3b1a4c6  libstdc++-v3/testsuite/std/ranges/access/begin.cc
*************** a87e1152f6bc2804b93ce070a51eeb54  libstd
*** 148849,148861 ****
  61d414725d4c256089a1075c566c8b58  libstdc++-v3/testsuite/std/time/day/1.cc
  9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
  1cfa2f31c3dde7297b8ca55ba69d3f47  libstdc++-v3/testsuite/std/time/exceptions.cc
! 797c16d4856f9d25867258ef9a3bd8dd  libstdc++-v3/testsuite/std/time/format/empty_spec.cc
  90714e66b9741259bb9b9cd2ea23288c  libstdc++-v3/testsuite/std/time/format/format.cc
  06b738d93b3d78681b0da48efd0a60bf  libstdc++-v3/testsuite/std/time/format/localized.cc
  9cd4d6791c125e40939cae77277f928d  libstdc++-v3/testsuite/std/time/format/pr117085.cc
  419cdd8872b10325a937888fac85a489  libstdc++-v3/testsuite/std/time/format/pr117214.cc
  107c8c7bd6daa477dad84b5cfee3eacf  libstdc++-v3/testsuite/std/time/format/pr119517.cc
  7151cef2bf017dd6ee0e0ee9830b8909  libstdc++-v3/testsuite/std/time/format/pr120114.cc
  2be47743c9d490923037b020cfc220b7  libstdc++-v3/testsuite/std/time/freestanding.cc
  e1b4a0af956607fcdfe6d75e391ae49c  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
  4ba93d13314c788e419728411ae7229d  libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
--- 148973,148986 ----
  61d414725d4c256089a1075c566c8b58  libstdc++-v3/testsuite/std/time/day/1.cc
  9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
  1cfa2f31c3dde7297b8ca55ba69d3f47  libstdc++-v3/testsuite/std/time/exceptions.cc
! 232121c736ea4ba023897e7763bae5f0  libstdc++-v3/testsuite/std/time/format/empty_spec.cc
  90714e66b9741259bb9b9cd2ea23288c  libstdc++-v3/testsuite/std/time/format/format.cc
  06b738d93b3d78681b0da48efd0a60bf  libstdc++-v3/testsuite/std/time/format/localized.cc
  9cd4d6791c125e40939cae77277f928d  libstdc++-v3/testsuite/std/time/format/pr117085.cc
  419cdd8872b10325a937888fac85a489  libstdc++-v3/testsuite/std/time/format/pr117214.cc
  107c8c7bd6daa477dad84b5cfee3eacf  libstdc++-v3/testsuite/std/time/format/pr119517.cc
  7151cef2bf017dd6ee0e0ee9830b8909  libstdc++-v3/testsuite/std/time/format/pr120114.cc
+ 221e74ad2b0f227283788794cb55e1f8  libstdc++-v3/testsuite/std/time/format/pr120481.cc
  2be47743c9d490923037b020cfc220b7  libstdc++-v3/testsuite/std/time/freestanding.cc
  e1b4a0af956607fcdfe6d75e391ae49c  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
  4ba93d13314c788e419728411ae7229d  libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
diff -Nrcpad gcc-16-20250601/c++tools/ChangeLog gcc-16-20250608/c++tools/ChangeLog
*** gcc-16-20250601/c++tools/ChangeLog	Sun Jun  1 22:32:12 2025
--- gcc-16-20250608/c++tools/ChangeLog	Sun Jun  8 22:32:15 2025
***************
*** 1,3 ****
--- 1,8 ----
+ 2025-06-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* configure.ac: Don't check `--enable-default-pie`.
+ 	* configure: Regen.
+ 
  2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	* configure.ac (ax_lib_socket_nsl.m4): Don't sinclude.
diff -Nrcpad gcc-16-20250601/c++tools/configure gcc-16-20250608/c++tools/configure
*** gcc-16-20250601/c++tools/configure	Sun Jun  1 22:32:12 2025
--- gcc-16-20250608/c++tools/configure	Sun Jun  8 22:32:15 2025
*************** enable_option_checking
*** 700,706 ****
  enable_c___tools
  enable_maintainer_mode
  enable_checking
- enable_default_pie
  enable_host_pie
  enable_host_bind_now
  with_gcc_major_version_only
--- 700,705 ----
*************** Optional Features:
*** 1335,1341 ****
                            enable expensive run-time checks. With LIST, enable
                            only specific categories of checks. Categories are:
                            yes,no,all,none,release.
-   --enable-default-pie    enable Position Independent Executable as default
    --enable-host-pie       build host code as PIE
    --enable-host-bind-now  link host code as BIND_NOW
  
--- 1334,1339 ----
*************** $as_echo "#define ENABLE_ASSERT_CHECKING
*** 2946,2960 ****
  
  fi
  
- # Check whether --enable-default-pie was given.
- # Check whether --enable-default-pie was given.
- if test "${enable_default_pie+set}" = set; then :
-   enableval=$enable_default_pie; PICFLAG=-fPIE
- else
-   PICFLAG=
- fi
- 
- 
  # Enable --enable-host-pie
  # Check whether --enable-host-pie was given.
  if test "${enable_host_pie+set}" = set; then :
--- 2944,2949 ----
diff -Nrcpad gcc-16-20250601/c++tools/configure.ac gcc-16-20250608/c++tools/configure.ac
*** gcc-16-20250601/c++tools/configure.ac	Sun Jun  1 22:32:12 2025
--- gcc-16-20250608/c++tools/configure.ac	Sun Jun  8 22:32:15 2025
*************** if test x$ac_assert_checking != x ; then
*** 97,108 ****
  [Define if you want assertions enabled.  This is a cheap check.])
  fi
  
- # Check whether --enable-default-pie was given.
- AC_ARG_ENABLE(default-pie,
- [AS_HELP_STRING([--enable-default-pie],
- 		  [enable Position Independent Executable as default])],
- [PICFLAG=-fPIE], [PICFLAG=])
- 
  # Enable --enable-host-pie
  AC_ARG_ENABLE(host-pie,
  [AS_HELP_STRING([--enable-host-pie],
--- 97,102 ----
diff -Nrcpad gcc-16-20250601/gcc/ChangeLog gcc-16-20250608/gcc/ChangeLog
*** gcc-16-20250601/gcc/ChangeLog	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ChangeLog	Sun Jun  8 22:32:15 2025
***************
*** 1,3 ****
--- 1,590 ----
+ 2025-06-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ 	riscv_extend_comparands to extend sub-word comparison arguments.
+ 
+ 2025-06-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120572
+ 	* doc/invoke.texi (Wmusttail-local-addr,
+ 	Wno-maybe-musttail-local-addr): Fix opindex.
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc (struct html_doctypedecl): New.
+ 	(html_builder::html_builder): Use it to populate the document's
+ 	m_doctypedecl.
+ 	* xml.cc (xml::document::write_as_xml): Replace hardcoded HTML DTD
+ 	with use of m_doctypedecl field.
+ 	(selftest::test_no_dtd): New.
+ 	(selftest::xml_cc_tests): New.
+ 	* xml.h (struct doctypedecl): New decl.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add xml.o.
+ 	* diagnostic-format-html.cc (namespace xml): Move implementation
+ 	to xml.cc
+ 	(selftest::test_printer): Likewise.
+ 	(selftest::test_attribute_ordering): Likewise.
+ 	(selftest::diagnostic_format_html_cc_tests): Don't call the moved
+ 	tests here; they will be called from xml_cc_tests in xml.cc.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call xml_cc_tests.
+ 	* selftest.h (selftest::xml_cc_tests): New decl.
+ 	* xml.cc: New file, based on material from
+ 	diagnostic-format-html.cc.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* selftest.h: Fix the sorting of the various *_cc_tests decls.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* text-art/widget.cc (selftest::test_empty_wrapper_widget): New.
+ 	(selftest::text_art_widget_cc_tests): Call it.
+ 	* text-art/widget.h (text_art::wrapper_widget::calc_req_size):
+ 	Gracefully handle m_child being null.
+ 	(text_art::wrapper_widget::update_child_alloc_rects): Likewise.
+ 	(text_art::wrapper_widget::paint_to_canvas): Likewise.
+ 
+ 2025-06-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add vphi argument.
+ 	Manually update the vphi and new_stmt vdef/lhs.
+ 	(cond_if_else_store_replacement): Update call to cond_if_else_store_replacement_1.
+ 
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* gimple-fold.cc (gimple_fold_builtin_omp_get_initial_device,
+ 	gimple_fold_builtin_omp_get_num_devices): New.
+ 	(gimple_fold_builtin): Call them.
+ 	* omp-builtins.def (BUILT_IN_OMP_GET_INITIAL_DEVICE): Add
+ 	(BUILT_IN_OMP_GET_NUM_DEVICES): Make uservisible + pure.
+ 
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* builtins.def (DEF_GOACC_BUILTIN_COMPILER, DEF_GOMP_BUILTIN_COMPILER):
+ 	Set NONANSI_P = false to enable those also with -fno-nonansi-builtins.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Remove
+ 	non-SLP path.
+ 	(get_load_store_type): Likewise.
+ 
+ 2025-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
+ 	case UDIV.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op divu.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Remove non-SLP
+ 	paths.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-fold.h (create_tmp_reg_or_ssa_name): Remove.
+ 	* gimple-fold.cc (create_tmp_reg_or_ssa_name): Likewise.
+ 	(gimple_fold_builtin_memory_op): Use make_ssa_name.
+ 	(gimple_fold_builtin_strchr): Likewise.
+ 	(gimple_fold_builtin_strcat): Likewise.
+ 	(gimple_load_first_char): Likewise.
+ 	(gimple_fold_builtin_string_compare): Likewise.
+ 	(gimple_build): Likewise.
+ 	* tree-inline.cc (copy_bb): Likewise.
+ 	* config/rs6000/rs6000-builtin.cc (fold_build_vec_cmp): Likewise.
+ 	(rs6000_gimple_fold_mma_builtin): Likewise.
+ 	(rs6000_gimple_fold_builtin): Likewise.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* expr.cc (store_constructor) <ARRAY_TYPE>: Perform the arithmetics
+ 	on offsets in (unsigned) sizetype.
+ 
+ 2025-06-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* coverage.cc (coverage_init): Return early when in LTO
+ 
+ 2025-06-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* profile-count.cc (profile_count::to_sreal_scale): Special case 0 of autofdo.
+ 	(profile_count::combine_with_ipa_count): If outer function has GLOBAL0 profile
+ 	but innter counter has non-zero profile, force it to be 0.
+ 
+ 2025-06-06  Jiawei  <jiawei@iscas.ac.cn>
+ 	    Jiawei Chen  <jiawei@iscas.ac.cn>
+ 	    Yangyu Chen  <cyy@cyyself.name>
+ 	    Tang Haojin  <tanghaojin@outlook.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): New cpu tune.
+ 	(RISCV_CORE): New cpu.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120032
+ 	* tree-ssa-forwprop.cc (simplify_count_zeroes): When we cannot use
+ 	the IFN to determine the result at zero use a conditional move
+ 	to reproduce the correct result from the table-based
+ 	algorithm.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120032
+ 	* match.pd (clz_table_index): New match.
+ 	* tree-ssa-forwprop.cc (check_table_array): Rename from
+ 	check_ctz_array.  Split out actual verification to a functor.
+ 	(check_table_string): Rename from check_ctz_string and likewise.
+ 	(check_table): Rename from check_ctz_table and adjust.
+ 	(gimple_clz_table_index): Declare.
+ 	(simplify_count_zeroes): Rename from simplify_count_trailing_zeroes.
+ 	Extend to cover CLZ.
+ 	(pass_forwprop::execute): Adjust.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_count_trailing_zeroes):
+ 	Use ranger instead of tree_expr_nonzero_p.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_count_trailing_zeroes):
+ 	Inline into ...
+ 	(simplify_count_trailing_zeroes): ... this function.
+ 	Split out ...
+ 	(check_ctz_table): ... a wrapper for CONSTRUCTOR vs. STRING_CST
+ 	handling.
+ 
+ 2025-06-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Avoid
+ 	zicond in some cases involving sign bit tests.
+ 	* config/riscv/riscv.md: Split a splat of the sign bit feeding a
+ 	masking off high bits into a pair of right shifts.
+ 
+ 2025-06-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120553
+ 	* config/i386/i386.md (mov<mode>cc): Use "general_operand"
+ 	predicate for operands 2 and 3 for all modes.
+ 
+ 2025-06-05  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Update a link to c99status.html.
+ 	* doc/standards.texi: Likewise.
+ 
+ 2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Update the virtual
+ 	op on the inserted clobber and the stack restore function.
+ 	(do_ssa_ccp): Don't add TODO_update_ssa to the todo.
+ 
+ 2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc: Include value-range.h and tree-ssanames.h
+ 	(gimple_folder::convert_and_fold): Use make_ssa_name
+ 	instead of create_tmp_var for the temporary. Add comment about callback argument.
+ 
+ 2025-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* range-op.cc (range_op_table::range_op_table): Register op_cast
+ 	also for FLOAT_EXPR and FIX_TRUNC_EXPR.
+ 	(RO_III): Adjust comment.
+ 	(range_op_handler::op1_range): Handle RO_IFI rather than RO_IFF.
+ 	Don't handle RO_FII.
+ 	(range_operator::op1_range): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio
+ 	arguments.
+ 	* range-op-mixed.h (operator_cast::op1_range): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio and
+ 	frange &, tree, const irange &, const frange &, relation_trio
+ 	arguments.
+ 	* range-op.h (range_operator::op1_cast): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio
+ 	arguments.
+ 	* range-op-float.cc (operator_cast::fold_range): Implement
+ 	float to int and int to float casts.
+ 	(operator_cast::op1_range): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio and
+ 	frange &, tree, const irange &, const frange &, relation_trio
+ 	arguments and implement reverse op of float to int and int to float
+ 	cast there.
+ 
+ 2025-06-05  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_calculate_branch_prob): Fix typo
+ 	in previous patch.
+ 
+ 2025-06-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Remove structured binding
+ 	from the code.
+ 
+ 2025-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120547
+ 	* real.cc (real_from_integer): Remove maxbitlen variable, use
+ 	len instead of that.  When shifting right, or in 1 if any of the
+ 	shifted away bits are non-zero.  Formatting fix.
+ 
+ 2025-06-05  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (update_count_by_afdo_count): Fix handling
+ 	of GUESSED_LOCAL.
+ 	(afdo_calculate_branch_prob): Preserve static profile for
+ 	probabilities 0 and 1.
+ 
+ 2025-06-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Leverage vdup_v and v_vdup
+ 	binary op for different patterns.
+ 	* config/riscv/vector-iterators.md: Add vdup_v and v_vdup
+ 	binary op iterators.
+ 
+ 2025-06-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/zicond.md: Add new splitters to select
+ 	1, -1 or -1, 1 based on a sign bit test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): Return
+ 	false if the variable has no symtab node.
+ 
+ 2025-06-05  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* tree-eh.cc (operation_could_trap_helper_p): Cover FIX_TRUNC
+ 	expressions explicitly.
+ 
+ 2025-06-05  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config.gcc (--with-{arch,tune}): Use .def file to validate gcn
+ 	processor names.
+ 	* doc/install.texi (amdgcn*-*-*): Update list of devices supported
+ 	by --with-arch/--with-tune.
+ 
+ 2025-06-05  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR middle-end/112824
+ 	* tree-sra.cc (sra_get_max_scalarization_size): Use MOVE_MAX
+ 	instead of UNITS_PER_WORD to define max_scalarization_size.
+ 
+ 2025-06-05  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md
+ 	(avx512f_movddup512<mask_name>): Change sselog1 to ssemov.
+ 	(avx_movddup256<mask_name>): Ditto.
+ 	(*vec_dupv2di): Change alternative 4's type attribute from sselog1
+ 	to ssemov.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: Update declaration.
+ 
+ 2025-06-04  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* auto-profile.cc (autofdo_source_profile::read): Dump message
+ 	while merging profile.
+ 	* pass_manager.h (get_pass_auto_profile): New.
+ 
+ 2025-06-04  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR c++/120518
+ 	* omp-general.cc (omp_device_num_check): Look inside a
+ 	CLEANUP_POINT_EXPR when trying to optimize special cases.
+ 
+ 2025-06-04  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/mkoffload.cc (process): Use an 'auto_vec' for
+ 	'file_idx'.
+ 
+ 2025-06-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/14295
+ 	PR tree-optimization/108358
+ 	PR tree-optimization/114169
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop): New function.
+ 	(pass_forwprop::execute): Call optimize_agr_copyprop for load/store statements.
+ 
+ 2025-06-04  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* match.pd: Add folding rule for vector average.
+ 	* tree-ssa-ccp.cc (get_default_value): Reject vector types.
+ 	(evaluate_stmt): Reject vector types.
+ 	* tree-ssanames.cc (get_nonzero_bits_1): Extend to handle
+ 	uniform vectors.
+ 
+ 2025-06-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR rtl-optimization/120050
+ 	* ext-dce.cc (ext_dce_process_uses): Break early if a SUBREG in
+ 	rhs is promoted and the truncation from the inner mode to the
+ 	outer mode is not a noop when handling SETs.
+ 
+ 2025-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* range-op-float.cc (range_operator::fold_range,
+ 	range_operator::op1_range, range_operator::op2_range,
+ 	range_operator::lhs_op1_relation, range_operator::lhs_op2_relation,
+ 	operator_equal::op1_range, foperator_unordered_gt::op1_range): Fix
+ 	up parameter indentation.
+ 	* range-op.cc (range_operator::fold_range, range_operator::op1_range,
+ 	range_operator::op1_op2_relation_effect,
+ 	range_operator::update_bitmask, plus_minus_ranges,
+ 	operator_bitwise_and::lhs_op1_relation): Likewise.
+ 
+ 2025-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* range-op-mixed.h (operator_cast::fold_range): Add overload
+ 	with 3 {,const} frange & operands.  Change parameter names and
+ 	add final override keywords for float <-> integer cast overloads.
+ 	(operator_cast::op1_range): Likewise.
+ 	* range-op-float.cc (operator_cast::fold_range): New overload
+ 	with 3 {,const} frange & operands.
+ 	(operator_cast::op1_range): Likewise.
+ 
+ 2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: Imply zicsr.
+ 
+ 2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-06-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120447
+ 	* emit-rtl.cc (validate_subreg): Restrict ordered_p test
+ 	between osize and regsize to cases where the inner value
+ 	occupies multiple blocks.
+ 
+ 2025-06-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Rename
+ 	the args to scalar2vr.
+ 	(riscv_rtx_costs): Leverage above func to avoid code dup.
+ 
+ 2025-06-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR debug/120525
+ 	* var-tracking.cc (prepare_call_arguments): Use MEM_EXPR only
+ 	if MEM_P is true.
+ 
+ 2025-06-04  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-06-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/i386.md (define_peephole2): Define some new peephole2 for
+ 	APX NDD.
+ 
+ 2025-06-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/i386.md: Add 4 new peephole2 by swap the original
+ 	peephole2's operands' order to support new pattern.
+ 
+ 2025-06-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR other/120494
+ 	* calls.cc (expand_call): Always add REG_CALL_DECL note.
+ 	(emit_library_call_value_1): Likewise.
+ 
+ 2025-06-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-fold.cc (create_tmp_reg_or_ssa_name): Always
+ 	create a SSA name.
+ 
+ 2025-06-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
+ 	case for DIV op.
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add new func
+ 	to get the cost of vector binary.
+ 	(riscv_rtx_costs): Add div rtx match and leverage above wrap to
+ 	get cost.
+ 	* config/riscv/vector-iterators.md: Add new op div to no_shift_vx_op.
+ 
+ 2025-06-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120517
+ 	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
+ 	Fix math in dataref group split.
+ 
+ 2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Replace
+ 	FR2VR with get_fr2vr_cost ().
+ 	* config/riscv/riscv.cc (riscv_register_move_cost): Likewise.
+ 	(riscv_builtin_vectorization_cost): Likewise.
+ 
+ 2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Add new pattern to
+ 	combine vec_duplicate + vfm{add,sub}.vv into vfm{add,sub}.vf.
+ 	* config/riscv/riscv-opts.h (FPR2VR_COST_UNPROVIDED): Define.
+ 	* config/riscv/riscv-protos.h (get_fr2vr_cost): Declare function.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add cost model for MULT with
+ 	VEC_DUPLICATE.
+ 	(get_fr2vr_cost): New function.
+ 	* config/riscv/riscv.opt: Add new option --param=fpr2vr-cost.
+ 
+ 2025-06-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120451
+ 	* tree-switch-conversion.cc (switch_conversion::build_one_array): Mark
+ 	the newly created decl as mergable.
+ 
+ 2025-06-02  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	PR middle-end/118939
+ 	* lra-spills.cc (spill_pseudos): Update insn regno info.
+ 	* lra-eliminations.cc (update_reg_eliminate): Recognize
+ 	disabling of active elimination regardless of
+ 	prev_can_eliminate.
+ 
+ 2025-06-02  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-06-02  Stafford Horne  <shorne@gmail.com>
+ 
+ 	* config/or1k/predicates.md (call_insn_operand): Add condition
+ 	to not allow symbol_ref operands with TARGET_CMODEL_LARGE.
+ 	* config/or1k/or1k.opt: Document new -mcmodel=large
+ 	implications.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2025-06-02  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/sourcebuild.texi (tls_link): Add documentation.
+ 
+ 2025-06-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/t-riscv: Adjust build rule for gen-riscv-ext-opt
+ 	and gen-riscv-ext-texi.
+ 
+ 2025-06-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Use
+ 	range-based-for-loop.
+ 	* config/riscv/riscv-subset.h (riscv_subset_list::iterator):
+ 	New.
+ 	(riscv_subset_list::const_iterator): New.
+ 
+ 2025-06-01  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR other/120493
+ 	* final.cc (call_from_call_insn): Change the argument type to
+ 	const rtx_call_insn *.
+ 	(get_call_rtx_from): New.
+ 	* rtl.h (is_a_helper <const rtx_call_insn *>::test): New.
+ 	(get_call_rtx_from): Moved to the final.cc section.
+ 	* rtlanal.cc (get_call_rtx_from): Removed.
+ 
+ 2025-06-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_vector_load): Set the vuse manually
+ 	on the new load statements. Also remove forward declaration since
+ 	the definition is before the first use.
+ 	(pass_forwprop::execute): Likewise for complex loads.
+ 	(pass_data_forwprop): Remove TODO_update_ssa.
+ 
+ 2025-06-01  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Fix line too long for sorts
+ 	of pattern.
+ 
+ 2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc: Remove include of reload.h.
+ 
+ 2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (movsf_internal):
+ 	Remove destination side constraint modifier '^' in the third
+ 	alternative.
+ 
+ 2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_ira_change_pseudo_allocno_class):
+ 	New prototype and function.
+ 	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
+ 	(xtensa_register_move_cost):
+ 	Change between integer and FP register move cost to a value
+ 	based on actual behavior, i.e. 2, the default and the same as
+ 	the move cost between integer registers.
+ 
  2025-05-31  Andrew Pinski  <quic_apinski@quicinc.com>
  
  	* function.h (struct function): Remove last_verified.
diff -Nrcpad gcc-16-20250601/gcc/DATESTAMP gcc-16-20250608/gcc/DATESTAMP
*** gcc-16-20250601/gcc/DATESTAMP	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/DATESTAMP	Sun Jun  8 22:32:15 2025
***************
*** 1 ****
! 20250601
--- 1 ----
! 20250608
diff -Nrcpad gcc-16-20250601/gcc/Makefile.in gcc-16-20250608/gcc/Makefile.in
*** gcc-16-20250601/gcc/Makefile.in	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/Makefile.in	Sun Jun  8 22:32:15 2025
*************** OBJS-libcommon = diagnostic-spec.o diagn
*** 1862,1867 ****
--- 1862,1868 ----
  	edit-context.o \
  	pretty-print.o intl.o \
  	json.o json-parsing.o \
+ 	xml.o \
  	sbitmap.o \
  	vec.o input.o hash-table.o ggc-none.o memory-block.o \
  	selftest.o selftest-diagnostic.o sort.o \
diff -Nrcpad gcc-16-20250601/gcc/ada/ChangeLog gcc-16-20250608/gcc/ada/ChangeLog
*** gcc-16-20250601/gcc/ada/ChangeLog	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/ChangeLog	Sun Jun  8 22:32:15 2025
***************
*** 1,3 ****
--- 1,850 ----
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* urealp.adb (UR_Negate): Capture array element in a local constant.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* urealp.adb (UR_Exponentiate): Use local variable.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Tune code for
+ 	attribute Small.
+ 	* sem_prag.adb (Analyze_Attribute): Tune code for pragma Time_Slice.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* ada_get_targ.adb, cstand.ads, cstand.adb, sem_eval.adb, sem_eval.ads,
+ 	urealp.adb, urealp.ads: Tune style.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* get_targ.ads (Register_Proc_Type): Add null exclusion.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* cstand.adb (Build_Float_Type, Register_Float_Type): Refine
+ 	parameter subtypes.
+ 	* set_targ.ads (FPT_Mode_Entry): Refine component subtype.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Add dependency of Program_Exit on
+ 	Global and Depends contracts.
+ 	(Analyze_Program_Exit_In_Decl_Part): Check references to subprogram
+ 	outputs.
+ 
+ 2025-06-06  Claire Dross  <dross@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Exit_Cases): Update the documentation for Exit_Cases.
+ 	* sem_prag.adb
+ 	(Anlayze_Pragma): Accept Program_Exit as an exit kind.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Argument): Argument for Program_Exit is now
+ 	optional.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Program_Exit): Change documentation for pragma syntax.
+ 	* sem_prag.adb (Analyze_Pragma): Argument for Program_Exit is now
+ 	optional.
+ 	(Analyze_Program_Exit_In_Decl_Part): Likewise.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Add new aspect identifier.
+ 	(Aspect_Argument): Specify argument for the new aspect.
+ 	(Is_Representation_Aspect): New aspect is not a representation aspect.
+ 	(Aspect_Names): Map new aspect to name.
+ 	(Aspect_Delay): New aspect is always delayed.
+ 	* contracts.adb (Expand_Subprogram_Contract)
+ 	(Add_Pre_Post_Condition, Add_Contract_Item)
+ 	(Analyze_Entry_Or_Subprogram_Contract)
+ 	(Analyze_Entry_Or_Subprogram_Body_Contract)
+ 	(Analyze_Subprogram_Body_Stub_Contract): Support new aspect.
+ 	* contracts.ads (Add_Contract_Item,
+ 	Analyze_Entry_Or_Subprogram_Contract,
+ 	Analyze_Entry_Or_Subprogram_Body_Contract,
+ 	Analyze_Subprogram_Body_Stub_Contract): Mention new contract in
+ 	comment.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst
+ 	(Aspect Program_Exit): Document new aspect.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Program_Exit): Document new pragma.
+ 	* einfo-utils.adb (Get_Pragma): Support new pragma.
+ 	* einfo-utils.ads (Get_Pragma): Mention new pragma in comment.
+ 	* exp_prag.adb (Expand_Pragma_Program_Exit): Expand new pragma;
+ 	body.
+ 	* exp_prag.ads (Expand_Pragma_Program_Exit): Expand new pragma;
+ 	spec.
+ 	* inline.adb (Remove_Aspects_And_Pragmas): Support new pragma.
+ 	* par-prag.adb (Prag): Support new pragma.
+ 	* sem_attr.adb (Analyze_Attribute_Old_Result): Accept attribute
+ 	Old in new pragma.
+ 	* sem_ch12.adb (Implementation of Generic Contracts): Mention new
+ 	aspect in comment.
+ 	* sem_ch13.adb (Insert_Pragma, Analyze_Aspect_Specifications):
+ 	Convert new new aspect to pragma.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Renumber
+ 	subsequent rule in comment.
+ 	* sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram)
+ 	(Contract_Freeze_Error): Mention new pragma in comment.
+ 	(Analyze_Pragma): Support new pragma; renumber subsequent rule in
+ 	comment.
+ 	(Analyze_Program_Exit_In_Decl_Part): Analyze new pragma; body.
+ 	(Sig_Flags): References in new pragma are significant when
+ 	detecting unreferenced objects.
+ 	* sem_prag.ads (Aspect_Specifying_Pragma)
+ 	(Assertion_Expression_Pragma, Pragma_Significant_To_Subprograms):
+ 	Support new aspect and pragma.
+ 	(Analyze_Program_Exit_In_Decl_Part): Analyze new pragma; spec.
+ 	(Find_Related_Package_Or_Body): Mention new pragma in comment.
+ 	* sem_util.adb (Is_Subprogram_Contract_Annotation): Support new
+ 	pragma.
+ 	* sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
+ 	pragma in comment.
+ 	* sinfo.ads (Is_Generic_Contract_Pragma): Mention new pragma in
+ 	comment.
+ 	* snames.ads-tmpl (Preset Names, Pragma_Id): Add name and pragma
+ 	identifiers.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/g-dyntab.ads (Instance): Update and extend comment.
+ 	* scos.ads: Remove comment about the corresponding C header.
+ 	* scos.h: Remove.
+ 
+ 2025-06-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb (Collect_Primitive_Operations): When collecting
+ 	primitive operations, do not include child unit subprograms.
+ 
+ 2025-06-06  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch4.adb (Constant_Indexing_OK): Add missing support for
+ 	RM 4.1.6(13/3), and improve performance to avoid climbing more
+ 	than needed. Add documentation.
+ 	(Try_Indexing_Function): New subprogram.
+ 	(Expr_Matches_In_Formal): Added new formals.
+ 	(Handle_Selected_Component): New subprogram.
+ 	(Has_IN_Mode): New subprogram.
+ 	(Try_Container_Indexing): Add documentation, code reorganization
+ 	and extend its functionality to improve its support for prefixed
+ 	notation calls.
+ 
+ 2025-06-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* debug.adb: Mark -gnatd_D as unused.
+ 	* diagnostics-repository.adb: Move to...
+ 	* errid.adb: ...here.
+ 	* diagnostics-repository.ads: Move to...
+ 	* errid.ads: ...here.
+ 	* errout.adb (Error_Msg_Internal): Add new arguments for the new
+ 	attributes of Error_Msg_Objects.
+ 	(Error_Msg): Likewise.
+ 	(Error_Msg_N): Likewise.
+ 	(Labeled_Span): New method for creating Labeled_Span-s
+ 	(Primary_Label_Span): New method for creating primary Labeled_Spans.
+ 	(Secondary_Labeled_Span): New method for creating secondary
+ 	Labeled_Spans.
+ 	(Edit): New method for creating Edit elements.
+ 	(Fix): New method for creating Fix elements.
+ 	(Error_Msg_F): Simplify code for evaluating the span.
+ 	(Error_Msg_FE): Likewise.
+ 	(Error_Msg_NE): Likewise.
+ 	(Error_Msg_NEL): Likewise.
+ 	(Error_Msg_N_Gigi): New method that is used as a wrapper for the
+ 	Error_Msg_xxx methods that have the new arguments. This function
+ 	is later mapped to the Error_Msg method used inside gigi.
+ 	(Error_Msg_NE_Gigi): Likewise.
+ 	(Write_JSON_Span): Ensure that the Style prefix is included that is
+ 	removed when parsing the message is reinserted to the JSON report.
+ 	(Output_Messages): Use the new Pretty_Printer and Sarif_Printer
+ 	packages to print the messages and remove the old implementation
+ 	for the pretty printer.
+ 	(Set_Msg_Text): Remove message kind insertion characters from the
+ 	final message text to avoid some message kinds being duplicated.
+ 	(To_Full_Span_First): New method for creating a span for a node.
+ 	(To_Full_Span): Likewise.
+ 	* errout.ads: Add the specs for all of the newly added functions.
+ 	* diagnostics-pretty_emitter.adb: Move to...
+ 	* erroutc-pretty_emitter.adb: ...here.
+ 	* diagnostics-pretty_emitter.ads: Move to...
+ 	* erroutc-pretty_emitter.ads: ...here.
+ 	* diagnostics-sarif_emitter.adb: Move to...
+ 	* erroutc-sarif_emitter.adb: ...here.
+ 	* diagnostics-sarif_emitter.ads: Move to...
+ 	* erroutc-sarif_emitter.ads: ...here.
+ 	* erroutc.adb (Next_Error_Msg): New method for iterating to the
+ 	next error message.
+ 	(Next_Continuation_Msg): New method for iterating to the next
+ 	continuation message.
+ 	(Primary_Location): New method for returning the first primary
+ 	location for the error message.
+ 	(Get_Human_Id): New method for returning the human readable
+ 	name for the switch associated with this error message.
+ 	(Get_Doc_Switch): New method for creating the tag for the switch
+ 	used in the error message.
+ 	(Output_Text_Within): Change the method to operating on Strings
+ 	instead of String pointers.
+ 	(Output_Msg_Text): Simplify implementation for generating the
+ 	error message.
+ 	(Prescan_Message): Make the String handling more error proof.
+ 	* erroutc.ads (Error_Msg_Object): Add new attributes that were
+ 	added to Diagnostic objects to Error_Msg_Objects.
+ 	Add new methods for handling the new error objects.
+ 	* diagnostics-switch_repository.adb: Move to...
+ 	* errsw.adb: ...here.
+ 	* errutil.adb (Error_Msg): Initialize all of the new attributes
+ 	added to Error_Msg_Object-s.
+ 	* fe.h (Error_Msg_N): Update the binding.
+ 	(Error_Msg_NE): Update the binding.
+ 	For now the error_msg methods in gigi will use the old
+ 	simplified interface for those methods.
+ 	* diagnostics-json_utils.adb: Move to...
+ 	* json_utils.adb: ...here.
+ 	* diagnostics-json_utils.ads: Move to...
+ 	* json_utils.ads: ...here.
+ 	* par-endh.adb: Replace the old error_msg
+ 	calls with the updated interface.
+ 	* sem_aggr.adb: Likewise.
+ 	* sem_ch13.adb: Likewise.
+ 	* sem_ch4.adb: Likewise.
+ 	* sem_ch9.adb: Likewise.
+ 	* diagnostics-brief_emitter.adb: Removed.
+ 	* diagnostics-brief_emitter.ads: Removed.
+ 	* diagnostics-constructors.adb: Removed.
+ 	* diagnostics-constructors.ads: Removed.
+ 	* diagnostics-converter.adb: Removed.
+ 	* diagnostics-converter.ads: Removed.
+ 	* diagnostics-switch_repository.ads: Removed.
+ 	* diagnostics-utils.adb: Removed.
+ 	* diagnostics-utils.ads: Removed.
+ 	* diagnostics.adb: Removed.
+ 	* diagnostics.ads: Removed.
+ 	* errsw.ads: New file. Based on diagnostics-switch_repository.ads.
+ 	It additionally contains all the switch enumerations.
+ 	* gcc-interface/Make-lang.in: Update compilation dependencies.
+ 	* gcc-interface/Makefile.in: Likewise.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* contracts.adb (Add_Invariant_And_Predicate_Checks): Assign Ekind.
+ 	* inline.adb (Expand_Inlined_Call): Likewise.
+ 	* exp_ch9.adb (Build_Simple_Entry_Call): Likewise.
+ 	* exp_dist.adb (Append_Array_Traversal): Likewise.
+ 	* exp_fixd.adb (Build_Double_Divide_Code, Build_Scaled_Divide_Code):
+ 	Likewise.
+ 
+ 2025-06-06  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* libgnarl/s-linux__android-aarch64.ads: Provide an
+ 	Android_Sigaction generic package to expose an aarch64
+ 	version of struct_sigation, using a provided sigset_t
+ 	for sa_flags.
+ 	* libgnarl/s-linux__android-arm.ads: Likewise, for ARM
+ 	rather than aarch64.
+ 	* libgnarl/s-osinte__android.ads: Move sigset_t definition
+ 	to the visible part and use it to instantiate the Android_Sigation
+ 	generic provided by System.Linux, which is specialized for ARM vs
+ 	aarch64. Define struct_sigaction out of the Android_Sigaction
+ 	instance, remove the local representation clauses.
+ 
+ 2025-06-06  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* Makefile.rtl: Rework the Android pairs to match those of a
+ 	regular Linux port rather than a generic posix one.
+ 	* libgnarl/s-osinte__android.ads: Import pcrtl and add bindings
+ 	for the pthread_rwlock entry points, used by the Linux units now
+ 	in the libgnat target pairs.
+ 	* sysdep.c (__gnat_has_cap_sys_nice): Define for Android,
+ 	conservative return 0.
+ 	* adaint.c (__gnat_cpu_alloc): Define for Android as for Linux.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* namet.ads (Name_Entry): Update comments to explain the current needs.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* lib.ads (Unit_Record): Remove representation clauses and filler
+ 	components
+ 	* lib-load.adb, lib-writ.adb: Remove initialization of data fillers.
+ 	* nlists.adb (Allocate_List_Tables): Remove explicit initialization.
+ 	* repinfo.adb (Exp_Node): Remove representation clauses.
+ 	* sinput.ads (Source_File_Record): Likewise.
+ 	* urealp.adb (Ureal_Entry): Likewise.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/representation_clauses_and_pragmas.rst
+ 	(Effect of Convention on Representation): Fix number of list items.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch10.adb (Install_Siblings.In_Context): Add missing guard.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Selected_Component): Tweak condition.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Make sure the
+ 	object is allocated properly by the code generator at library level.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_eval.adb (Check_Non_Static_Context): Remove special handling of
+ 	floating-point zero.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo.ads (Incomplete_View): Move from Sinfo; adapt wording.
+ 	* exp_ch3.adb (Build_Record_Init_Proc): Adapt retrieval of
+ 	Incomplete_View.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Move Incomplete_View from node
+ 	to entity field.
+ 	* gen_il-gen-gen_entities.adb (Gen_Entities): Add field.
+ 	* gen_il-gen-gen_nodes.adb (Gen_Nodes): Remove field.
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration,
+ 	Check_Anonymous_Access_Component): Adapt setting of Incomplete_View.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adapt retrieval of
+ 	Incomplete_View for class-wide types; no longer rely on class-wide
+ 	type being attached to non-classwide type declaration.
+ 	* sem_util.adb (Collect_Primitive_Operations): Adapt retrieval of
+ 	Incomplete_View.
+ 	* sinfo.ads (Incomplete_View): Move to Einfo.
+ 
+ 2025-06-06  squirek  <squirek@adacore.com>
+ 
+ 	* aspects.ads: Add support for constructors.
+ 	* exp_aggr.adb: Likewise.
+ 	* exp_attr.adb: Likewise.
+ 	* exp_ch3.adb: Likewise.
+ 	* exp_ch4.adb: Likewise.
+ 	* exp_util.adb: Likewise.
+ 	* gen_il-fields.ads: Likewise.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* gen_il-gen-gen_nodes.adb: Likewise.
+ 	* par-ch4.adb: Likewise.
+ 	* sem_aggr.adb: Likewise.
+ 	* sem_attr.adb, sem_attr.ads: Likewise.
+ 	* sem_ch13.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 	* sem_ch5.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_res.adb: Likewise.
+ 	* sem_util.adb, sem_util.ads: Likewise.
+ 	* snames.ads-tmpl: Likewise.
+ 
+ 2025-06-06  squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Add documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Modulus): Change to implementation base type only.
+ 	* gen_il-gen-gen_entities.adb (Modular_Integer_Kind): Change type
+ 	of Modulus field to Impl_Base_Type_Only.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Original_Access_Type): Restore.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Restore Original_Access_Type.
+ 	* gen_il-gen-gen_entities.adb: Adjust accordingly.
+ 	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Restore the
+ 	call to Set_Original_Access_Type.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Default_Expr_Function): Delete.
+ 	(Dependent_Instances): Likewise.
+ 	(Handler_Records): Likewise.
+ 	(Needs_Activation_Record): Likewise.
+ 	(Original_Access_Type): Likewise.
+ 	(Register_Exception_Call): Likewise.
+ 	* sinfo.ads (Accept_Handler_Records): Likewise.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Accept_Handler_Records,
+ 	Default_Expr_Function, Dependent_Instances, Handler_Records,
+ 	Needs_Activation_Record, Original_Access_Type and
+ 	Register_Exception_Call.
+ 	* gen_il-gen-gen_entities.adb: Adjust accordingly.
+ 	* gen_il-gen-gen_nodes.adb: Likewise.
+ 	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Remove call
+ 	to Set_Original_Access_Type.
+ 	(Expand_N_Selective_Accept): Remove call to Set_Handler_Records.
+ 	* exp_ch11.adb (Expand_N_Exception_Declaration): Remove call to
+ 	Set_Register_Exception_Call.
+ 	* sem_ch3.adb (Access_Subprogram_Declaration): Remove call to
+ 	Set_Needs_Activation_Record.
+ 	* sem_ch12.adb (Instantiate_Package_Body): Remove call to
+ 	Set_Handler_Records.
+ 
+ 2025-06-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb
+ 	(Find_Unary_Types): Because we reanalyze names in an instance,
+ 	we sometimes have to take steps to filter out extraneous name
+ 	resolution candidates that happen to be visible at the point of the
+ 	instance declaration. Remove some code that appears to have been
+ 	written with this in mind. This is done for two reasons. First, the
+ 	code sometimes doesn't work (possibly because the In_Instance test
+ 	is not specific enough - it probably should be testing to see whether
+ 	we are in an instance of the particular generic in which the result
+ 	of calling Corresponding_Generic_Type was declared) and causes correct
+ 	code to be rejected. Second, the code seems to no longer be necessary
+ 	(possibly because of subsequent fixes in this area which are not
+ 	specific to unary operators).
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch8.adb (Premature_Usage): Remove dead code.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Size_Check_Code): Delete.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Size_Check_Code.
+ 	* gen_il-gen-gen_entities.adb (Constant_Or_Variable_Kind): Likewise.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove call
+ 	to Kill_Size_Check_Code.
+ 	* sem_prag.adb (Analyze_Pragma): Likewise.
+ 	* sem_util.ads (Kill_Size_Check_Code): Delete.
+ 	* sem_util.adb (Kill_Size_Check_Code): Likewise.
+ 
+ 2025-06-06  Claire Dross  <dross@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_SPARK_Subprogram_Specification):
+ 	Allow the first parameter of functions whose return type is
+ 	an anonymous access-to-variable type to have mode IN OUT.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gen_il-fields.ads: New field.
+ 	* gen_il-gen-gen_entities.adb: New field.
+ 	* einfo.ads: Document new field.
+ 	* sem_res.adb (Check_Discriminant_Use): Record relevant uses in new
+ 	field. Move warning emission to...
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration): ... Here.
+ 
+ 2025-06-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_disp.adb
+ 	(Check_Dispatching_Operation): Delete code to generate
+ 	"missing overriding indicator" warning. Update comments.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* cstand.adb (Create_Standard): Delay declaration generation for
+ 	Natural and Positive.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* cstand.adb (Create_Standard): Remove useless calls.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Record_Aggregate): Use the named form for the
+ 	second actual parameter in the call to Duplicate_Subexpr.
+ 	* exp_attr.adb (Expand_Size_Attribute): Likewise.
+ 	* exp_ch5.adb (Expand_Assign_Array): Likewise.
+ 	(Expand_Assign_Array_Bitfield): Likewise.
+ 	(Expand_Assign_Array_Bitfield_Fast): Likewise.
+ 	* exp_util.ads (Duplicate_Subexpr): Add New_Scope formal parameter.
+ 	(Duplicate_Subexpr_No_Checks): Likewise.
+ 	(Duplicate_Subexpr_Move_Checks): Likewise.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass Proc_Id as the
+ 	actual for New_Scope in the calls to Duplicate_Subexpr_No_Checks.
+ 	(Duplicate_Subexpr): Add New_Scope formal parameter and forward it
+ 	in the call to New_Copy_Tree.
+ 	(Duplicate_Subexpr_No_Checks): Likewise.
+ 	(Duplicate_Subexpr_Move_Checks): Likewise.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Insert_Valid_Check): Set flag Assignment_OK in the object
+ 	declaration inserted for the validity checks.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb
+ 	(Warn_On_Useless_Assignment): Disable out value "overwritten" warning
+ 	when we are not warning on unread out parameters (e.g. "-gnatw.o").
+ 
+ 2025-06-05  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb: null pointer check in Update
+ 
+ 2025-06-05  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* exp_util.adb, rtsfind.adb, rtsfind.ads, sem_prag.adb: Remove
+ 	references to RO_GH_Big_Integer and
+ 	Ada_Numerics_Big_Numbers_Big_Integers_Ghost.
+ 	* libgnat/a-strfix.adb, libgnat/a-strmap.adb,
+ 	libgnat/a-strsea.adb, libgnat/a-strsup.adb,
+ 	libgnat/i-c.ads, libgnat/i-c.adb, libgnat/s-aridou.adb,
+ 	libgnat/s-aridou.ads, libgnat/s-arit128.adb,
+ 	libgnat/s-arit128.ads, libgnat/s-arit32.adb,
+ 	libgnat/s-arit32.ads, libgnat/s-arit64.adb,
+ 	libgnat/s-arit64.ads, libgnat/s-casuti.adb,
+ 	libgnat/s-exnint.ads, libgnat/s-exnlli.ads,
+ 	libgnat/s-exnllli.ads, libgnat/s-expint.ads,
+ 	libgnat/s-explli.ads, libgnat/s-expllli.ads,
+ 	libgnat/s-explllu.ads, libgnat/s-expllu.ads,
+ 	libgnat/s-expmod.adb, libgnat/s-expmod.ads,
+ 	libgnat/s-exponn.adb, libgnat/s-exponn.ads,
+ 	libgnat/s-expont.adb, libgnat/s-expont.ads,
+ 	libgnat/s-exponu.adb, libgnat/s-exponu.ads,
+ 	libgnat/s-imaged.ads, libgnat/s-imaged.adb,
+ 	libgnat/s-expuns.ads, libgnat/s-imagef.ads,
+ 	libgnat/s-imagef.adb, libgnat/s-imagei.adb,
+ 	libgnat/s-imagei.ads, libgnat/s-imageu.adb,
+ 	libgnat/s-imageu.ads, libgnat/s-imgboo.adb,
+ 	libgnat/s-imde128.ads, libgnat/s-imde32.ads,
+ 	libgnat/s-imde64.ads, libgnat/s-imfi128.ads,
+ 	libgnat/s-imfi32.ads, libgnat/s-imfi64.ads,
+ 	libgnat/s-imgboo.ads, libgnat/s-imgint.ads,
+ 	libgnat/s-imglli.ads, libgnat/s-imgllli.ads,
+ 	libgnat/s-imglllu.ads, libgnat/s-imgllu.ads,
+ 	libgnat/s-imguns.ads, libgnat/s-valboo.adb,
+ 	libgnat/s-valboo.ads, libgnat/s-valint.ads,
+ 	libgnat/s-vallli.ads, libgnat/s-valllli.ads,
+ 	libgnat/s-vallllu.ads, libgnat/s-valllu.ads,
+ 	libgnat/s-valuns.ads, libgnat/s-valuti.adb,
+ 	libgnat/s-valuti.ads, libgnat/s-valuei.adb,
+ 	libgnat/s-valuei.ads, libgnat/s-valueu.ads,
+ 	libgnat/s-valueu.adb, libgnat/s-veboop.adb,
+ 	libgnat/s-veboop.ads, libgnat/s-widint.ads,
+ 	libgnat/s-widlli.ads, libgnat/s-widllli.ads,
+ 	libgnat/s-widlllu.ads, libgnat/s-widllu.ads,
+ 	libgnat/s-widthi.adb, libgnat/s-widthu.adb,
+ 	libgnat/s-widthu.ads, libgnat/s-widuns.ads: Remove ghost code
+ 	and SPARK annotations.
+ 	* libgnat/a-nbnbig.ads, libgnat/a-nbnbig.adb,
+ 	libgnat/s-spark.ads, libgnat/s-spcuop.adb,
+ 	libgnat/s-spcuop.ads, libgnat/s-vaispe.adb,
+ 	libgnat/s-vaispe.ads, libgnat/s-vauspe.adb,
+ 	libgnat/s-vauspe.ads, libgnat/s-vs_int.ads,
+ 	libgnat/s-vs_lli.ads, libgnat/s-vs_llu.ads,
+ 	libgnat/s-vs_uns.ads, libgnat/s-valspe.adb,
+ 	libgnat/s-valspe.ads, libgnat/s-vsllli.ads,
+ 	libgnat/s-vslllu.ads: Removed.
+ 	* Makefile.rtl: Update list of runtime units.
+ 	* gcc-interface/Make-lang.in: Remove object files.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fname-uf.adb: Fix documentation comment.
+ 	(Get_Default_File_Name): Fix indices of default patterns.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads (New_Copy, Relocate_Node): Tweak documentation comments.
+ 
+ 2025-06-05  Andres Toom  <toom@adacore.com>
+ 
+ 	* libgnat/a-nudira.ads: Activate SPARK mode and add missing
+ 	basic contracts. Mark the unit as always terminating.
+ 	* libgnat/a-nuflra.ads: Idem.
+ 
+ 2025-06-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch7.adb (Process_Object_Declaration): Avoid generating
+ 	duplicate names for master nodes.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* opt.ads: Remove useless variable.
+ 	* sem_ch9.adb (Analyze_Abort_Statement, Analyze_Accept_Alternative,
+ 	Analyze_Accept_Statement, Analyze_Asynchronous_Select,
+ 	Analyze_Conditional_Entry_Call, Analyze_Delay_Alternative,
+ 	Analyze_Delay_Relative, Analyze_Delay_Until, Analyze_Entry_Body,
+ 	Analyze_Entry_Body_Formal_Part, Analyze_Entry_Call_Alternative,
+ 	Analyze_Entry_Declaration, Analyze_Entry_Index_Specification,
+ 	Analyze_Protected_Body, Analyze_Protected_Definition,
+ 	Analyze_Protected_Type_Declaration, Analyze_Requeue,
+ 	Analyze_Selective_Accept, Analyze_Single_Protected_Declaration,
+ 	Analyze_Single_Task_Declaration, Analyze_Task_Body,
+ 	Analyze_Task_Definition, Analyze_Task_Type_Declaration,
+ 	Analyze_Terminate_Alternative, Analyze_Timed_Entry_Call,
+ 	Analyze_Triggering_Alternative): Remove useless assignments.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(Side_Effect_Free_Statements): Return False if the statement list
+ 	includes an explicit (i.e. Comes_From_Source) raise statement.
+ 
+ 2025-06-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Expression_Function): Add missing check
+ 	on premature use of incomplete type.
+ 
+ 2025-06-05  Aleksandra Pasek  <pasek@adacore.com>
+ 
+ 	* libgnat/s-arit32.adb: Add Ghost aspect to Lo.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch4.adb (Tagged_Membership): Fix for protected types.
+ 
+ 2025-06-05  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_eval.adb (Fold_Shift): If the Amount parameter is greater
+ 	than the size in bits, use the size. For example, if we are
+ 	shifting an Unsigned_8 value, then Amount => 1_000_001 gives the
+ 	same result as Amount => 8. This change avoids computing the value
+ 	of 2**1_000_000, which takes too long and uses too much memory.
+ 	Note that the computation we're talking about is a compile-time
+ 	computation. Minor cleanup. DRY.
+ 	* sem_eval.ads (Fold_Str, Fold_Uint, Fold_Ureal): Fold the
+ 	comments into one comment, because DRY. Remove useless
+ 	verbiage.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_attr.adb (Interunit_Ref_OK): Tweak categorization of compilation
+ 	units.
+ 
+ 2025-06-05  Aleksandra Pasek  <pasek@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb: Add missing Ghost aspect to
+ 	Lemma_Not_In_Range_Big2xx64.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-trasym__dwarf.adb (Init_Module): Add mitigation.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Two_Pass_Aggr_Code): New function containing
+ 	most of the code initially present in Two_Pass_Aggregate_Expansion.
+ 	(Two_Pass_Aggregate_Expansion): Remove redundant N parameter.
+ 	Implement built-in-place expansion for (static) object declarations
+ 	and allocators, using Build_Two_Pass_Aggr_Code for the main work.
+ 	(Expand_Array_Aggregate): Adjust Two_Pass_Aggregate_Expansion call.
+ 	Replace Etype (N) by Typ in a couple of places.
+ 	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove special case for
+ 	two-pass array aggregates.
+ 	(Expand_N_Object_Declaration): Do not adjust the object when it is
+ 	initialized by a two-pass array aggregate.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Apply the processing
+ 	used for container aggregates to two-pass array aggregates.
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Skip calls present in
+ 	initialization expressions of N_Object_Declaration nodes that have
+ 	No_Initialization set.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Detect the cases of an
+ 	array originally initialized by an aggregate consistently.
+ 
+ 2025-06-05  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/s-arit32.adb (Lemma_Not_In_Range_Big2xx32): Add missing
+ 	Ghost aspect.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): Fix
+ 	handling of preprocessing dependencies.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst: Update the
+ 	documentation for Valid_Value.
+ 	* sem_attr.adb (Analyze_Attribute): Reject types where
+ 	the root type originates from Standard.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-05  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Change call to Make_Assignment
+ 	for the indexed aggregate object to call Change_Make_OK_Assignment instead.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_prag.adb
+ 	(Analyze_Constituent): In the specific case case of a defined-too-late
+ 	abstract state constituent, generate an additional error message.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-sarif_emitter.adb (Print_Invocations): fix
+ 	commandLine and executionSuccessful nodes.
+ 	Fix typo in the name for startLine.
+ 	* osint.adb (Modified Get_Current_Dir) Fix generation of
+ 	the current directory.
+ 	(Relative_Path): Avoid relative paths starting with a
+ 	path separator.
+ 	* osint.ads: Update the documentation for Relative_Path.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb (New_String): Fix size of allocation.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* sem_ch8.adb (Analyze_Package_Name): Add code to expand use
+ 	clauses such that they have an implicit with associated with them
+ 	when extensions are enabled.
+ 	* sem_ch10.ads (Analyze_With_Clause): New.
+ 	* sem_ch10.adb (Analyze_With_Clause): Add comes from source check
+ 	for warning.
+ 	(Expand_With_Clause): Moved to the spec.
+ 	* sem_util.adb, sem_util.ads
+ 	(Is_In_Context_Clause): Moved from sem_prag.
+ 	* sem_prag.adb (Analyze_Pragma): Update calls to
+ 	Is_In_Context_Clause.
+ 	(Is_In_Context_Clause): Moved to sem_util.
+ 
+ 2025-06-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_ugn/platform_specific_information.rst
+ 	(Setting Stack Size from gnatlink): Improve documentation.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb (Check_Return_Construct_Accessibility):
+ 	Disable check generation when we are only checking semantics.
+ 	* opt.ads: Add new flag for -gnatc mode
+ 	* switch-c.adb (Scan_Front_End_Switches): Set flag for -gnatc mode
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch8.adb (Mark_Use_Type): Additionally mark the types
+ 	of the parameters and return values as used when analyzing an
+ 	operator.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch9.adb (Build_Dispatching_Requeue): Take 'Tag of the
+ 	concurrent object instead of doing an unchecked conversion.
+ 	* exp_pakd.adb (Expand_Packed_Address_Reference): Perform address
+ 	arithmetic using an operator of System.Storage_Elements.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Actuals): Remove obsolete comment.
+ 	(Make_Build_In_Place_Call_In_Anonymous_Context): Always use a proper
+ 	object declaration initialized with the function call in the cases
+ 	where a temporary is needed, with Assignment_OK set on it.
+ 	* sem_util.adb (Entity_Of): Deal with rewritten function call first.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb (Position_Of_Nul): Change specification and
+ 	adjust body accordingly.
+ 	(New_Char_Array): Fix size of allocation.
+ 	(To_Chars_Ptr): Adapt to Position_Of_Nul change.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): Fix
+ 	oracle generation.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer):
+ 	Fix when main library item is an instantiation.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): When accessing the
+ 	maps declared in package Cached_Attribute_Ops, the key value
+ 	passed to Get or to Set should never be the entity node for a
+ 	subtype. Use the entity of the corresponding type declaration
+ 	instead.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Declare_Expression): Mark used
+ 	local variables inside a declare expression as referenced.
+ 
+ 2025-06-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem.ads: Update reference to renamed subprogram in documentation.
+ 	* sem_ch3.ads (Preanalyze_Assert_Expression): Renamed.
+ 	(Preanalyze_Spec_Expression): Renamed.
+ 	* sem_ch3.adb (Preanalyze_Assert_Expression): Renamed and code cleanup.
+ 	(Preanalyze_Spec_Expression): Renamed.
+ 	(Preanalyze_Default_Expression): Renamed.
+ 	* contracts.adb: Update calls to renamed subprograms.
+ 	* exp_pakd.adb: Ditto.
+ 	* exp_util.adb: Ditto.
+ 	* freeze.adb: Ditto.
+ 	* sem_ch12.adb: Ditto.
+ 	* sem_ch13.adb: Ditto.
+ 	* sem_ch6.adb: Ditto.
+ 	* sem_prag.adb: Ditto.
+ 	* sem_res.adb (Preanalyze_And_Resolve): Add to the version without
+ 	context type the special handling for GNATprove mode provided by
+ 	the version with context type; required to cleanup the body of
+ 	Preanalyze_Assert_Expression.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb
+ 	(Check_Return_Construct_Accessibility): Disable check generation
+ 	when we are only checking semantics.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-json_utils.adb: Add new method To_File_Uri to
+ 	convert any path to the URI standard.
+ 	* diagnostics-json_utils.ads: Likewise.
+ 	* diagnostics-sarif_emitter.adb: Converted Artifact_Change
+ 	types to use the Source_File_Index instead of the file name
+ 	to store the source file.
+ 	Removed the body from Destroy (Elem : in out Artifact_Change)
+ 	since it no longer contained elements with dynamic memory.
+ 	Updated the implementation of Equals (L, R : Artifact_Change)
+ 	to take into account the changes for Artifact_Change.
+ 	Print_Artifact_Location: Use the Source_File_Index as an
+ 	input argument. Now prints the uriBaseId attribute and a
+ 	relative path from the uriBaseId to the file in question as
+ 	the value of the uri attribute.
+ 	New method Print_Original_Uri_Base_Ids to print the
+ 	originalUriBaseIds node.
+ 	Print_Run no prints the originalUriBaseIds node.
+ 	Use constants instead of strings for all the SARIF attributes.
+ 	* osint.adb: Add new method Relative_Path to calculate the
+ 	relative path from a base directory.
+ 	Add new method Root to calculate the root of each directory.
+ 	Add new method Get_Current_Dir to get the current working
+ 	directory for the execution environment.
+ 	* osint.ads: Likewise.
+ 	* clean.adb: Use full names for calls to Get_Current_Dir.
+ 	* gnatls.adb: Likewise.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_res.adb
+ 	(Set_Mixed_Mode_Operand): If we are about to call Resolve
+ 	passing in Any_Fixed as the expected type, then instead pass in
+ 	the fixed point type of the other operand (i.e., B_Typ).
+ 
+ 2025-06-05  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_util.adb (Check_Function_Writable_Actuals): Add handling for
+ 	N_Iterated_Component_Association and N_Iterated_Element_Association.
+ 	Fix a typo in an RM reference (6.4.1(20/3) => 6.4.1(6.20/3)).
+ 	(Collect_Expression_Ids): New procedure factoring code for collecting
+ 	identifiers from expressions of aggregate associations.
+ 	(Handle_Association_Choices): New procedure factoring code for handling
+ 	id collection for expressions of aggregate associations with multiple
+ 	choices. Removed redundant test of Box_Present from original code.
+ 
  2025-05-24  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* gcc-interface/Make-lang.in (ACATSDIR): Use acats-2 directory.
diff -Nrcpad gcc-16-20250601/gcc/ada/Makefile.rtl gcc-16-20250608/gcc/ada/Makefile.rtl
*** gcc-16-20250601/gcc/ada/Makefile.rtl	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/Makefile.rtl	Sun Jun  8 22:32:15 2025
*************** GNATRTL_NONTASKING_OBJS= \
*** 211,217 ****
    a-nallfl$(objext) \
    a-nalofl$(objext) \
    a-nashfl$(objext) \
-   a-nbnbig$(objext) \
    a-nbnbin$(objext) \
    a-nbnbre$(objext) \
    a-ncelfu$(objext) \
--- 211,216 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 745,752 ****
    s-shasto$(objext) \
    s-soflin$(objext) \
    s-soliin$(objext) \
-   s-spark$(objext) \
-   s-spcuop$(objext) \
    s-spsufi$(objext) \
    s-stache$(objext) \
    s-stalib$(objext) \
--- 744,749 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 772,778 ****
    s-vaenu8$(objext) \
    s-vafi32$(objext) \
    s-vafi64$(objext) \
-   s-vaispe$(objext) \
    s-valboo$(objext) \
    s-valcha$(objext) \
    s-valflt$(objext) \
--- 769,774 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 782,788 ****
    s-vallli$(objext) \
    s-valllu$(objext) \
    s-valrea$(objext) \
-   s-valspe$(objext) \
    s-valued$(objext) \
    s-valuef$(objext) \
    s-valuei$(objext) \
--- 778,783 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 792,805 ****
    s-valuns$(objext) \
    s-valuti$(objext) \
    s-valwch$(objext) \
-   s-vauspe$(objext) \
    s-veboop$(objext) \
    s-vector$(objext) \
    s-vercon$(objext) \
-   s-vs_int$(objext) \
-   s-vs_lli$(objext) \
-   s-vs_llu$(objext) \
-   s-vs_uns$(objext) \
    s-wchcnv$(objext) \
    s-wchcon$(objext) \
    s-wchjis$(objext) \
--- 787,795 ----
*************** GNATRTL_128BIT_OBJS = \
*** 1046,1053 ****
    s-vafi128$(objext) \
    s-valllli$(objext) \
    s-vallllu$(objext) \
-   s-vsllli$(objext) \
-   s-vslllu$(objext) \
    s-widllli$(objext) \
    s-widlllu$(objext)
  
--- 1036,1041 ----
*************** ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
*** 1419,1442 ****
  ifeq ($(strip $(filter-out arm% aarch64 linux-android%,$(target_cpu) $(target_os))),)
  
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__android.adb \
-   s-osinte.adb<libgnarl/s-osinte__android.adb \
    s-osinte.ads<libgnarl/s-osinte__android.ads \
    s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
!   s-taprop.adb<libgnarl/s-taprop__posix.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
-   s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
-   a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-arm.ads
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
  
    # ARM and aarch64 rely on different unwinding mechanisms, and as
    # a 64bit target, aarch64 can also incorporate support for 128bit
--- 1407,1438 ----
  ifeq ($(strip $(filter-out arm% aarch64 linux-android%,$(target_cpu) $(target_os))),)
  
    LIBGNAT_TARGET_PAIRS = \
+   a-exetim.adb<libgnarl/a-exetim__posix.adb \
+   a-exetim.ads<libgnarl/a-exetim__default.ads \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
+   a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
+   a-synbar.adb<libgnarl/a-synbar__posix.adb \
+   a-synbar.ads<libgnarl/a-synbar__posix.ads \
+   s-dorepr.adb<libgnat/s-dorepr__fma.adb \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__android.adb \
    s-osinte.ads<libgnarl/s-osinte__android.ads \
+   s-osinte.adb<libgnarl/s-osinte__android.adb \
    s-oslock.ads<libgnat/s-oslock__posix.ads \
    s-osprim.adb<libgnat/s-osprim__posix.adb \
!   s-parame.adb<libgnat/s-parame__aarch64-linux.adb \
!   s-taprop.adb<libgnarl/s-taprop__linux.adb \
!   s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
!   s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
!   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-arm.ads
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
  
    # ARM and aarch64 rely on different unwinding mechanisms, and as
    # a 64bit target, aarch64 can also incorporate support for 128bit
diff -Nrcpad gcc-16-20250601/gcc/ada/accessibility.adb gcc-16-20250608/gcc/ada/accessibility.adb
*** gcc-16-20250601/gcc/ada/accessibility.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/accessibility.adb	Sun Jun  8 22:32:15 2025
*************** package body Accessibility is
*** 1642,1647 ****
--- 1642,1654 ----
               (No (Extra_Accessibility_Of_Result (Scope_Id))
                 and then Is_Formal_Of_Current_Function (Assoc_Expr)
                 and then Is_Tagged_Type (Etype (Scope_Id)))
+ 
+            --  Disable the check generation when we are only checking semantics
+            --  since required locals do not get generated (e.g. extra
+            --  accessibility of result), and constant folding can occur and
+            --  lead to spurious errors.
+ 
+            and then not Check_Semantics_Only_Mode
           then
              --  Generate a dynamic check based on the extra accessibility of
              --  the result or the scope of the current function.
*************** package body Accessibility is
*** 1684,1691 ****
                and then Entity (Check_Cond) = Standard_True
              then
                 Error_Msg_N
!                  ("access discriminant in return object would be a dangling"
!                   & " reference", Return_Stmt);
              end if;
           end if;
  
--- 1691,1698 ----
                and then Entity (Check_Cond) = Standard_True
              then
                 Error_Msg_N
!                  ("access discriminant in return object could be a dangling"
!                   & " reference??", Return_Stmt);
              end if;
           end if;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/ada_get_targ.adb gcc-16-20250608/gcc/ada/ada_get_targ.adb
*** gcc-16-20250601/gcc/ada/ada_get_targ.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/ada_get_targ.adb	Sun Jun  8 22:32:15 2025
*************** package body Get_Targ is
*** 219,227 ****
     begin
        Float_Str (Float_Str'First .. Float_Str'First + 4) := "float";
        Call_Back
!         (C_Name => Float_Str, Digs => 6, Complex => False, Count  => 0,
           Float_Rep => IEEE_Binary,
!          Precision => 32, Size => 32, Alignment => 32);
  
        Double_Str (Double_Str'First .. Double_Str'First + 5) := "double";
        Call_Back
--- 219,232 ----
     begin
        Float_Str (Float_Str'First .. Float_Str'First + 4) := "float";
        Call_Back
!         (C_Name    => Float_Str,
!          Digs      => 6,
!          Complex   => False,
!          Count     => 0,
           Float_Rep => IEEE_Binary,
!          Precision => 32,
!          Size      => 32,
!          Alignment => 32);
  
        Double_Str (Double_Str'First .. Double_Str'First + 5) := "double";
        Call_Back
diff -Nrcpad gcc-16-20250601/gcc/ada/adaint.c gcc-16-20250608/gcc/ada/adaint.c
*** gcc-16-20250601/gcc/ada/adaint.c	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/adaint.c	Sun Jun  8 22:32:15 2025
*************** __gnat_lwp_self (void)
*** 3475,3481 ****
  }
  #endif
  
! #if defined (__linux__)
  #include <sched.h>
  
  /* glibc versions earlier than 2.7 do not define the routines to handle
--- 3475,3481 ----
  }
  #endif
  
! #if defined (__linux__) || defined (__ANDROID__)
  #include <sched.h>
  
  /* glibc versions earlier than 2.7 do not define the routines to handle
diff -Nrcpad gcc-16-20250601/gcc/ada/aspects.ads gcc-16-20250608/gcc/ada/aspects.ads
*** gcc-16-20250601/gcc/ada/aspects.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/aspects.ads	Sun Jun  8 22:32:15 2025
*************** package Aspects is
*** 81,86 ****
--- 81,87 ----
        Aspect_Bit_Order,
        Aspect_Component_Size,
        Aspect_Constant_Indexing,
+       Aspect_Constructor,                   -- GNAT
        Aspect_Contract_Cases,                -- GNAT
        Aspect_Convention,
        Aspect_CPU,
*************** package Aspects is
*** 106,111 ****
--- 107,113 ----
        Aspect_GNAT_Annotate,                 -- GNAT
        Aspect_Implicit_Dereference,
        Aspect_Initial_Condition,             -- GNAT
+       Aspect_Initialize,                    -- GNAT
        Aspect_Initializes,                   -- GNAT
        Aspect_Input,
        Aspect_Integer_Literal,
*************** package Aspects is
*** 130,135 ****
--- 132,138 ----
        Aspect_Predicate,                     -- GNAT
        Aspect_Predicate_Failure,
        Aspect_Priority,
+       Aspect_Program_Exit,
        Aspect_Put_Image,
        Aspect_Read,
        Aspect_Real_Literal,
*************** package Aspects is
*** 428,433 ****
--- 431,437 ----
        Aspect_Bit_Order                  => Expression,
        Aspect_Component_Size             => Expression,
        Aspect_Constant_Indexing          => Name,
+       Aspect_Constructor                => Name,
        Aspect_Contract_Cases             => Expression,
        Aspect_Convention                 => Name,
        Aspect_CPU                        => Expression,
*************** package Aspects is
*** 453,458 ****
--- 457,463 ----
        Aspect_GNAT_Annotate              => Expression,
        Aspect_Implicit_Dereference       => Name,
        Aspect_Initial_Condition          => Expression,
+       Aspect_Initialize                 => Expression,
        Aspect_Initializes                => Expression,
        Aspect_Input                      => Name,
        Aspect_Integer_Literal            => Name,
*************** package Aspects is
*** 477,482 ****
--- 482,488 ----
        Aspect_Predicate                  => Expression,
        Aspect_Predicate_Failure          => Expression,
        Aspect_Priority                   => Expression,
+       Aspect_Program_Exit               => Optional_Expression,
        Aspect_Put_Image                  => Name,
        Aspect_Read                       => Name,
        Aspect_Real_Literal               => Name,
*************** package Aspects is
*** 529,534 ****
--- 535,541 ----
        Aspect_Component_Size               => True,
        Aspect_Constant_Indexing            => False,
        Aspect_Contract_Cases               => False,
+       Aspect_Constructor                  => False,
        Aspect_Convention                   => True,
        Aspect_CPU                          => False,
        Aspect_Default_Component_Value      => True,
*************** package Aspects is
*** 556,561 ****
--- 563,569 ----
        Aspect_GNAT_Annotate                => False,
        Aspect_Implicit_Dereference         => False,
        Aspect_Initial_Condition            => False,
+       Aspect_Initialize                   => False,
        Aspect_Initializes                  => False,
        Aspect_Input                        => False,
        Aspect_Integer_Literal              => False,
*************** package Aspects is
*** 580,585 ****
--- 588,594 ----
        Aspect_Predicate                    => False,
        Aspect_Predicate_Failure            => False,
        Aspect_Priority                     => False,
+       Aspect_Program_Exit                 => False,
        Aspect_Put_Image                    => False,
        Aspect_Read                         => False,
        Aspect_Real_Literal                 => False,
*************** package Aspects is
*** 698,703 ****
--- 707,713 ----
        Aspect_Constant_After_Elaboration   => Name_Constant_After_Elaboration,
        Aspect_Constant_Indexing            => Name_Constant_Indexing,
        Aspect_Contract_Cases               => Name_Contract_Cases,
+       Aspect_Constructor                  => Name_Constructor,
        Aspect_Convention                   => Name_Convention,
        Aspect_CPU                          => Name_CPU,
        Aspect_CUDA_Device                  => Name_CUDA_Device,
*************** package Aspects is
*** 742,747 ****
--- 752,758 ----
        Aspect_Inline                       => Name_Inline,
        Aspect_Inline_Always                => Name_Inline_Always,
        Aspect_Initial_Condition            => Name_Initial_Condition,
+       Aspect_Initialize                   => Name_Initialize,
        Aspect_Initializes                  => Name_Initializes,
        Aspect_Input                        => Name_Input,
        Aspect_Integer_Literal              => Name_Integer_Literal,
*************** package Aspects is
*** 780,785 ****
--- 791,797 ----
        Aspect_Preelaborable_Initialization => Name_Preelaborable_Initialization,
        Aspect_Preelaborate                 => Name_Preelaborate,
        Aspect_Priority                     => Name_Priority,
+       Aspect_Program_Exit                 => Name_Program_Exit,
        Aspect_Pure                         => Name_Pure,
        Aspect_Pure_Function                => Name_Pure_Function,
        Aspect_Put_Image                    => Name_Put_Image,
*************** package Aspects is
*** 965,970 ****
--- 977,983 ----
        Aspect_Asynchronous                 => Always_Delay,
        Aspect_Attach_Handler               => Always_Delay,
        Aspect_Constant_Indexing            => Always_Delay,
+       Aspect_Constructor                  => Always_Delay,
        Aspect_CPU                          => Always_Delay,
        Aspect_CUDA_Device                  => Always_Delay,
        Aspect_CUDA_Global                  => Always_Delay,
*************** package Aspects is
*** 1009,1014 ****
--- 1022,1028 ----
        Aspect_Preelaborable_Initialization => Always_Delay,
        Aspect_Preelaborate                 => Always_Delay,
        Aspect_Priority                     => Always_Delay,
+       Aspect_Program_Exit                 => Always_Delay,
        Aspect_Pure                         => Always_Delay,
        Aspect_Pure_Function                => Always_Delay,
        Aspect_Put_Image                    => Always_Delay,
*************** package Aspects is
*** 1070,1075 ****
--- 1084,1090 ----
        Aspect_Import                       => Never_Delay,
        Aspect_Initial_Condition            => Never_Delay,
        Aspect_Local_Restrictions           => Never_Delay,
+       Aspect_Initialize                   => Never_Delay,
        Aspect_Initializes                  => Never_Delay,
        Aspect_Max_Entry_Queue_Length       => Never_Delay,
        Aspect_Max_Queue_Length             => Never_Delay,
diff -Nrcpad gcc-16-20250601/gcc/ada/atree.ads gcc-16-20250608/gcc/ada/atree.ads
*** gcc-16-20250601/gcc/ada/atree.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/atree.ads	Sun Jun  8 22:32:15 2025
*************** package Atree is
*** 299,318 ****
     --  This function allocates a new node, and then initializes it by copying
     --  the contents of the source node into it. The contents of the source node
     --  is not affected. The target node is always marked as not being in a list
!    --  (even if the source is a list member), and not overloaded. The new node
!    --  will have an extension if the source has an extension. New_Copy (Empty)
!    --  returns Empty, and New_Copy (Error) returns Error. Note that, unlike
!    --  Copy_Separate_Tree, New_Copy does not recursively copy any descendants,
!    --  so in general parent pointers are not set correctly for the descendants
!    --  of the copied node.
  
     function Relocate_Node (Source : Node_Id) return Node_Id;
     --  Source is a non-entity node that is to be relocated. A new node is
     --  allocated, and the contents of Source are copied to this node, using
     --  New_Copy. The parent pointers of descendants of the node are then
     --  adjusted to point to the relocated copy. The original node is not
!    --  modified, but the parent pointers of its descendants are no longer
!    --  valid. The new copy is always marked as not overloaded. This routine is
     --  used in conjunction with the tree rewrite routines (see descriptions of
     --  Replace/Rewrite).
     --
--- 299,317 ----
     --  This function allocates a new node, and then initializes it by copying
     --  the contents of the source node into it. The contents of the source node
     --  is not affected. The target node is always marked as not being in a list
!    --  (even if the source is a list member), and not overloaded.
!    --  New_Copy (Empty) returns Empty, and New_Copy (Error) returns Error. Note
!    --  that, unlike Copy_Separate_Tree, New_Copy does not recursively copy any
!    --  descendants, so in general parent pointers are not set correctly for the
!    --  descendants of the copied node.
  
     function Relocate_Node (Source : Node_Id) return Node_Id;
     --  Source is a non-entity node that is to be relocated. A new node is
     --  allocated, and the contents of Source are copied to this node, using
     --  New_Copy. The parent pointers of descendants of the node are then
     --  adjusted to point to the relocated copy. The original node is not
!    --  modified, but the parent pointers of its children no longer point back
!    --  at it. The new copy is always marked as not overloaded. This routine is
     --  used in conjunction with the tree rewrite routines (see descriptions of
     --  Replace/Rewrite).
     --
diff -Nrcpad gcc-16-20250601/gcc/ada/checks.adb gcc-16-20250608/gcc/ada/checks.adb
*** gcc-16-20250601/gcc/ada/checks.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/checks.adb	Sun Jun  8 22:32:15 2025
*************** package body Checks is
*** 8163,8168 ****
--- 8163,8169 ----
        end if;
  
        declare
+          Decl   : Node_Id;
           CE     : Node_Id;
           PV     : Node_Id;
           Var_Id : Entity_Id;
*************** package body Checks is
*** 8215,8226 ****
              Mutate_Ekind (Var_Id, E_Variable);
              Set_Etype (Var_Id, Typ);
  
!             Insert_Action (Exp,
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Var_Id,
                  Object_Definition   => New_Occurrence_Of (Typ, Loc),
!                 Expression          => New_Copy_Tree (Exp)),
!               Suppress => Validity_Check);
  
              Set_Validated_Object (Var_Id, New_Copy_Tree (Exp));
  
--- 8216,8235 ----
              Mutate_Ekind (Var_Id, E_Variable);
              Set_Etype (Var_Id, Typ);
  
!             Decl :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Var_Id,
                  Object_Definition   => New_Occurrence_Of (Typ, Loc),
!                 Expression          => New_Copy_Tree (Exp));
! 
!             --  We might be validity-checking object whose type is declared as
!             --  limited but completion is a scalar type. We need to explicitly
!             --  flag its assignment as OK, as otherwise it would be rejected by
!             --  the language rules.
! 
!             Set_Assignment_OK (Decl);
! 
!             Insert_Action (Exp, Decl, Suppress => Validity_Check);
  
              Set_Validated_Object (Var_Id, New_Copy_Tree (Exp));
  
diff -Nrcpad gcc-16-20250601/gcc/ada/clean.adb gcc-16-20250608/gcc/ada/clean.adb
*** gcc-16-20250601/gcc/ada/clean.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/clean.adb	Sun Jun  8 22:32:15 2025
*************** package body Clean is
*** 319,325 ****
                    Delete ("", Executable);
                 end if;
  
!                Delete_Binder_Generated_Files (Get_Current_Dir, Source);
              end;
           end if;
        end loop;
--- 319,327 ----
                    Delete ("", Executable);
                 end if;
  
!                Delete_Binder_Generated_Files
!                  (GNAT.Directory_Operations.Get_Current_Dir,
!                   Source);
              end;
           end if;
        end loop;
*************** package body Clean is
*** 405,411 ****
        Source : File_Name_Type)
     is
        Source_Name : constant String   := Get_Name_String (Source);
!       Current     : constant String   := Get_Current_Dir;
        Last        : constant Positive := B_Start'Length + Source_Name'Length;
        File_Name   : String (1 .. Last + 4);
  
--- 407,414 ----
        Source : File_Name_Type)
     is
        Source_Name : constant String   := Get_Name_String (Source);
!       Current : constant String :=
!         GNAT.Directory_Operations.Get_Current_Dir;
        Last        : constant Positive := B_Start'Length + Source_Name'Length;
        File_Name   : String (1 .. Last + 4);
  
diff -Nrcpad gcc-16-20250601/gcc/ada/contracts.adb gcc-16-20250608/gcc/ada/contracts.adb
*** gcc-16-20250601/gcc/ada/contracts.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/contracts.adb	Sun Jun  8 22:32:15 2025
*************** package body Contracts is
*** 110,117 ****
     --  Expand the contracts of a subprogram body and its correspoding spec (if
     --  any). This routine processes all [refined] pre- and postconditions as
     --  well as Always_Terminates, Contract_Cases, Exceptional_Cases,
!    --  Subprogram_Variant, invariants and predicates. Body_Id denotes the
!    --  entity of the subprogram body.
  
     procedure Preanalyze_Condition
       (Subp : Entity_Id;
--- 110,117 ----
     --  Expand the contracts of a subprogram body and its correspoding spec (if
     --  any). This routine processes all [refined] pre- and postconditions as
     --  well as Always_Terminates, Contract_Cases, Exceptional_Cases,
!    --  Program_Exit, Subprogram_Variant, invariants and predicates. Body_Id
!    --  denotes the entity of the subprogram body.
  
     procedure Preanalyze_Condition
       (Subp : Entity_Id;
*************** package body Contracts is
*** 235,240 ****
--- 235,241 ----
        --    Interrupt_Handler
        --    Postcondition
        --    Precondition
+       --    Program_Exit
        --    Side_Effects
        --    Subprogram_Variant
        --    Test_Case
*************** package body Contracts is
*** 267,272 ****
--- 268,274 ----
                           | Name_Contract_Cases
                           | Name_Exceptional_Cases
                           | Name_Exit_Cases
+                          | Name_Program_Exit
                           | Name_Subprogram_Variant
                           | Name_Test_Case
           then
*************** package body Contracts is
*** 647,655 ****
        end if;
  
        --  Deal with preconditions, [refined] postconditions, Always_Terminates,
!       --  Contract_Cases, Exceptional_Cases, Subprogram_Variant, invariants and
!       --  predicates associated with body and its spec. Do not expand the
!       --  contract of subprogram body stubs.
  
        if Nkind (Body_Decl) = N_Subprogram_Body then
           Expand_Subprogram_Contract (Body_Id);
--- 649,657 ----
        end if;
  
        --  Deal with preconditions, [refined] postconditions, Always_Terminates,
!       --  Contract_Cases, Exceptional_Cases, Program_Exit, Subprogram_Variant,
!       --  invariants and predicates associated with body and its spec. Do not
!       --  expand the contract of subprogram body stubs.
  
        if Nkind (Body_Decl) = N_Subprogram_Body then
           Expand_Subprogram_Contract (Body_Id);
*************** package body Contracts is
*** 797,802 ****
--- 799,807 ----
              elsif Prag_Nam = Name_Exceptional_Cases then
                 Analyze_Exceptional_Cases_In_Decl_Part (Prag);
  
+             elsif Prag_Nam = Name_Program_Exit then
+                Analyze_Program_Exit_In_Decl_Part (Prag);
+ 
              elsif Prag_Nam = Name_Subprogram_Variant then
                 Analyze_Subprogram_Variant_In_Decl_Part (Prag);
  
*************** package body Contracts is
*** 1413,1418 ****
--- 1418,1424 ----
        --    Global
        --    Postcondition
        --    Precondition
+       --    Program_Exit
        --    Subprogram_Variant
        --    Test_Case
  
*************** package body Contracts is
*** 2422,2427 ****
--- 2428,2434 ----
              --  verify the return value.
  
              Result := Make_Defining_Identifier (Loc, Name_uResult);
+             Mutate_Ekind (Result, E_Constant);
              Set_Etype (Result, Typ);
  
              --  Add an invariant check when the return type has invariants and
*************** package body Contracts is
*** 2761,2766 ****
--- 2768,2776 ----
                       elsif Pragma_Name (Prag) = Name_Exit_Cases then
                          Expand_Pragma_Exit_Cases (Prag);
  
+                      elsif Pragma_Name (Prag) = Name_Program_Exit then
+                         Expand_Pragma_Program_Exit (Prag);
+ 
                       elsif Pragma_Name (Prag) = Name_Subprogram_Variant then
                          Expand_Pragma_Subprogram_Variant
                            (Prag       => Prag,
*************** package body Contracts is
*** 4909,4915 ****
        Install_Formals (Subp);
        Inside_Class_Condition_Preanalysis := True;
  
!       Preanalyze_Spec_Expression (Expr, Standard_Boolean);
  
        Inside_Class_Condition_Preanalysis := False;
        End_Scope;
--- 4919,4925 ----
        Install_Formals (Subp);
        Inside_Class_Condition_Preanalysis := True;
  
!       Preanalyze_And_Resolve_Spec_Expression (Expr, Standard_Boolean);
  
        Inside_Class_Condition_Preanalysis := False;
        End_Scope;
diff -Nrcpad gcc-16-20250601/gcc/ada/contracts.ads gcc-16-20250608/gcc/ada/contracts.ads
*** gcc-16-20250601/gcc/ada/contracts.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/contracts.ads	Sun Jun  8 22:32:15 2025
*************** package Contracts is
*** 56,61 ****
--- 56,62 ----
     --    Part_Of
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Contracts is
*** 90,95 ****
--- 91,97 ----
     --    Global             (stand alone subprogram body)
     --    Postcondition      (stand alone subprogram body)
     --    Precondition       (stand alone subprogram body)
+    --    Program_Exit       (stand alone subprogram body)
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Contracts is
*** 110,115 ****
--- 112,118 ----
     --    Global
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Subprogram_Variant
     --    Test_Case
     --
*************** package Contracts is
*** 186,191 ****
--- 189,195 ----
     --    Global
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
diff -Nrcpad gcc-16-20250601/gcc/ada/cstand.adb gcc-16-20250608/gcc/ada/cstand.adb
*** gcc-16-20250601/gcc/ada/cstand.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/cstand.adb	Sun Jun  8 22:32:15 2025
*************** package body CStand is
*** 67,76 ****
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Int;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Int);
     --  Procedure to build standard predefined float base type. The first
     --  parameter is the entity for the type. The second parameter is the
     --  digits value. The third parameter indicates the representation to
--- 67,76 ----
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Pos;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Nat);
     --  Procedure to build standard predefined float base type. The first
     --  parameter is the entity for the type. The second parameter is the
     --  digits value. The third parameter indicates the representation to
*************** package body CStand is
*** 192,201 ****
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Int;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Int)
     is
     begin
        Set_Type_Definition (Parent (E),
--- 192,201 ----
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Pos;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Nat)
     is
     begin
        Set_Type_Definition (Parent (E),
*************** package body CStand is
*** 612,638 ****
        Set_Is_Pure (Standard_Standard);
        Set_Is_Compilation_Unit (Standard_Standard);
  
!       --  Create type/subtype declaration nodes for standard types
  
        for S in S_Types loop
! 
!          --  Subtype declaration case
! 
!          if S = S_Natural or else S = S_Positive then
!             Decl := New_Node (N_Subtype_Declaration, Stloc);
!             Set_Subtype_Indication (Decl,
!               New_Occurrence_Of (Standard_Integer, Stloc));
! 
!          --  Full type declaration case
! 
!          else
              Decl := New_Node (N_Full_Type_Declaration, Stloc);
           end if;
- 
-          Set_Is_Frozen (Standard_Entity (S));
-          Set_Is_Public (Standard_Entity (S));
-          Set_Defining_Identifier (Decl, Standard_Entity (S));
-          Append (Decl, Decl_S);
        end loop;
  
        Create_Back_End_Float_Types;
--- 612,625 ----
        Set_Is_Pure (Standard_Standard);
        Set_Is_Compilation_Unit (Standard_Standard);
  
!       --  Create type declaration nodes for standard types
  
        for S in S_Types loop
!          if S not in S_Natural | S_Positive then
              Decl := New_Node (N_Full_Type_Declaration, Stloc);
+             Set_Defining_Identifier (Decl, Standard_Entity (S));
+             Append (Decl, Decl_S);
           end if;
        end loop;
  
        Create_Back_End_Float_Types;
*************** package body CStand is
*** 1023,1028 ****
--- 1010,1023 ----
          Hb  => Intval (High_Bound (Scalar_Range (Standard_Integer))));
        Set_Is_Constrained (Standard_Natural);
  
+       Append_To
+         (Decl_S,
+          Make_Subtype_Declaration
+            (Stloc,
+             Standard_Natural,
+             Subtype_Indication =>
+               New_Occurrence_Of (Standard_Integer, Stloc)));
+ 
        --  Setup entity for Positive
  
        Mutate_Ekind (Standard_Positive, E_Signed_Integer_Subtype);
*************** package body CStand is
*** 1040,1045 ****
--- 1035,1048 ----
           Hb  => Intval (High_Bound (Scalar_Range (Standard_Integer))));
        Set_Is_Constrained   (Standard_Positive);
  
+       Append_To
+         (Decl_S,
+          Make_Subtype_Declaration
+            (Stloc,
+             Standard_Positive,
+             Subtype_Indication =>
+               New_Occurrence_Of (Standard_Integer, Stloc)));
+ 
        --  Create declaration for package ASCII
  
        Decl := New_Node (N_Package_Declaration, Stloc);
*************** package body CStand is
*** 2083,2089 ****
        Set_Defining_Identifier (New_Node (N_Full_Type_Declaration, Stloc), Ent);
        Set_Scope (Ent, Standard_Standard);
        Build_Float_Type
!         (Ent, Pos (Digs), Float_Rep, Int (Size), Int (Alignment / 8));
  
        Append_New_Elmt (Ent, Back_End_Float_Types);
     end Register_Float_Type;
--- 2086,2092 ----
        Set_Defining_Identifier (New_Node (N_Full_Type_Declaration, Stloc), Ent);
        Set_Scope (Ent, Standard_Standard);
        Build_Float_Type
!         (Ent, Pos (Digs), Float_Rep, Int (Size), Nat (Alignment / 8));
  
        Append_New_Elmt (Ent, Back_End_Float_Types);
     end Register_Float_Type;
*************** package body CStand is
*** 2092,2098 ****
     -- Set_Float_Bounds --
     ----------------------
  
!    procedure Set_Float_Bounds (Id  : Entity_Id) is
        L : Node_Id;
        H : Node_Id;
        --  Low and high bounds of literal value
--- 2095,2101 ----
     -- Set_Float_Bounds --
     ----------------------
  
!    procedure Set_Float_Bounds (Id : Entity_Id) is
        L : Node_Id;
        H : Node_Id;
        --  Low and high bounds of literal value
diff -Nrcpad gcc-16-20250601/gcc/ada/cstand.ads gcc-16-20250608/gcc/ada/cstand.ads
*** gcc-16-20250601/gcc/ada/cstand.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/cstand.ads	Sun Jun  8 22:32:15 2025
*************** package CStand is
*** 42,48 ****
     --  The semantics info is in the format given by Entity_Info. The global
     --  variables Last_Standard_Node_Id and Last_Standard_List_Id are also set.
  
!    procedure Set_Float_Bounds (Id  : Entity_Id);
     --  Procedure to set bounds for float type or subtype. Id is the entity
     --  whose bounds and type are to be set (a floating-point type).
  
--- 42,48 ----
     --  The semantics info is in the format given by Entity_Info. The global
     --  variables Last_Standard_Node_Id and Last_Standard_List_Id are also set.
  
!    procedure Set_Float_Bounds (Id : Entity_Id);
     --  Procedure to set bounds for float type or subtype. Id is the entity
     --  whose bounds and type are to be set (a floating-point type).
  
diff -Nrcpad gcc-16-20250601/gcc/ada/debug.adb gcc-16-20250608/gcc/ada/debug.adb
*** gcc-16-20250601/gcc/ada/debug.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/debug.adb	Sun Jun  8 22:32:15 2025
*************** package body Debug is
*** 168,174 ****
     --  d_A  Stop generation of ALI file
     --  d_B  Warn on build-in-place function calls
     --  d_C
!    --  d_D  Use improved diagnostics
     --  d_E  Print diagnostics and switch repository
     --  d_F  Encode full invocation paths in ALI files
     --  d_G
--- 168,174 ----
     --  d_A  Stop generation of ALI file
     --  d_B  Warn on build-in-place function calls
     --  d_C
!    --  d_D
     --  d_E  Print diagnostics and switch repository
     --  d_F  Encode full invocation paths in ALI files
     --  d_G
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-brief_emitter.adb gcc-16-20250608/gcc/ada/diagnostics-brief_emitter.adb
*** gcc-16-20250601/gcc/ada/diagnostics-brief_emitter.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-brief_emitter.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,137 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --             D I A G N O S T I C S . B R I E F _ E M I T T E R            --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Diagnostics.Utils;             use Diagnostics.Utils;
- with Erroutc;                       use Erroutc;
- with Opt;                           use Opt;
- with Output;                        use Output;
- 
- package body Diagnostics.Brief_Emitter is
- 
-    procedure Print_Sub_Diagnostic
-      (Sub_Diag : Sub_Diagnostic_Type;
-       Diag     : Diagnostic_Type);
- 
-    --------------------------
-    -- Print_Sub_Diagnostic --
-    --------------------------
- 
-    procedure Print_Sub_Diagnostic
-      (Sub_Diag : Sub_Diagnostic_Type;
-       Diag     : Diagnostic_Type)
-    is
-       --  In GNAT sub messages were grouped by the main messages by also having
-       --  the same location. In the brief printer we use the primary location
-       --  of the main diagnostic for all of the subdiagnostics.
-       Prim_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
- 
-       Sptr     : constant Source_Ptr        := Prim_Loc.Span.Ptr;
- 
-       Text     : String_Ptr;
- 
-       Line_Length : constant Nat := (if Error_Msg_Line_Length = 0 then Nat'Last
-           else Error_Msg_Line_Length);
- 
-       Switch_Str : constant String := Get_Doc_Switch (Diag);
-    begin
-       Text := new String'(To_String (Sptr) & ": "
-          & Kind_To_String (Sub_Diag, Diag)  & ": "
-          & Sub_Diag.Message.all);
- 
-       if Switch_Str /= "" then
-          Text := new String'(Text.all & " " & Switch_Str);
-       end if;
- 
-       if Diag.Warn_Err then
-          Text := new String'(Text.all & " [warning-as-error]");
-       end if;
- 
-       Output_Text_Within (Text, Line_Length);
-       Write_Eol;
-    end Print_Sub_Diagnostic;
- 
-    ----------------------
-    -- Print_Diagnostic --
-    ----------------------
- 
-    procedure Print_Diagnostic (Diag : Diagnostic_Type) is
-       use Sub_Diagnostic_Lists;
- 
-       Prim_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
- 
-       Sptr     : constant Source_Ptr        := Prim_Loc.Span.Ptr;
- 
-       Text     : String_Ptr;
- 
-       Line_Length : constant Nat := (if Error_Msg_Line_Length = 0 then Nat'Last
-           else Error_Msg_Line_Length);
- 
-       Switch_Str : constant String := Get_Doc_Switch (Diag);
-    begin
-       Write_Str (To_String (Sptr) & ": ");
- 
-       --  Ignore the message prefix on Style messages. They will use
-       --  the (style) prefix within the message.
-       --
-       --  Also disable the "error:" prefix if Unique_Error_Tag is unset.
- 
-       if (Diag.Kind = Style and then not Diag.Warn_Err)
-          or else (Diag.Kind = Error and then not Unique_Error_Tag)
-       then
-          Text := new String'("");
-       else
-          Text := new String'(Kind_To_String (Diag) & ": ");
-       end if;
- 
-       Text := new String'(Text.all & Diag.Message.all);
- 
-       if Switch_Str /= "" then
-          Text := new String'(Text.all & " " & Switch_Str);
-       end if;
- 
-       if Diag.Warn_Err then
-          Text := new String'(Text.all & " [warning-as-error]");
-       end if;
- 
-       Output_Text_Within (Text, Line_Length);
-       Write_Eol;
- 
-       if Present (Diag.Sub_Diagnostics) then
-          declare
- 
-             Sub_Diag : Sub_Diagnostic_Type;
- 
-             It : Iterator := Iterate (Diag.Sub_Diagnostics);
-          begin
-             while Has_Next (It) loop
-                Next (It, Sub_Diag);
- 
-                Print_Sub_Diagnostic (Sub_Diag, Diag);
-             end loop;
-          end;
-       end if;
- 
-    end Print_Diagnostic;
- end Diagnostics.Brief_Emitter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-brief_emitter.ads gcc-16-20250608/gcc/ada/diagnostics-brief_emitter.ads
*** gcc-16-20250601/gcc/ada/diagnostics-brief_emitter.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-brief_emitter.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --             D I A G N O S T I C S . B R I E F _ E M I T T E R            --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package Diagnostics.Brief_Emitter is
-    procedure Print_Diagnostic (Diag : Diagnostic_Type);
- end Diagnostics.Brief_Emitter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-constructors.adb gcc-16-20250608/gcc/ada/diagnostics-constructors.adb
*** gcc-16-20250601/gcc/ada/diagnostics-constructors.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-constructors.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,514 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --             D I A G N O S T I C S . C O N S T R U C T O R S              --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Sinfo.Nodes;                   use Sinfo.Nodes;
- with Diagnostics.Utils;             use Diagnostics.Utils;
- 
- package body Diagnostics.Constructors is
- 
-    -----------------------------------------------
-    -- Make_Default_Iterator_Not_Primitive_Error --
-    -----------------------------------------------
- 
-    function Make_Default_Iterator_Not_Primitive_Error
-      (Expr : Node_Id;
-       Subp : Entity_Id) return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg       => "improper function for default iterator",
-            Location  => Primary_Labeled_Span (Expr),
-            Id        => GNAT0001,
-            Kind      => Diagnostics.Error,
-            Sub_Diags =>
-              (1 =>
-                 Continuation
-                   (Msg =>
-                      "default iterator defined " &
-                      Sloc_To_String (Subp, Sloc (Expr)) &
-                      " must be a local primitive or class-wide function",
-                    Locations =>
-                      (1 => Primary_Labeled_Span (Subp)))));
-    end Make_Default_Iterator_Not_Primitive_Error;
- 
-    -------------------------------------------------
-    -- Record_Default_Iterator_Not_Primitive_Error --
-    -------------------------------------------------
- 
-    procedure Record_Default_Iterator_Not_Primitive_Error
-      (Expr : Node_Id;
-       Subp : Entity_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Default_Iterator_Not_Primitive_Error (Expr, Subp));
-    end Record_Default_Iterator_Not_Primitive_Error;
- 
-    ---------------------------------------------------
-    -- Make_Invalid_Operand_Types_For_Operator_Error --
-    ---------------------------------------------------
- 
-    function Make_Invalid_Operand_Types_For_Operator_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id) return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg      => "invalid operand types for operator " & To_Name (Op),
-            Location => Primary_Labeled_Span (Op),
-            Id       => GNAT0002,
-            Kind     => Diagnostics.Error,
-            Spans    =>
-              (1 =>
-                 (Secondary_Labeled_Span
-                    (N     => L,
-                     Label => To_Type_Name (L_Type))),
-               2 =>
-                 Secondary_Labeled_Span
-                   (N     => R,
-                    Label => To_Type_Name (R_Type))));
-    end Make_Invalid_Operand_Types_For_Operator_Error;
- 
-    -----------------------------------------------------
-    -- Record_Invalid_Operand_Types_For_Operator_Error --
-    -----------------------------------------------------
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id)
-    is
- 
-    begin
-       Record_Diagnostic
-         (Make_Invalid_Operand_Types_For_Operator_Error
-            (Op, L, L_Type, R, R_Type));
-    end Record_Invalid_Operand_Types_For_Operator_Error;
- 
-    ---------------------------------------------------------
-    -- Make_Invalid_Operand_Types_For_Operator_L_Int_Error --
-    ---------------------------------------------------------
- 
-    function Make_Invalid_Operand_Types_For_Operator_L_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id) return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg      => "invalid operand types for operator " & To_Name (Op),
-            Location => Primary_Labeled_Span (Op),
-            Id       => GNAT0003,
-            Kind     => Diagnostics.Error,
-            Spans    =>
-              (1 =>
-                 (Secondary_Labeled_Span
-                    (N     => L,
-                     Label =>
-                       "left operand has type " &
-                       To_Name (L_Type))),
-               2 =>
-                 Secondary_Labeled_Span
-                   (N     => R,
-                    Label =>
-                      "right operand has type " &
-                      To_Name (R_Type))),
-             Sub_Diags =>
-               (1 => Suggestion (Msg => "Convert left operand to ""Integer""")
-             )
-          );
-    end Make_Invalid_Operand_Types_For_Operator_L_Int_Error;
- 
-    -----------------------------------------------------------
-    -- Record_Invalid_Operand_Types_For_Operator_L_Int_Error --
-    -----------------------------------------------------------
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_L_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id)
-    is
- 
-    begin
-       Record_Diagnostic
-         (Make_Invalid_Operand_Types_For_Operator_L_Int_Error
-            (Op, L, L_Type, R, R_Type));
-    end Record_Invalid_Operand_Types_For_Operator_L_Int_Error;
- 
-    ---------------------------------------------------------
-    -- Make_Invalid_Operand_Types_For_Operator_R_Int_Error --
-    ---------------------------------------------------------
- 
-    function Make_Invalid_Operand_Types_For_Operator_R_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id) return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg      => "invalid operand types for operator " & To_Name (Op),
-            Location => Primary_Labeled_Span (Op),
-            Id       => GNAT0004,
-            Kind     => Diagnostics.Error,
-            Spans    =>
-              (1 =>
-                 Secondary_Labeled_Span
-                    (N     => L,
-                     Label =>
-                       "left operand has type " &
-                       To_Name (L_Type)),
-               2 =>
-                 Secondary_Labeled_Span
-                   (N     => R,
-                    Label =>
-                      "right operand has type " &
-                      To_Name (R_Type))),
-             Sub_Diags =>
-               (1 => Suggestion (Msg => "Convert right operand to ""Integer""")
-             )
-          );
-    end Make_Invalid_Operand_Types_For_Operator_R_Int_Error;
- 
-    -----------------------------------------------------------
-    -- Record_Invalid_Operand_Types_For_Operator_R_Int_Error --
-    -----------------------------------------------------------
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_R_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id)
-    is
- 
-    begin
-       Record_Diagnostic
-         (Make_Invalid_Operand_Types_For_Operator_R_Int_Error
-            (Op, L, L_Type, R, R_Type));
-    end Record_Invalid_Operand_Types_For_Operator_R_Int_Error;
- 
-    ---------------------------------------------------------
-    -- Make_Invalid_Operand_Types_For_Operator_L_Acc_Error --
-    ---------------------------------------------------------
- 
-    function Make_Invalid_Operand_Types_For_Operator_L_Acc_Error
-      (Op     : Node_Id;
-       L      : Node_Id) return Diagnostic_Type
-    is
- 
-    begin
-       return
-         Make_Diagnostic
-           (Msg      => "invalid operand types for operator " & To_Name (Op),
-            Location => Primary_Labeled_Span (Op),
-            Id       => GNAT0005,
-            Kind     => Diagnostics.Error,
-            Spans    =>
-              (1 =>
-                 Secondary_Labeled_Span
-                    (N     => L,
-                     Label =>
-                       "left operand is access type ")
-             )
-          );
-    end Make_Invalid_Operand_Types_For_Operator_L_Acc_Error;
- 
-    -----------------------------------------------------------
-    -- Record_Invalid_Operand_Types_For_Operator_L_Acc_Error --
-    -----------------------------------------------------------
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_L_Acc_Error
-      (Op     : Node_Id;
-       L      : Node_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
-            (Op, L));
-    end Record_Invalid_Operand_Types_For_Operator_L_Acc_Error;
- 
-    ---------------------------------------------------------
-    -- Make_Invalid_Operand_Types_For_Operator_L_Acc_Error --
-    ---------------------------------------------------------
- 
-    function Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
-      (Op     : Node_Id;
-       R      : Node_Id) return Diagnostic_Type
-    is
- 
-    begin
-       return
-         Make_Diagnostic
-           (Msg      => "invalid operand types for operator " & To_Name (Op),
-            Location => Primary_Labeled_Span (Op),
-            Id       => GNAT0006,
-            Kind     => Diagnostics.Error,
-            Spans    =>
-              (1 =>
-                 Secondary_Labeled_Span
-                    (N     => R,
-                     Label =>
-                       "right operand is access type ")
-             )
-          );
-    end Make_Invalid_Operand_Types_For_Operator_R_Acc_Error;
- 
-    -----------------------------------------------------------
-    -- Record_Invalid_Operand_Types_For_Operator_R_Acc_Error --
-    -----------------------------------------------------------
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_R_Acc_Error
-      (Op     : Node_Id;
-       R      : Node_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
-            (Op, R));
-    end Record_Invalid_Operand_Types_For_Operator_R_Acc_Error;
- 
-    -----------------------------------------------------------
-    -- Make_Invalid_Operand_Types_For_Operator_General_Error --
-    -----------------------------------------------------------
- 
-    function Make_Invalid_Operand_Types_For_Operator_General_Error
-      (Op : Node_Id) return Diagnostic_Type
-    is
- 
-    begin
-       return
-         Make_Diagnostic
-           (Msg      => "invalid operand types for operator " & To_Name (Op),
-            Location => Primary_Labeled_Span (Op),
-            Id       => GNAT0007,
-            Kind     => Diagnostics.Error
-          );
-    end Make_Invalid_Operand_Types_For_Operator_General_Error;
- 
-    -------------------------------------------------------------
-    -- Record_Invalid_Operand_Types_For_Operator_General_Error --
-    -------------------------------------------------------------
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_General_Error
-      (Op     : Node_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Invalid_Operand_Types_For_Operator_General_Error (Op));
-    end Record_Invalid_Operand_Types_For_Operator_General_Error;
- 
-    --------------------------------------------------
-    -- Make_Pragma_No_Effect_With_Lock_Free_Warning --
-    --------------------------------------------------
- 
-    function Make_Pragma_No_Effect_With_Lock_Free_Warning
-      (Pragma_Node    : Node_Id; Pragma_Name : Name_Id;
-       Lock_Free_Node : Node_Id; Lock_Free_Range : Node_Id)
-       return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg      =>
-              "pragma " & '"' & Get_Name_String (Pragma_Name) & '"' &
-              " for " & To_Name (Lock_Free_Node) &
-              " has no effect when Lock_Free given",
-            Location => Primary_Labeled_Span (Pragma_Node, "No effect"),
-            Id       => GNAT0008,
-            Kind     => Diagnostics.Warning,
-            Spans    =>
-              (1 =>
-                 Labeled_Span
-                   (Span       => To_Full_Span (Lock_Free_Range),
-                    Label      => "Lock_Free in effect here",
-                    Is_Primary => False,
-                    Is_Region  => True)));
-    end Make_Pragma_No_Effect_With_Lock_Free_Warning;
- 
-    --------------------------------------------
-    -- Record_Pragma_No_Effect_With_Lock_Free --
-    --------------------------------------------
- 
-    procedure Record_Pragma_No_Effect_With_Lock_Free_Warning
-      (Pragma_Node : Node_Id;
-       Pragma_Name : Name_Id;
-       Lock_Free_Node : Node_Id;
-       Lock_Free_Range : Node_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Pragma_No_Effect_With_Lock_Free_Warning
-            (Pragma_Node, Pragma_Name, Lock_Free_Node, Lock_Free_Range));
-    end Record_Pragma_No_Effect_With_Lock_Free_Warning;
- 
-    ----------------------------------
-    -- Make_End_Loop_Expected_Error --
-    ----------------------------------
- 
-    function Make_End_Loop_Expected_Error
-      (End_Loc   : Source_Span;
-       Start_Loc : Source_Ptr) return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg      =>
-              """end loop;"" expected for ""loop"" " &
-              Sloc_To_String (Start_Loc, End_Loc.Ptr),
-            Location => Primary_Labeled_Span (End_Loc),
-            Id       => GNAT0009,
-            Kind     => Diagnostics.Error,
-            Spans    => (1 => Secondary_Labeled_Span (To_Span (Start_Loc))),
-            Fixes    =>
-              (1 =>
-                 Fix
-                   (Description   => "Replace with 'end loop;'",
-                    Edits         =>
-                      (1 => Edit (Text => "end loop;", Span => End_Loc)),
-                    Applicability => Legal)));
-    end Make_End_Loop_Expected_Error;
- 
-    ------------------------------------
-    -- Record_End_Loop_Expected_Error --
-    ------------------------------------
- 
-    procedure Record_End_Loop_Expected_Error
-      (End_Loc : Source_Span; Start_Loc : Source_Ptr)
-    is
-    begin
-       Record_Diagnostic (Make_End_Loop_Expected_Error (End_Loc, Start_Loc));
-    end Record_End_Loop_Expected_Error;
- 
-    ----------------------------------------
-    -- Make_Representation_Too_Late_Error --
-    ----------------------------------------
- 
-    function Make_Representation_Too_Late_Error
-      (Rep    : Node_Id;
-       Freeze : Node_Id;
-       Def    : Node_Id)
-       return Diagnostic_Type
-    is
-    begin
-       return
-         Make_Diagnostic
-           (Msg       =>
-              "record representation cannot be specified" &
-              " after the type is frozen",
-            Location  =>
-              Primary_Labeled_Span
-                (N     => Rep,
-                 Label => "record representation clause specified here"),
-            Id        => GNAT0010,
-            Kind      => Error,
-            Spans     =>
-              (1 =>
-                 Secondary_Labeled_Span
-                   (N     => Freeze,
-                    Label =>
-                      "Type " & To_Name (Def) & " is frozen here"),
-               2 =>
-                 Secondary_Labeled_Span
-                   (N     => Def,
-                    Label =>
-                      "Type " & To_Name (Def) & " is declared here")),
-            Sub_Diags =>
-              (1 =>
-                 Suggestion
-                   (Msg  =>
-                      "move the record representation clause" &
-                      " before the freeze point " &
-                      Sloc_To_String (Sloc (Freeze), Sloc (Rep)))));
-    end Make_Representation_Too_Late_Error;
- 
-    ------------------------------------------
-    -- Record_Representation_Too_Late_Error --
-    ------------------------------------------
- 
-    procedure Record_Representation_Too_Late_Error
-      (Rep    : Node_Id;
-       Freeze : Node_Id;
-       Def    : Node_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Representation_Too_Late_Error (Rep, Freeze, Def));
-    end Record_Representation_Too_Late_Error;
- 
-    ------------------------------------------
-    -- Make_Mixed_Container_Aggregate_Error --
-    ------------------------------------------
- 
-    function Make_Mixed_Container_Aggregate_Error
-      (Aggr       : Node_Id;
-       Pos_Elem   : Node_Id;
-       Named_Elem : Node_Id) return Diagnostic_Type
-    is
- 
-    begin
-       return
-         Make_Diagnostic
-           (Msg       =>
-              "container aggregate cannot be both positional and named",
-            Location  => Primary_Labeled_Span (Aggr),
-            Id        => GNAT0011,
-            Kind      => Diagnostics.Error,
-            Spans     =>
-              (1 => Secondary_Labeled_Span
-                (Pos_Elem, "positional element "),
-              2 => Secondary_Labeled_Span
-                (Named_Elem, "named element")));
-    end Make_Mixed_Container_Aggregate_Error;
- 
-    --------------------------------------------
-    -- Record_Mixed_Container_Aggregate_Error --
-    --------------------------------------------
- 
-    procedure Record_Mixed_Container_Aggregate_Error
-      (Aggr       : Node_Id;
-       Pos_Elem   : Node_Id;
-       Named_Elem : Node_Id)
-    is
-    begin
-       Record_Diagnostic
-         (Make_Mixed_Container_Aggregate_Error (Aggr, Pos_Elem, Named_Elem));
-    end Record_Mixed_Container_Aggregate_Error;
- 
- end Diagnostics.Constructors;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-constructors.ads gcc-16-20250608/gcc/ada/diagnostics-constructors.ads
*** gcc-16-20250601/gcc/ada/diagnostics-constructors.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-constructors.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,143 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --             D I A G N O S T I C S . C O N S T R U C T O R S              --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- with Namet; use Namet;
- 
- package Diagnostics.Constructors is
- 
-    function Make_Default_Iterator_Not_Primitive_Error
-      (Expr : Node_Id;
-       Subp : Entity_Id) return Diagnostic_Type;
- 
-    procedure Record_Default_Iterator_Not_Primitive_Error
-      (Expr : Node_Id;
-       Subp : Entity_Id);
- 
-    function Make_Invalid_Operand_Types_For_Operator_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id);
- 
-    function Make_Invalid_Operand_Types_For_Operator_L_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_L_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id);
- 
-    function Make_Invalid_Operand_Types_For_Operator_R_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_R_Int_Error
-      (Op     : Node_Id;
-       L      : Node_Id;
-       L_Type : Node_Id;
-       R      : Node_Id;
-       R_Type : Node_Id);
- 
-    function Make_Invalid_Operand_Types_For_Operator_L_Acc_Error
-      (Op     : Node_Id;
-       L      : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_L_Acc_Error
-      (Op     : Node_Id;
-       L      : Node_Id);
- 
-    function Make_Invalid_Operand_Types_For_Operator_R_Acc_Error
-      (Op     : Node_Id;
-       R      : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_R_Acc_Error
-      (Op     : Node_Id;
-       R      : Node_Id);
- 
-    function Make_Invalid_Operand_Types_For_Operator_General_Error
-      (Op     : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Invalid_Operand_Types_For_Operator_General_Error
-      (Op     : Node_Id);
- 
-    function Make_Pragma_No_Effect_With_Lock_Free_Warning
-      (Pragma_Node     : Node_Id;
-       Pragma_Name     : Name_Id;
-       Lock_Free_Node  : Node_Id;
-       Lock_Free_Range : Node_Id)
-       return Diagnostic_Type;
- 
-    procedure Record_Pragma_No_Effect_With_Lock_Free_Warning
-      (Pragma_Node    : Node_Id;
-       Pragma_Name    : Name_Id;
-       Lock_Free_Node : Node_Id;
-       Lock_Free_Range : Node_Id);
- 
-    function Make_End_Loop_Expected_Error
-      (End_Loc : Source_Span;
-       Start_Loc : Source_Ptr) return Diagnostic_Type;
- 
-    procedure Record_End_Loop_Expected_Error
-      (End_Loc : Source_Span;
-       Start_Loc : Source_Ptr);
- 
-    function Make_Representation_Too_Late_Error
-      (Rep    : Node_Id;
-       Freeze : Node_Id;
-       Def    : Node_Id)
-       return Diagnostic_Type;
- 
-    procedure Record_Representation_Too_Late_Error
-      (Rep    : Node_Id;
-       Freeze : Node_Id;
-       Def    : Node_Id);
- 
-    function Make_Mixed_Container_Aggregate_Error
-      (Aggr       : Node_Id;
-       Pos_Elem   : Node_Id;
-       Named_Elem : Node_Id) return Diagnostic_Type;
- 
-    procedure Record_Mixed_Container_Aggregate_Error
-      (Aggr       : Node_Id;
-       Pos_Elem   : Node_Id;
-       Named_Elem : Node_Id);
- 
- end Diagnostics.Constructors;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-converter.adb gcc-16-20250608/gcc/ada/diagnostics-converter.adb
*** gcc-16-20250601/gcc/ada/diagnostics-converter.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-converter.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,254 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                D I A G N O S T I C S . C O N V E R T E R                 --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- with Erroutc; use Erroutc;
- with Debug;   use Debug;
- with Diagnostics.Repository;        use Diagnostics.Repository;
- with Diagnostics.SARIF_Emitter;     use Diagnostics.SARIF_Emitter;
- with Diagnostics.Switch_Repository; use Diagnostics.Switch_Repository;
- with Opt;    use Opt;
- with Osint;  use Osint;
- with Output; use Output;
- use Diagnostics.Diagnostics_Lists;
- with System.OS_Lib; use System.OS_Lib;
- 
- package body Diagnostics.Converter is
- 
-    function Convert (E_Id : Error_Msg_Id) return Diagnostic_Type;
- 
-    function Convert_Sub_Diagnostic
-      (E_Id : Error_Msg_Id) return Sub_Diagnostic_Type;
- 
-    function Get_Warning_Kind (E_Msg : Error_Msg_Object) return Diagnostic_Kind
-    is (if E_Msg.Warn_Chr = "* " then Restriction_Warning
-        elsif E_Msg.Warn_Chr = "? " then Default_Warning
-        elsif E_Msg.Warn_Chr = "  " then Tagless_Warning
-        else Warning);
-    --  NOTE: Some messages have both info and warning set to true. The old
-    --  printer added the warning switch label but treated the message as
-    --  an info message.
- 
-    function Get_Diagnostics_Kind (E_Msg : Error_Msg_Object)
-                                   return Diagnostic_Kind
-    is (if E_Msg.Kind = Erroutc.Warning then Get_Warning_Kind (E_Msg)
-       elsif E_Msg.Kind = Erroutc.Style then Style
-       elsif E_Msg.Kind = Erroutc.Info then Info
-       elsif E_Msg.Kind = Erroutc.Non_Serious_Error then Non_Serious_Error
-       else Error);
- 
-    -----------------------------------
-    -- Convert_Errors_To_Diagnostics --
-    -----------------------------------
- 
-    procedure Convert_Errors_To_Diagnostics
-    is
-       E : Error_Msg_Id;
-    begin
-       E := First_Error_Msg;
-       while E /= No_Error_Msg loop
- 
-          if not Errors.Table (E).Deleted
-            and then not Errors.Table (E).Msg_Cont
-          then
- 
-             --  We do not need to update the count of converted error messages
-             --  since they are accounted for in their creation.
- 
-             Record_Diagnostic (Convert (E), Update_Count => False);
-          end if;
- 
-          E := Errors.Table (E).Next;
-       end loop;
- 
-    end Convert_Errors_To_Diagnostics;
- 
-    ----------------------------
-    -- Convert_Sub_Diagnostic --
-    ----------------------------
- 
-    function Convert_Sub_Diagnostic
-      (E_Id : Error_Msg_Id) return Sub_Diagnostic_Type
-    is
-       E_Msg : constant Error_Msg_Object := Errors.Table (E_Id);
-       D : Sub_Diagnostic_Type;
-    begin
-       D.Message := E_Msg.Text;
- 
-       --  All converted sub-diagnostics are continuations. When emitted they
-       --  shall be printed with the same kind token as the main diagnostic.
-       D.Kind := Continuation;
- 
-       Add_Location (D,
-         Primary_Labeled_Span
-           (if E_Msg.Insertion_Sloc /= No_Location
-            then To_Span (E_Msg.Insertion_Sloc)
-            else E_Msg.Sptr));
- 
-       if E_Msg.Optr.Ptr /= E_Msg.Sptr.Ptr then
-          Add_Location (D, Secondary_Labeled_Span (E_Msg.Optr));
-       end if;
- 
-       return D;
-    end Convert_Sub_Diagnostic;
- 
-    -------------
-    -- Convert --
-    -------------
- 
-    function Convert (E_Id : Error_Msg_Id) return Diagnostic_Type is
- 
-       E_Next_Id : Error_Msg_Id;
- 
-       E_Msg : constant Error_Msg_Object := Errors.Table (E_Id);
-       D : Diagnostic_Type;
-    begin
-       D.Message := E_Msg.Text;
- 
-       D.Kind := Get_Diagnostics_Kind (E_Msg);
- 
-       if E_Msg.Kind in Erroutc.Warning | Erroutc.Style | Erroutc.Info then
-          D.Switch := Get_Switch_Id (E_Msg);
-       end if;
- 
-       D.Warn_Err := E_Msg.Warn_Err;
- 
-       --  Convert the primary location
- 
-       Add_Location (D, Primary_Labeled_Span (E_Msg.Sptr));
- 
-       --  Convert the secondary location if it is different from the primary
- 
-       if E_Msg.Optr.Ptr /= E_Msg.Sptr.Ptr then
-          Add_Location (D, Secondary_Labeled_Span (E_Msg.Optr));
-       end if;
- 
-       E_Next_Id := Errors.Table (E_Id).Next;
-       while E_Next_Id /= No_Error_Msg
-         and then Errors.Table (E_Next_Id).Msg_Cont
-       loop
-          Add_Sub_Diagnostic (D, Convert_Sub_Diagnostic (E_Next_Id));
-          E_Next_Id := Errors.Table (E_Next_Id).Next;
-       end loop;
- 
-       return D;
-    end Convert;
- 
-    ----------------------
-    -- Emit_Diagnostics --
-    ----------------------
- 
-    procedure Emit_Diagnostics is
-       D : Diagnostic_Type;
- 
-       It : Iterator := Iterate (All_Diagnostics);
- 
-       Sarif_File_Name : constant String :=
-         Get_First_Main_File_Name & ".gnat.sarif";
- 
-       Switches_File_Name : constant String := "gnat_switches.json";
- 
-       Diagnostics_File_Name : constant String := "gnat_diagnostics.json";
- 
-       Dummy : Boolean;
-    begin
-       if Opt.SARIF_Output then
-          Set_Standard_Error;
- 
-          Print_SARIF_Report (All_Diagnostics);
- 
-          Set_Standard_Output;
-       elsif Opt.SARIF_File then
-          Delete_File (Sarif_File_Name, Dummy);
-          declare
-             Output_FD : constant File_Descriptor :=
-               Create_New_File
-                 (Sarif_File_Name,
-                  Fmode => Text);
- 
-          begin
-             Set_Output (Output_FD);
- 
-             Print_SARIF_Report (All_Diagnostics);
- 
-             Set_Standard_Output;
- 
-             Close (Output_FD);
-          end;
-       else
-          Set_Standard_Error;
- 
-          while Has_Next (It) loop
-             Next (It, D);
- 
-             Print_Diagnostic (D);
-          end loop;
- 
-          Set_Standard_Output;
-       end if;
- 
-       if Debug_Flag_Underscore_EE then
- 
-          --  Print the switch repository to a file
- 
-          Delete_File (Switches_File_Name, Dummy);
-          declare
-             Output_FD : constant File_Descriptor :=
-               Create_New_File
-                 (Switches_File_Name,
-                  Fmode => Text);
- 
-          begin
-             Set_Output (Output_FD);
- 
-             Print_Switch_Repository;
- 
-             Set_Standard_Output;
- 
-             Close (Output_FD);
-          end;
- 
-          --  Print the diagnostics repository to a file
- 
-          Delete_File (Diagnostics_File_Name, Dummy);
-          declare
-             Output_FD : constant File_Descriptor :=
-               Create_New_File
-                 (Diagnostics_File_Name,
-                  Fmode => Text);
- 
-          begin
-             Set_Output (Output_FD);
- 
-             Print_Diagnostic_Repository;
- 
-             Set_Standard_Output;
- 
-             Close (Output_FD);
-          end;
-       end if;
- 
-       Destroy (All_Diagnostics);
-    end Emit_Diagnostics;
- 
- end Diagnostics.Converter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-converter.ads gcc-16-20250608/gcc/ada/diagnostics-converter.ads
*** gcc-16-20250601/gcc/ada/diagnostics-converter.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-converter.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                D I A G N O S T I C S . C O N V E R T E R                 --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package Diagnostics.Converter is
- 
-    procedure Convert_Errors_To_Diagnostics;
- 
-    procedure Emit_Diagnostics;
- end Diagnostics.Converter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-json_utils.adb gcc-16-20250608/gcc/ada/diagnostics-json_utils.adb
*** gcc-16-20250601/gcc/ada/diagnostics-json_utils.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-json_utils.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,115 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --               D I A G N O S T I C S . J S O N _ U T I L S                --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- with Output; use Output;
- 
- package body Diagnostics.JSON_Utils is
- 
-    -----------------
-    -- Begin_Block --
-    -----------------
- 
-    procedure Begin_Block is
-    begin
-       Indent_Level := Indent_Level + 1;
-    end Begin_Block;
- 
-    ---------------
-    -- End_Block --
-    ---------------
- 
-    procedure End_Block is
-    begin
-       Indent_Level := Indent_Level - 1;
-    end End_Block;
- 
-    procedure Indent is begin
-       if JSON_FORMATTING then
-          for I in 1 .. INDENT_SIZE * Indent_Level loop
-             Write_Char (' ');
-          end loop;
-       end if;
-    end Indent;
- 
-    -------------------
-    -- NL_And_Indent --
-    -------------------
- 
-    procedure NL_And_Indent is
-    begin
-       if JSON_FORMATTING then
-          Write_Eol;
-          Indent;
-       end if;
-    end NL_And_Indent;
- 
-    -----------------------------
-    -- Write_Boolean_Attribute --
-    -----------------------------
- 
-    procedure Write_Boolean_Attribute (Name : String; Value : Boolean) is
- 
-    begin
-       Write_Str ("""" & Name & """" & ": ");
-       Write_Str (if Value then "true" else "false");
-    end Write_Boolean_Attribute;
- 
-    -------------------------
-    -- Write_Int_Attribute --
-    -------------------------
- 
-    procedure Write_Int_Attribute (Name : String; Value : Int) is
-    begin
-       Write_Str ("""" & Name & """" & ": ");
-       Write_Int (Value);
-    end Write_Int_Attribute;
- 
-    -------------------------------
-    -- Write_JSON_Escaped_String --
-    -------------------------------
- 
-    procedure Write_JSON_Escaped_String (Str : String) is
-    begin
-       for C of Str loop
-          if C = '"' or else C = '\' then
-             Write_Char ('\');
-          end if;
- 
-          Write_Char (C);
-       end loop;
-    end Write_JSON_Escaped_String;
- 
-    ----------------------------
-    -- Write_String_Attribute --
-    ----------------------------
- 
-    procedure Write_String_Attribute (Name : String; Value : String) is
-    begin
-       Write_Str ("""" & Name & """" & ": ");
-       Write_Char ('"');
-       Write_JSON_Escaped_String (Value);
-       Write_Char ('"');
-    end Write_String_Attribute;
- 
- end Diagnostics.JSON_Utils;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-json_utils.ads gcc-16-20250608/gcc/ada/diagnostics-json_utils.ads
*** gcc-16-20250601/gcc/ada/diagnostics-json_utils.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-json_utils.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,75 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --               D I A G N O S T I C S . J S O N _ U T I L S                --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package Diagnostics.JSON_Utils is
- 
-    JSON_FORMATTING : constant Boolean := True;
-    --  Adds newlines and indentation to the output JSON.
-    --
-    --  NOTE: This flag could be associated with the gcc switch:
-    --  '-fno-diagnostics-json-formatting'
- 
-    INDENT_SIZE : constant := 2;
-    --  The number of spaces to indent each level of the JSON output.
- 
-    Indent_Level : Natural := 0;
-    --  The current indentation level.
- 
-    procedure Begin_Block;
-    --  Increase the indentation level by one
- 
-    procedure End_Block;
-    --  Decrease the indentation level by one
- 
-    procedure Indent;
-    --  Print the indentation for the line
- 
-    procedure NL_And_Indent;
-    --  Print a new line
- 
-    procedure Write_Boolean_Attribute (Name : String; Value : Boolean);
-    --  Write a JSON attribute with a boolean value.
-    --
-    --  The value is either 'true' or 'false' without any quotes
- 
-    procedure Write_Int_Attribute (Name : String; Value : Int);
- 
-    procedure Write_JSON_Escaped_String (Str : String);
-    --  Write each character of Str, taking care of preceding each quote and
-    --  backslash with a backslash. Note that this escaping differs from what
-    --  GCC does.
-    --
-    --  Indeed, the JSON specification mandates encoding wide characters
-    --  either as their direct UTF-8 representation or as their escaped
-    --  UTF-16 surrogate pairs representation. GCC seems to prefer escaping -
-    --  we choose to use the UTF-8 representation instead.
- 
-    procedure Write_String_Attribute (Name : String; Value : String);
-    --  Write a JSON attribute with a string value.
-    --
-    --  The Value is surrounded by double quotes ("") and the special characters
-    --  within the string are escaped.
- 
- end Diagnostics.JSON_Utils;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-pretty_emitter.adb gcc-16-20250608/gcc/ada/diagnostics-pretty_emitter.adb
*** gcc-16-20250601/gcc/ada/diagnostics-pretty_emitter.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-pretty_emitter.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,1294 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --             D I A G N O S T I C S . P R E T T Y _ E M I T T E R          --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Diagnostics.Utils; use Diagnostics.Utils;
- with Output;            use Output;
- with Sinput;            use Sinput;
- with Erroutc;           use Erroutc;
- 
- package body Diagnostics.Pretty_Emitter is
- 
-    REGION_OFFSET : constant := 1;
-    --  Number of characters between the line bar and the region span
- 
-    REGION_ARM_SIZE : constant := 2;
-    --  Number of characters on the region span arms
-    --  e.g. two for this case:
-    --   +--
-    --   |
-    --   +--
-    --   ^^
- 
-    REGION_SIZE : constant := REGION_OFFSET + 1 + REGION_ARM_SIZE;
-    --  The total number of characters taken up by the region span characters
- 
-    MAX_BAR_POS : constant := 7;
-    --  The maximum position of the line bar from the start of the line
-    type Printable_Line is record
-       First   : Source_Ptr;
-       --  The first character of the line
- 
-       Last    : Source_Ptr;
-       --  The last character of the line
- 
-       Line_Nr : Pos;
-       --  The line number
- 
-       Spans   : Labeled_Span_List;
-       --  The spans applied on the line
-    end record;
- 
-    procedure Destroy (Elem : in out Printable_Line);
-    pragma Inline (Destroy);
- 
-    function Equals (L, R : Printable_Line) return Boolean is
-      (L.Line_Nr = R.Line_Nr);
- 
-    package Lines_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Printable_Line,
-       "="             => Equals,
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype Lines_List is Lines_Lists.Doubly_Linked_List;
- 
-    type File_Sections is record
-       File  : String_Ptr;
-       --  Name of the file
- 
-       Lines : Lines_List;
-       --  Lines to be printed for the file
-    end record;
- 
-    procedure Destroy (Elem : in out File_Sections);
-    pragma Inline (Destroy);
- 
-    function Equals (L, R : File_Sections) return Boolean is
-      (L.File /= null
-        and then R.File /= null
-        and then L.File.all = R.File.all);
- 
-    package File_Section_Lists is new Doubly_Linked_Lists
-      (Element_Type    => File_Sections,
-       "="             => Equals,
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype File_Section_List is File_Section_Lists.Doubly_Linked_List;
- 
-    function Create_File_Sections (Spans : Labeled_Span_List)
-                                   return File_Section_List;
-    --  Create a list of file sections from the labeled spans that are to be
-    --  printed.
-    --
-    --  Each file section contains a list of lines that are to be printed for
-    --  the file and the spans that are applied to each of those lines.
- 
-    procedure Create_File_Section
-      (Sections : in out File_Section_List;
-       Loc      : Labeled_Span_Type);
-    --  Create a new file section for the given labeled span.
- 
-    procedure Add_Printable_Line
-      (Lines : Lines_List;
-       Loc   : Labeled_Span_Type;
-       S_Ptr : Source_Ptr);
- 
-    procedure Create_Printable_Line
-      (Lines : Lines_List;
-       Loc   : Labeled_Span_Type;
-       S_Ptr : Source_Ptr);
-    --  Create a new printable line for the given labeled span and add it in the
-    --  correct position to the Lines list based on the line number.
- 
-    function Has_Region_Span_Start (L : Printable_Line) return Boolean;
-    function Has_Region_Span_End   (L : Printable_Line) return Boolean;
- 
-    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean;
- 
-    procedure Write_Region_Delimiter;
-    --  Write the arms signifying the start and end of a region span
-    --  e.g. +--
- 
-    procedure Write_Region_Bar;
-    --  Write the bar signifying the continuation of a region span
-    --  e.g. |
- 
-    procedure Write_Region_Continuation;
-    --  Write the continuation signifying the continuation of a region span
-    --  e.g. :
- 
-    procedure Write_Region_Offset;
-    --  Write a number of whitespaces equal to the size of the region span
- 
-    function Trimmed_Image (I : Natural) return String;
- 
-    procedure Write_Span_Labels (Loc : Labeled_Span_Type;
-                                 L   : Printable_Line;
-                                 Line_Size : Integer;
-                                 Idx : String;
-                                 Within_Region_Span : Boolean);
- 
-    procedure Write_File_Section (Sec : File_Sections;
-                                  Write_File_Name  : Boolean;
-                                  File_Name_Offset : Integer);
- 
-    procedure Write_Labeled_Spans (Spans            : Labeled_Span_List;
-                                   Write_File_Name  : Boolean;
-                                   File_Name_Offset : Integer);
- 
-    procedure Write_Intersecting_Labels
-      (Intersecting_Labels : Labeled_Span_List);
- 
-    function Get_Line_End
-      (Buf : Source_Buffer_Ptr;
-       Loc : Source_Ptr) return Source_Ptr;
-    --  Get the source location for the end of the line (LF) in Buf for Loc. If
-    --  Loc is past the end of Buf already, return Buf'Last.
- 
-    function Get_Line_Start
-      (Buf : Source_Buffer_Ptr;
-       Loc : Source_Ptr) return Source_Ptr;
-    --  Get the source location for the start of the line in Buf for Loc
- 
-    function Get_First_Line_Char
-      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
-    --  Get first non-space character in the line containing Loc
- 
-    function Get_Last_Line_Char
-      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
-    --  Get last non line end [LF, CR] character in the line containing Loc
- 
-    function Image (X : Positive; Width : Positive) return String;
-    --  Output number X over Width characters, with whitespace padding.
-    --  Only output the low-order Width digits of X, if X is larger than
-    --  Width digits.
- 
-    procedure Write_Buffer
-      (Buf   : Source_Buffer_Ptr;
-       First : Source_Ptr;
-       Last  : Source_Ptr);
-    --  Output the characters from First to Last position in Buf, using
-    --  Write_Buffer_Char.
- 
-    procedure Write_Buffer_Char
-      (Buf : Source_Buffer_Ptr;
-       Loc : Source_Ptr);
-    --  Output the characters at position Loc in Buf, translating ASCII.HT
-    --  in a suitable number of spaces so that the output is not modified
-    --  by starting in a different column that 1.
- 
-    procedure Write_Line_Marker
-      (Num   : Pos;
-       Width : Positive);
- 
-    procedure Write_Empty_Bar_Line (Width : Integer);
- 
-    procedure Write_Empty_Skip_Line (Width : Integer);
- 
-    procedure Write_Error_Msg_Line (Diag : Diagnostic_Type);
-    --  Write the error message line for the given diagnostic:
-    --
-    --  '['<Diag.Id>']' <Diag.Kind>: <Diag.Message> ['['<Diag.Switch>']']
- 
-    function Should_Write_File_Name (Sub_Diag : Sub_Diagnostic_Type;
-                                     Diag : Diagnostic_Type) return Boolean;
-    --  If the sub-diagnostic and the main diagnostic only point to the same
-    --  file then there is no reason to add the file name to the sub-diagnostic.
- 
-    function Should_Write_Spans (Sub_Diag : Sub_Diagnostic_Type;
-                                 Diag : Diagnostic_Type)
-                                 return Boolean;
-    --  Old sub-diagnostics used to have the same location as the main
-    --  diagnostic in order to group them correctly. However in most cases
-    --  it was not meant to point to a location but rather add an additional
-    --  message to the original diagnostic.
-    --
-    --  If the sub-diagnostic and the main diagnostic have the same location
-    --  then we should avoid printing the spans.
- 
-    procedure Print_Edit
-      (Edit   : Edit_Type;
-       Offset : Integer);
- 
-    procedure Print_Fix
-      (Fix    : Fix_Type;
-       Offset : Integer);
- 
-    procedure Print_Sub_Diagnostic
-      (Sub_Diag : Sub_Diagnostic_Type;
-       Diag     : Diagnostic_Type;
-       Offset   : Integer);
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Printable_Line)
-    is
-    begin
-       --  Diagnostic elements will be freed when all the diagnostics have been
-       --  emitted.
-       null;
-    end Destroy;
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out File_Sections)
-    is
-    begin
-       Free (Elem.File);
-    end Destroy;
- 
-    ------------------
-    -- Get_Line_End --
-    ------------------
- 
-    function Get_Line_End
-      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
-    is
-       Cur_Loc : Source_Ptr := Source_Ptr'Min (Loc, Buf'Last);
-    begin
-       while Cur_Loc < Buf'Last
-         and then Buf (Cur_Loc) /= ASCII.LF
-       loop
-          Cur_Loc := Cur_Loc + 1;
-       end loop;
- 
-       return Cur_Loc;
-    end Get_Line_End;
- 
-    --------------------
-    -- Get_Line_Start --
-    --------------------
- 
-    function Get_Line_Start
-      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
-    is
-       Cur_Loc : Source_Ptr := Loc;
-    begin
-       while Cur_Loc > Buf'First
-         and then Buf (Cur_Loc - 1) /= ASCII.LF
-       loop
-          Cur_Loc := Cur_Loc - 1;
-       end loop;
- 
-       return Cur_Loc;
-    end Get_Line_Start;
- 
-    -------------------------
-    -- Get_First_Line_Char --
-    -------------------------
- 
-    function Get_First_Line_Char
-      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
-    is
-       Cur_Loc : Source_Ptr := Get_Line_Start (Buf, Loc);
-    begin
-       while Cur_Loc < Buf'Last
-         and then Buf (Cur_Loc) = ' '
-       loop
-          Cur_Loc := Cur_Loc + 1;
-       end loop;
- 
-       return Cur_Loc;
-    end Get_First_Line_Char;
- 
-    ------------------------
-    -- Get_Last_Line_Char --
-    ------------------------
- 
-    function Get_Last_Line_Char
-      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
-    is
-       Cur_Loc : Source_Ptr := Get_Line_End (Buf, Loc);
-    begin
-       while Cur_Loc > Buf'First
-         and then Buf (Cur_Loc) in ASCII.LF | ASCII.CR
-       loop
-          Cur_Loc := Cur_Loc - 1;
-       end loop;
- 
-       return Cur_Loc;
-    end Get_Last_Line_Char;
- 
-    -----------
-    -- Image --
-    -----------
- 
-    function Image (X : Positive; Width : Positive) return String is
-       Str  : String (1 .. Width);
-       Curr : Natural := X;
-    begin
-       for J in reverse 1 .. Width loop
-          if Curr > 0 then
-             Str (J) := Character'Val (Character'Pos ('0') + Curr mod 10);
-             Curr := Curr / 10;
-          else
-             Str (J) := ' ';
-          end if;
-       end loop;
- 
-       return Str;
-    end Image;
- 
-    --------------------------------
-    -- Has_Multiple_Labeled_Spans --
-    --------------------------------
- 
-    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean
-    is
-       Count : Natural := 0;
- 
-       Loc : Labeled_Span_Type;
-       Loc_It : Labeled_Span_Lists.Iterator :=
-         Labeled_Span_Lists.Iterate (L.Spans);
-    begin
-       while Labeled_Span_Lists.Has_Next (Loc_It) loop
-          Labeled_Span_Lists.Next (Loc_It, Loc);
-          if Loc.Label /= null then
-             Count := Count + 1;
-          end if;
-       end loop;
- 
-       return Count > 1;
-    end Has_Multiple_Labeled_Spans;
- 
-    ---------------------------
-    -- Has_Region_Span_Start --
-    ---------------------------
- 
-    function Has_Region_Span_Start (L : Printable_Line) return Boolean is
-       Loc    : Labeled_Span_Type;
-       Loc_It : Labeled_Span_Lists.Iterator :=
-         Labeled_Span_Lists.Iterate (L.Spans);
- 
-       Has_Region_Start : Boolean := False;
-    begin
-       while Labeled_Span_Lists.Has_Next (Loc_It) loop
-          Labeled_Span_Lists.Next (Loc_It, Loc);
- 
-          if not Has_Region_Start
-             and then Loc.Is_Region
-             and then L.Line_Nr =
-               Pos (Get_Physical_Line_Number (Loc.Span.First))
-          then
-             Has_Region_Start := True;
-          end if;
-       end loop;
-       return Has_Region_Start;
-    end Has_Region_Span_Start;
- 
-    -------------------------
-    -- Has_Region_Span_End --
-    -------------------------
- 
-    function Has_Region_Span_End (L : Printable_Line) return Boolean is
-       Loc    : Labeled_Span_Type;
-       Loc_It : Labeled_Span_Lists.Iterator :=
-         Labeled_Span_Lists.Iterate (L.Spans);
- 
-       Has_Region_End : Boolean := False;
-    begin
-       while Labeled_Span_Lists.Has_Next (Loc_It) loop
-          Labeled_Span_Lists.Next (Loc_It, Loc);
- 
-          if not Has_Region_End
-             and then Loc.Is_Region
-             and then L.Line_Nr =
-               Pos (Get_Physical_Line_Number (Loc.Span.Last))
-          then
-             Has_Region_End := True;
-          end if;
-       end loop;
-       return Has_Region_End;
-    end Has_Region_Span_End;
- 
-    ------------------
-    -- Write_Buffer --
-    ------------------
- 
-    procedure Write_Buffer
-      (Buf   : Source_Buffer_Ptr;
-       First : Source_Ptr;
-       Last  : Source_Ptr)
-    is
-    begin
-       for Loc in First .. Last loop
-          Write_Buffer_Char (Buf, Loc);
-       end loop;
-    end Write_Buffer;
- 
-    -----------------------
-    -- Write_Buffer_Char --
-    -----------------------
- 
-    procedure Write_Buffer_Char
-      (Buf : Source_Buffer_Ptr;
-       Loc : Source_Ptr)
-    is
-    begin
-       --  If the character ASCII.HT is not the last one in the file,
-       --  output as many spaces as the character represents in the
-       --  original source file.
- 
-       if Buf (Loc) = ASCII.HT
-          and then Loc < Buf'Last
-       then
-          for X in Get_Column_Number (Loc) ..
-                   Get_Column_Number (Loc + 1) - 1
-          loop
-             Write_Char (' ');
-          end loop;
- 
-       --  Otherwise output the character itself
- 
-       else
-          Write_Char (Buf (Loc));
-       end if;
-    end Write_Buffer_Char;
- 
-    -----------------------
-    -- Write_Line_Marker --
-    -----------------------
- 
-    procedure Write_Line_Marker
-      (Num   : Pos;
-       Width : Positive)
-    is
-    begin
-       Write_Str (Image (Positive (Num), Width => Width - 2));
-       Write_Str (" |");
-    end Write_Line_Marker;
- 
-    --------------------------
-    -- Write_Empty_Bar_Line --
-    --------------------------
- 
-    procedure Write_Empty_Bar_Line (Width : Integer) is
- 
-    begin
-       Write_Str (String'(1 .. Width - 1 => ' '));
-       Write_Str ("|");
-    end Write_Empty_Bar_Line;
- 
-    ---------------------------
-    -- Write_Empty_Skip_Line --
-    ---------------------------
- 
-    procedure Write_Empty_Skip_Line (Width : Integer) is
- 
-    begin
-       Write_Str (String'(1 .. Width - 1 => ' '));
-       Write_Str (":");
-    end Write_Empty_Skip_Line;
- 
-    ----------------------------
-    -- Write_Region_Delimiter --
-    ----------------------------
- 
-    procedure Write_Region_Delimiter is
- 
-    begin
-       Write_Str (String'(1 .. REGION_OFFSET => ' '));
-       Write_Str ("+");
-       Write_Str (String'(1 .. REGION_ARM_SIZE => '-'));
-    end Write_Region_Delimiter;
- 
-    ----------------------
-    -- Write_Region_Bar --
-    ----------------------
- 
-    procedure Write_Region_Bar is
- 
-    begin
-       Write_Str (String'(1 .. REGION_OFFSET => ' '));
-       Write_Str ("|");
-       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
-    end Write_Region_Bar;
- 
-    -------------------------------
-    -- Write_Region_Continuation --
-    -------------------------------
- 
-    procedure Write_Region_Continuation is
- 
-    begin
-       Write_Str (String'(1 .. REGION_OFFSET => ' '));
-       Write_Str (":");
-       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
-    end Write_Region_Continuation;
- 
-    -------------------------
-    -- Write_Region_Offset --
-    -------------------------
- 
-    procedure Write_Region_Offset is
- 
-    begin
-       Write_Str (String'(1 .. REGION_SIZE => ' '));
-    end Write_Region_Offset;
- 
-    ------------------------
-    -- Add_Printable_Line --
-    ------------------------
- 
-    procedure Add_Printable_Line
-      (Lines : Lines_List;
-       Loc   : Labeled_Span_Type;
-       S_Ptr : Source_Ptr)
-    is
-       L          : Printable_Line;
-       L_It       : Lines_Lists.Iterator;
- 
-       Line_Ptr   : constant Pos := Pos (Get_Physical_Line_Number (S_Ptr));
-       Line_Found : Boolean      := False;
-    begin
-       L_It := Lines_Lists.Iterate (Lines);
-       while Lines_Lists.Has_Next (L_It) loop
-          Lines_Lists.Next (L_It, L);
- 
-          if not Line_Found and then L.Line_Nr = Line_Ptr then
-             if not Labeled_Span_Lists.Contains (L.Spans, Loc) then
-                Labeled_Span_Lists.Append (L.Spans, Loc);
-             end if;
-             Line_Found := True;
-          end if;
-       end loop;
- 
-       if not Line_Found then
-          Create_Printable_Line (Lines, Loc, S_Ptr);
-       end if;
-    end Add_Printable_Line;
- 
-    ---------------------------
-    -- Create_Printable_Line --
-    ---------------------------
- 
-    procedure Create_Printable_Line
-      (Lines : Lines_List;
-       Loc   : Labeled_Span_Type;
-       S_Ptr : Source_Ptr)
-    is
-       Spans : constant Labeled_Span_List := Labeled_Span_Lists.Create;
- 
-       Buf : constant Source_Buffer_Ptr :=
-         Source_Text (Get_Source_File_Index (S_Ptr));
- 
-       Line_Nr  : constant Pos := Pos (Get_Physical_Line_Number (S_Ptr));
- 
-       New_Line : constant Printable_Line :=
-         (First   => Get_Line_Start (Buf, S_Ptr),
-          Last    => Get_Line_End (Buf, S_Ptr),
-          Line_Nr => Line_Nr,
-          Spans   => Spans);
- 
-       L    : Printable_Line;
-       L_It : Lines_Lists.Iterator := Lines_Lists.Iterate (Lines);
- 
-       Found_Greater_Line : Boolean := False;
-       Insert_Before_Line : Printable_Line;
-    begin
-       Labeled_Span_Lists.Append (Spans, Loc);
- 
-       --  Insert the new line based on the line number
- 
-       while Lines_Lists.Has_Next (L_It) loop
-          Lines_Lists.Next (L_It, L);
- 
-          if not Found_Greater_Line
-            and then L.Line_Nr > New_Line.Line_Nr
-          then
-             Found_Greater_Line := True;
-             Insert_Before_Line := L;
- 
-             Lines_Lists.Insert_Before (Lines, Insert_Before_Line, New_Line);
-          end if;
-       end loop;
- 
-       if Found_Greater_Line then
- 
-          --  Insert after all the lines have been iterated over to avoid the
-          --  mutation lock in GNAT.Lists
- 
-          null;
-       else
-          Lines_Lists.Append (Lines, New_Line);
-       end if;
-    end Create_Printable_Line;
- 
-    -------------------------
-    -- Create_File_Section --
-    -------------------------
- 
-    procedure Create_File_Section
-      (Sections : in out File_Section_List; Loc : Labeled_Span_Type)
-    is
-       Lines : constant Lines_List := Lines_Lists.Create;
- 
-       --  Carret positions
-       Ptr      : constant Source_Ptr := Loc.Span.Ptr;
-       Line_Ptr : constant Pos := Pos (Get_Physical_Line_Number (Ptr));
- 
-       --  Span start positions
-       Fst      : constant Source_Ptr := Loc.Span.First;
-       Line_Fst : constant Pos := Pos (Get_Physical_Line_Number (Fst));
- 
-       --  Span end positions
-       Lst      : constant Source_Ptr := Loc.Span.Last;
-       Line_Lst : constant Pos := Pos (Get_Physical_Line_Number (Lst));
-    begin
-       Create_Printable_Line (Lines, Loc, Fst);
- 
-       if Line_Fst /= Line_Ptr then
-          Create_Printable_Line (Lines, Loc, Ptr);
-       end if;
- 
-       if Line_Ptr /= Line_Lst then
-          Create_Printable_Line (Lines, Loc, Lst);
-       end if;
- 
-       File_Section_Lists.Append
-         (Sections,
-          (File  => new String'(To_File_Name (Loc.Span.Ptr)),
-           Lines => Lines));
-    end Create_File_Section;
- 
-    --------------------------
-    -- Create_File_Sections --
-    --------------------------
- 
-    function Create_File_Sections
-      (Spans : Labeled_Span_List) return File_Section_List
-    is
-       Loc    : Labeled_Span_Type;
-       Loc_It : Labeled_Span_Lists.Iterator :=
-         Labeled_Span_Lists.Iterate (Spans);
- 
-       Sections : File_Section_List := File_Section_Lists.Create;
- 
-       Sec  : File_Sections;
-       F_It : File_Section_Lists.Iterator;
- 
-       File_Found : Boolean;
-    begin
-       while Labeled_Span_Lists.Has_Next (Loc_It) loop
-          Labeled_Span_Lists.Next (Loc_It, Loc);
- 
-          File_Found := False;
-          F_It       := File_Section_Lists.Iterate (Sections);
- 
-          while File_Section_Lists.Has_Next (F_It) loop
-             File_Section_Lists.Next (F_It, Sec);
- 
-             if Sec.File /= null
-               and then Sec.File.all = To_File_Name (Loc.Span.Ptr)
-             then
-                File_Found := True;
- 
-                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.First);
- 
-                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.Ptr);
- 
-                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.Last);
-             end if;
-          end loop;
- 
-          if not File_Found then
-             Create_File_Section (Sections, Loc);
-          end if;
-       end loop;
- 
-       return Sections;
-    end Create_File_Sections;
- 
-    -----------------------
-    -- Write_Span_Labels --
-    -----------------------
- 
-    procedure Write_Span_Labels (Loc : Labeled_Span_Type;
-                                 L   : Printable_Line;
-                                 Line_Size : Integer;
-                                 Idx : String;
-                                 Within_Region_Span : Boolean)
-    is
-       Span_Char : constant Character := (if Loc.Is_Primary then '~' else '-');
- 
-       Buf : constant Source_Buffer_Ptr :=
-         Source_Text (Get_Source_File_Index (L.First));
- 
-       Col_L_Fst : constant Natural := Natural
-         (Get_Column_Number (Get_First_Line_Char (Buf, L.First)));
-       Col_L_Lst : constant Natural := Natural
-         (Get_Column_Number (Get_Last_Line_Char (Buf, L.Last)));
- 
-       --  Carret positions
-       Ptr      : constant Source_Ptr := Loc.Span.Ptr;
-       Line_Ptr : constant Pos        := Pos (Get_Physical_Line_Number (Ptr));
-       Col_Ptr  : constant Natural    := Natural (Get_Column_Number (Ptr));
- 
-       --  Span start positions
-       Fst      : constant Source_Ptr := Loc.Span.First;
-       Line_Fst : constant Pos        := Pos (Get_Physical_Line_Number (Fst));
-       Col_Fst  : constant Natural    := Natural (Get_Column_Number (Fst));
- 
-       --  Span end positions
-       Lst      : constant Source_Ptr := Loc.Span.Last;
-       Line_Lst : constant Pos        := Pos (Get_Physical_Line_Number (Lst));
-       Col_Lst  : constant Natural    := Natural (Get_Column_Number (Lst));
- 
-       --  Attributes for the span on the current line
- 
-       Span_Sym : constant String := (if Idx = "" then "^" else Idx);
- 
-       Span_Fst : constant Natural :=
-         (if Line_Fst = L.Line_Nr then Col_Fst else Col_L_Fst);
- 
-       Span_Lst : constant Natural :=
-         (if Line_Lst = L.Line_Nr then Col_Lst else Col_L_Lst);
- 
-       Span_Ptr_Fst : constant Natural :=
-         (if Line_Ptr = L.Line_Nr then Col_Ptr else Col_L_Fst);
- 
-       Span_Ptr_Lst : constant Natural :=
-         (if Line_Ptr = L.Line_Nr
-          then Span_Ptr_Fst + Span_Sym'Length
-          else Span_Fst);
- 
-    begin
-       if not Loc.Is_Region then
-          Write_Empty_Bar_Line (Line_Size);
- 
-          if Within_Region_Span then
-             Write_Region_Bar;
-          else
-             Write_Region_Offset;
-          end if;
- 
-          Write_Str (String'(1 .. Span_Fst - 1 => ' '));
- 
-          if Line_Ptr = L.Line_Nr then
-             Write_Str (String'(Span_Fst .. Col_Ptr - 1 => Span_Char));
-             Write_Str (Span_Sym);
-          end if;
- 
-          Write_Str (String'(Span_Ptr_Lst .. Span_Lst => Span_Char));
- 
-          Write_Eol;
- 
-          --  Write the label under the line unless it is an intersecting span.
-          --  In this case omit the label which will be printed later along with
-          --  the index.
- 
-          if Loc.Label /= null and then Idx = "" then
-             Write_Empty_Bar_Line (Line_Size);
- 
-             if Within_Region_Span then
-                Write_Region_Bar;
-             else
-                Write_Region_Offset;
-             end if;
- 
-             Write_Str (String'(1 .. Span_Fst - 1 => ' '));
-             Write_Str (Loc.Label.all);
-             Write_Eol;
-          end if;
-       else
-          if Line_Lst = L.Line_Nr then
-             Write_Empty_Bar_Line (Line_Size);
-             Write_Str (String'(1 .. REGION_OFFSET => ' '));
-             Write_Str (Loc.Label.all);
-             Write_Eol;
-          end if;
-       end if;
- 
-    end Write_Span_Labels;
- 
-    -------------------
-    -- Trimmed_Image --
-    -------------------
- 
-    function Trimmed_Image (I : Natural) return String is
-       Img_Raw : constant String  := Natural'Image (I);
-    begin
-       return Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
-    end Trimmed_Image;
- 
-    -------------------------------
-    -- Write_Intersecting_Labels --
-    -------------------------------
- 
-    procedure Write_Intersecting_Labels
-      (Intersecting_Labels : Labeled_Span_List)
-    is
-       Ls    : Labeled_Span_Type;
-       Ls_It : Labeled_Span_Lists.Iterator :=
-         Labeled_Span_Lists.Iterate (Intersecting_Labels);
-       Idx   : Integer := 0;
-    begin
-       while Labeled_Span_Lists.Has_Next (Ls_It) loop
-          Labeled_Span_Lists.Next (Ls_It, Ls);
-          Idx := Idx + 1;
- 
-          Write_Empty_Bar_Line (MAX_BAR_POS);
-          Write_Str (" ");
-          Write_Int (Int (Idx));
-          Write_Str (": ");
-          Write_Str (Ls.Label.all);
-          Write_Eol;
-       end loop;
-    end Write_Intersecting_Labels;
- 
-    ------------------------
-    -- Write_File_Section --
-    ------------------------
- 
-    procedure Write_File_Section (Sec              : File_Sections;
-                                  Write_File_Name  : Boolean;
-                                  File_Name_Offset : Integer)
-    is
-       use Lines_Lists;
- 
-       L : Printable_Line;
-       L_It : Iterator := Iterate (Sec.Lines);
- 
-       --  The error should be included in the first (primary) span of the file.
-       Loc : constant Labeled_Span_Type :=
-          Labeled_Span_Lists.First (Lines_Lists.First (Sec.Lines).Spans);
- 
-       Multiple_Labeled_Spans : Boolean := False;
- 
-       Idx : Integer := 0;
- 
-       Intersecting_Labels : constant Labeled_Span_List :=
-         Labeled_Span_Lists.Create;
- 
-       Prev_Line_Nr : Natural := 0;
- 
-       Within_Region_Span : Boolean := False;
-    begin
-       if Write_File_Name then
- 
-          --  offset the file start location for sub-diagnostics
- 
-          Write_Str (String'(1 .. File_Name_Offset => ' '));
-          Write_Str ("--> " & To_String (Loc.Span.Ptr));
-          Write_Eol;
-       end if;
- 
-       while Has_Next (L_It) loop
-          Next (L_It, L);
-          declare
-             Line_Nr  : constant Pos := L.Line_Nr;
-             Line_Str : constant String := Trimmed_Image (Natural (Line_Nr));
- 
-             Line_Size : constant Integer :=
-               Integer'Max (Line_Str'Length, MAX_BAR_POS);
- 
-             Loc : Labeled_Span_Type;
-             Loc_It : Labeled_Span_Lists.Iterator :=
-               Labeled_Span_Lists.Iterate (L.Spans);
- 
-             Buf : constant Source_Buffer_Ptr :=
-               Source_Text (Get_Source_File_Index (L.First));
- 
-             Contains_Region_Span_Start : constant Boolean :=
-               Has_Region_Span_Start (L);
-             Contains_Region_Span_End   : constant Boolean :=
-               Has_Region_Span_End (L);
-          begin
-             if not Multiple_Labeled_Spans then
-                Multiple_Labeled_Spans :=  Has_Multiple_Labeled_Spans (L);
-             end if;
- 
-             --  Write an empty line with the continuation symbol if the line
-             --  numbers are not contiguous
- 
-             if Prev_Line_Nr /= 0
-               and then Pos (Prev_Line_Nr + 1) /= Line_Nr
-             then
-                Write_Empty_Skip_Line (Line_Size);
- 
-                if Within_Region_Span then
-                   Write_Region_Continuation;
-                end if;
- 
-                Write_Eol;
-             end if;
- 
-             if Contains_Region_Span_Start then
-                Within_Region_Span := True;
-             end if;
- 
-             Write_Line_Marker (Line_Nr, Line_Size);
- 
-             --  Write either the region span symbol or the same number of
-             --  whitespaces.
- 
-             if Contains_Region_Span_Start or Contains_Region_Span_End then
-                Write_Region_Delimiter;
-             elsif Within_Region_Span then
-                Write_Region_Bar;
-             else
-                Write_Region_Offset;
-             end if;
- 
-             --  Write the line itself
- 
-             Write_Buffer
-                (Buf   => Buf,
-                 First => L.First,
-                 Last  => L.Last);
- 
-             --  Write all the spans for the line
- 
-             while Labeled_Span_Lists.Has_Next (Loc_It) loop
-                Labeled_Span_Lists.Next (Loc_It, Loc);
- 
-                if Multiple_Labeled_Spans
-                  and then Loc.Label /= null
-                then
- 
-                   --  Collect all the spans with labels to print them at the
-                   --  end.
- 
-                   Labeled_Span_Lists.Append (Intersecting_Labels, Loc);
- 
-                   Idx := Idx + 1;
- 
-                   Write_Span_Labels (Loc,
-                                      L,
-                                      Line_Size,
-                                      Trimmed_Image (Idx),
-                                      Within_Region_Span);
-                else
-                   Write_Span_Labels (Loc,
-                                      L,
-                                      Line_Size,
-                                      "",
-                                      Within_Region_Span);
-                end if;
- 
-             end loop;
- 
-             if Contains_Region_Span_End then
-                Within_Region_Span := False;
-             end if;
- 
-             Prev_Line_Nr := Natural (Line_Nr);
-          end;
-       end loop;
- 
-       Write_Intersecting_Labels (Intersecting_Labels);
-    end Write_File_Section;
- 
-    -------------------------
-    -- Write_Labeled_Spans --
-    -------------------------
- 
-    procedure Write_Labeled_Spans (Spans            : Labeled_Span_List;
-                                   Write_File_Name  : Boolean;
-                                   File_Name_Offset : Integer)
-    is
-       Sections : File_Section_List := Create_File_Sections (Spans);
- 
-       Sec  : File_Sections;
-       F_It : File_Section_Lists.Iterator :=
-         File_Section_Lists.Iterate (Sections);
-    begin
-       while File_Section_Lists.Has_Next (F_It) loop
-          File_Section_Lists.Next (F_It, Sec);
- 
-          Write_File_Section
-            (Sec, Write_File_Name, File_Name_Offset);
-       end loop;
- 
-       File_Section_Lists.Destroy (Sections);
-    end Write_Labeled_Spans;
- 
-    --------------------------
-    -- Write_Error_Msg_Line --
-    --------------------------
- 
-    procedure Write_Error_Msg_Line (Diag : Diagnostic_Type) is
-       Switch_Str : constant String := Get_Doc_Switch (Diag);
- 
-       Kind_Str : constant String := Kind_To_String (Diag);
- 
-       SGR_Code : constant String :=
-         (if Kind_Str = "error"      then SGR_Error
-          elsif Kind_Str = "warning" then SGR_Warning
-          elsif Kind_Str = "info"    then SGR_Note
-          else                            SGR_Reset);
-    begin
-       Write_Str (SGR_Code);
- 
-       Write_Str ("[" & To_String (Diag.Id) & "]");
- 
-       Write_Str (" " & Kind_To_String (Diag) & ": ");
- 
-       Write_Str (SGR_Reset);
- 
-       Write_Str (Diag.Message.all);
- 
-       if Switch_Str /= "" then
-          Write_Str (" " & Switch_Str);
-       end if;
- 
-       if Diag.Warn_Err then
-          Write_Str (" [warning-as-error]");
-       end if;
- 
-       Write_Eol;
-    end Write_Error_Msg_Line;
- 
-    ----------------------------
-    -- Should_Write_File_Name --
-    ----------------------------
- 
-    function Should_Write_File_Name (Sub_Diag : Sub_Diagnostic_Type;
-                                     Diag : Diagnostic_Type)
-                                     return Boolean
-    is
-       Sub_Loc  : constant Labeled_Span_Type := Primary_Location (Sub_Diag);
-       Diag_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
- 
-       function Has_Multiple_Files (Spans : Labeled_Span_List) return Boolean;
- 
-       ------------------------
-       -- Has_Multiple_Files --
-       ------------------------
- 
-       function Has_Multiple_Files
-         (Spans : Labeled_Span_List) return Boolean
-       is
-          First : constant Labeled_Span_Type :=
-            Labeled_Span_Lists.First (Spans);
- 
-          File : constant String := To_File_Name (First.Span.Ptr);
- 
-          Loc : Labeled_Span_Type;
-          It : Labeled_Span_Lists.Iterator :=
-            Labeled_Span_Lists.Iterate (Spans);
- 
-       begin
-          while Labeled_Span_Lists.Has_Next (It) loop
-             Labeled_Span_Lists.Next (It, Loc);
- 
-             if To_File_Name (Loc.Span.Ptr) /= File then
-                return True;
-             end if;
-          end loop;
-          return False;
-       end Has_Multiple_Files;
-    begin
-       return
-         Has_Multiple_Files (Diag.Locations)
-         or else To_File_Name (Sub_Loc.Span.Ptr) /=
-           To_File_Name (Diag_Loc.Span.Ptr);
-    end Should_Write_File_Name;
- 
-    ------------------------
-    -- Should_Write_Spans --
-    ------------------------
- 
-    function Should_Write_Spans (Sub_Diag : Sub_Diagnostic_Type;
-                                 Diag : Diagnostic_Type)
-                                 return Boolean
-    is
-       Sub_Loc  : constant Labeled_Span_Type := Primary_Location (Sub_Diag);
-       Diag_Loc : constant Labeled_Span_Type := Primary_Location (Diag);
-    begin
-       return Sub_Loc /= No_Labeled_Span
-         and then Diag_Loc /= No_Labeled_Span
-         and then Sub_Loc.Span.Ptr /= Diag_Loc.Span.Ptr;
-    end Should_Write_Spans;
- 
-    ----------------
-    -- Print_Edit --
-    ----------------
- 
-    procedure Print_Edit (Edit : Edit_Type; Offset : Integer) is
-       Buf : constant Source_Buffer_Ptr :=
-          Source_Text (Get_Source_File_Index (Edit.Span.Ptr));
- 
-       Line_Nr : constant Pos := Pos (Get_Physical_Line_Number (Edit.Span.Ptr));
- 
-       Line_Fst : constant Source_Ptr := Get_Line_Start (Buf, Edit.Span.First);
-       Line_Lst : constant Source_Ptr := Get_Line_End (Buf, Edit.Span.First);
-    begin
-       Write_Str (String'(1 .. Offset => ' '));
-       Write_Str ("--> " & To_File_Name (Edit.Span.Ptr));
-       Write_Eol;
- 
-       --  write the original line
- 
-       Write_Char ('-');
-       Write_Line_Marker (Line_Nr, MAX_BAR_POS - 1);
- 
-       Write_Buffer
-          (Buf   => Buf,
-           First => Line_Fst,
-           Last  => Line_Lst);
- 
-       --  write the edited line
- 
-       Write_Char ('+');
-       Write_Line_Marker (Line_Nr, MAX_BAR_POS - 1);
- 
-       Write_Buffer
-         (Buf   => Buf,
-          First => Line_Fst,
-          Last  => Edit.Span.First - 1);
- 
-       if Edit.Text /= null then
-          Write_Str (Edit.Text.all);
-       end if;
- 
-       Write_Buffer
-         (Buf   => Buf,
-          First => Edit.Span.Last + 1,
-          Last  => Line_Lst);
- 
-    end Print_Edit;
- 
-    ---------------
-    -- Print_Fix --
-    ---------------
- 
-    procedure Print_Fix (Fix : Fix_Type; Offset : Integer) is
-       use Edit_Lists;
-    begin
-       Write_Str (String'(1 .. Offset => ' '));
-       Write_Str ("+ Fix: ");
- 
-       if Fix.Description /= null then
-          Write_Str (Fix.Description.all);
-       end if;
-       Write_Eol;
- 
-       if Present (Fix.Edits) then
-          declare
-             Edit : Edit_Type;
- 
-             It : Iterator := Iterate (Fix.Edits);
-          begin
-             while Has_Next (It) loop
-                Next (It, Edit);
- 
-                Print_Edit (Edit, MAX_BAR_POS - 1);
-             end loop;
-          end;
-       end if;
-    end Print_Fix;
- 
-    --------------------------
-    -- Print_Sub_Diagnostic --
-    --------------------------
- 
-    procedure Print_Sub_Diagnostic
-      (Sub_Diag : Sub_Diagnostic_Type;
-       Diag     : Diagnostic_Type;
-       Offset   : Integer)
-    is
-    begin
-       Write_Str (String'(1 .. Offset => ' '));
- 
-       if Sub_Diag.Kind = Suggestion then
-          Write_Str ("+ Suggestion: ");
-       else
-          Write_Str ("+ ");
-       end if;
- 
-       Write_Str (Sub_Diag.Message.all);
-       Write_Eol;
- 
-       if Should_Write_Spans (Sub_Diag, Diag) then
-          Write_Labeled_Spans (Sub_Diag.Locations,
-                               Should_Write_File_Name (Sub_Diag, Diag),
-                               Offset);
-       end if;
-    end Print_Sub_Diagnostic;
- 
-    ----------------------
-    -- Print_Diagnostic --
-    ----------------------
- 
-    procedure Print_Diagnostic (Diag : Diagnostic_Type) is
- 
-    begin
-       --  Print the main diagnostic
- 
-       Write_Error_Msg_Line (Diag);
- 
-       --  Print diagnostic locations along with spans
- 
-       Write_Labeled_Spans (Diag.Locations, True, 0);
- 
-       --  Print subdiagnostics
- 
-       if Sub_Diagnostic_Lists.Present (Diag.Sub_Diagnostics) then
-          declare
-             use Sub_Diagnostic_Lists;
-             Sub_Diag : Sub_Diagnostic_Type;
- 
-             It : Iterator := Iterate (Diag.Sub_Diagnostics);
-          begin
-             while Has_Next (It) loop
-                Next (It, Sub_Diag);
- 
-                --  Print the subdiagnostic and offset the location of the file
-                --  name
- 
-                Print_Sub_Diagnostic (Sub_Diag, Diag, MAX_BAR_POS - 1);
-             end loop;
-          end;
-       end if;
- 
-       --  Print fixes
- 
-       if Fix_Lists.Present (Diag.Fixes) then
-          declare
-             use Fix_Lists;
-             Fix : Fix_Type;
- 
-             It : Iterator := Iterate (Diag.Fixes);
-          begin
-             while Has_Next (It) loop
-                Next (It, Fix);
- 
-                Print_Fix (Fix, MAX_BAR_POS - 1);
-             end loop;
-          end;
-       end if;
- 
-       --  Separate main diagnostics with a blank line
- 
-       Write_Eol;
- 
-    end Print_Diagnostic;
- end Diagnostics.Pretty_Emitter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-pretty_emitter.ads gcc-16-20250608/gcc/ada/diagnostics-pretty_emitter.ads
*** gcc-16-20250601/gcc/ada/diagnostics-pretty_emitter.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-pretty_emitter.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --             D I A G N O S T I C S . P R E T T Y _ E M I T T E R          --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package Diagnostics.Pretty_Emitter is
-    procedure Print_Diagnostic (Diag : Diagnostic_Type);
- end Diagnostics.Pretty_Emitter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-repository.adb gcc-16-20250608/gcc/ada/diagnostics-repository.adb
*** gcc-16-20250601/gcc/ada/diagnostics-repository.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-repository.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,122 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --               D I A G N O S T I C S . R E P O S I T O R Y                --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- with Diagnostics.JSON_Utils;        use Diagnostics.JSON_Utils;
- with Diagnostics.Utils;             use Diagnostics.Utils;
- with Diagnostics.Switch_Repository; use Diagnostics.Switch_Repository;
- with Output;                        use Output;
- 
- package body Diagnostics.Repository is
- 
-    ---------------------------------
-    -- Print_Diagnostic_Repository --
-    ---------------------------------
- 
-    procedure Print_Diagnostic_Repository is
-       First : Boolean := True;
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_Str ("""" & "Diagnostics" & """" & ": " & "[");
-       Begin_Block;
- 
-       --  Avoid printing the first switch, which is a placeholder
- 
-       for I in Diagnostic_Entries'First .. Diagnostic_Entries'Last loop
- 
-          if First then
-             First := False;
-          else
-             Write_Char (',');
-          end if;
- 
-          NL_And_Indent;
- 
-          Write_Char ('{');
-          Begin_Block;
-          NL_And_Indent;
- 
-          Write_String_Attribute ("Id", To_String (I));
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Diagnostic_Entries (I).Human_Id /= null then
-             Write_String_Attribute ("Human_Id",
-                                      Diagnostic_Entries (I).Human_Id.all);
-          else
-             Write_String_Attribute ("Human_Id", "null");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Diagnostic_Entries (I).Status = Active then
-             Write_String_Attribute ("Status", "Active");
-          else
-             Write_String_Attribute ("Status", "Deprecated");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Diagnostic_Entries (I).Documentation /= null then
-             Write_String_Attribute ("Documentation",
-                                      Diagnostic_Entries (I).Documentation.all);
-          else
-             Write_String_Attribute ("Documentation", "null");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Diagnostic_Entries (I).Switch /= No_Switch_Id then
-             Write_Char (',');
-             NL_And_Indent;
-             Write_String_Attribute
-               ("Switch",
-                Get_Switch (Diagnostic_Entries (I).Switch).Human_Id.all);
-          else
-             Write_String_Attribute ("Switch", "null");
-          end if;
- 
-          End_Block;
-          NL_And_Indent;
-          Write_Char ('}');
-       end loop;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
- 
-       Write_Eol;
-    end Print_Diagnostic_Repository;
- 
- end Diagnostics.Repository;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-repository.ads gcc-16-20250608/gcc/ada/diagnostics-repository.ads
*** gcc-16-20250601/gcc/ada/diagnostics-repository.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-repository.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,113 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --               D I A G N O S T I C S . R E P O S I T O R Y                --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- package Diagnostics.Repository is
- 
-    type Diagnostics_Registry_Type is
-      array (Diagnostic_Id) of Diagnostic_Entry_Type;
- 
-    --  Include the diagnostic entries for every diagnostic id.
-    --  The entries should include:
-    --  * Whether the diagnostic with this id is active or not
-    --  * The human-readable name for the diagnostic for SARIF reports
-    --  * The switch id for the diagnostic if the diagnostic is linked to any
-    --    compiler switch
-    --  * The documentation file for the diagnostic written in the MD format.
-    --    The documentation file should include:
-    --    - The diagnostic id
-    --    - A short description of the diagnostic
-    --    - A minimal example of the code that triggers the diagnostic
-    --    - An explanation of why the diagnostic was triggered
-    --    - A suggestion on how to fix the issue
-    --    - Optionally additional information
-    --    TODO: the mandatory fields for the documentation file could be changed
- 
-    Diagnostic_Entries : Diagnostics_Registry_Type :=
-      (No_Diagnostic_Id => (others => <>),
-       GNAT0001         =>
-         (Status        => Active,
-          Human_Id      => new String'("Default_Iterator_Not_Primitive_Error"),
-          Documentation => new String'("./error_codes/GNAT0001.md"),
-          Switch        => No_Switch_Id),
-       GNAT0002         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Invalid_Operand_Types_For_Operator_Error"),
-          Documentation => new String'("./error_codes/GNAT0002.md"),
-          Switch        => No_Switch_Id),
-       GNAT0003         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Invalid_Operand_Types_Left_To_Int_Error"),
-          Documentation => new String'("./error_codes/GNAT0003.md"),
-          Switch        => No_Switch_Id),
-       GNAT0004         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Invalid_Operand_Types_Right_To_Int_Error"),
-          Documentation => new String'("./error_codes/GNAT0004.md"),
-          Switch        => No_Switch_Id),
-       GNAT0005         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Invalid_Operand_Types_Left_Acc_Error"),
-          Documentation => new String'("./error_codes/GNAT0005.md"),
-          Switch        => No_Switch_Id),
-       GNAT0006         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Invalid_Operand_Types_Right_Acc_Error"),
-          Documentation => new String'("./error_codes/GNAT0006.md"),
-          Switch        => No_Switch_Id),
-       GNAT0007         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Invalid_Operand_Types_General_Error"),
-          Documentation => new String'("./error_codes/GNAT0007.md"),
-          Switch        => No_Switch_Id),
-       GNAT0008         =>
-         (Status        => Active,
-          Human_Id      =>
-            new String'("Pragma_No_Effect_With_Lock_Free_Warning"),
-          Documentation => new String'("./error_codes/GNAT0008.md"),
-          Switch        => No_Switch_Id),
-       GNAT0009         =>
-         (Status        => Active,
-          Human_Id      => new String'("End_Loop_Expected_Error"),
-          Documentation => new String'("./error_codes/GNAT0009.md"),
-          Switch        => No_Switch_Id),
-       GNAT0010         =>
-         (Status        => Active,
-          Human_Id      => new String'("Representation_Too_Late_Error"),
-          Documentation => new String'("./error_codes/GNAT0010.md"),
-          Switch        => No_Switch_Id),
-       GNAT0011         =>
-         (Status        => Active,
-          Human_Id      => new String'("Mixed_Container_Aggregate_Error"),
-          Documentation => new String'("./error_codes/GNAT0011.md"),
-          Switch        => No_Switch_Id));
- 
-    procedure Print_Diagnostic_Repository;
- 
- end Diagnostics.Repository;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-sarif_emitter.adb gcc-16-20250608/gcc/ada/diagnostics-sarif_emitter.adb
*** gcc-16-20250601/gcc/ada/diagnostics-sarif_emitter.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-sarif_emitter.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,1173 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --              D I A G N O S T I C S . S A R I F _ E M I T T E R           --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Diagnostics.Utils;      use Diagnostics.Utils;
- with Diagnostics.JSON_Utils; use Diagnostics.JSON_Utils;
- with Gnatvsn;                use Gnatvsn;
- with Output;                 use Output;
- with Sinput;                 use Sinput;
- with Lib;                    use Lib;
- with Namet;                  use Namet;
- with Osint;                  use Osint;
- with Errout;                 use Errout;
- 
- package body Diagnostics.SARIF_Emitter is
- 
-    --  We are currently using SARIF 2.1.0
- 
-    SARIF_Version : constant String := "2.1.0";
-    pragma Style_Checks ("M100");
-    SARIF_Schema  : constant String :=
-      "https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json";
-    pragma Style_Checks ("M79");
- 
-    type Artifact_Change is record
-       File  : String_Ptr;
-       --  Name of the file
- 
-       Replacements : Edit_List;
-       --  Regions of texts to be edited
-    end record;
- 
-    procedure Destroy (Elem : in out Artifact_Change);
-    pragma Inline (Destroy);
- 
-    function Equals (L, R : Artifact_Change) return Boolean is
-      (L.File /= null
-       and then R.File /= null
-       and then L.File.all = R.File.all);
- 
-    package Artifact_Change_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Artifact_Change,
-       "="             => Equals,
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype Artifact_Change_List is Artifact_Change_Lists.Doubly_Linked_List;
- 
-    function Get_Artifact_Changes (Fix : Fix_Type) return Artifact_Change_List;
-    --  Group edits of a Fix into Artifact_Changes that organize the edits by
-    --  file name.
- 
-    function Get_Unique_Rules (Diags : Diagnostic_List) return Diagnostic_List;
-    --  Get a list of diagnostics that have unique Diagnostic Id-s.
- 
-    procedure Print_Replacement (Replacement : Edit_Type);
-    --  Print a replacement node
-    --
-    --  {
-    --    deletedRegion: {<Region>},
-    --    insertedContent: {<Message>}
-    --  }
- 
-    procedure Print_Fix (Fix : Fix_Type);
-    --  Print the fix node
-    --
-    --  {
-    --    description: {<Message>},
-    --    artifactChanges: [<ArtifactChange>]
-    --  }
- 
-    procedure Print_Fixes (Diag : Diagnostic_Type);
-    --  Print the fixes node
-    --
-    --  "fixes": [
-    --    <Fix>,
-    --    ...
-    --  ]
- 
-    procedure Print_Invocations;
-    --  Print an invocations node that consists of
-    --  * a single invocation node that consists of:
-    --    * commandLine
-    --    * executionSuccessful
-    --
-    --  "invocations": [
-    --    {
-    --      "commandLine": <command line arguments provided to the GNAT FE>,
-    --      "executionSuccessful": ["true"|"false"],
-    --    }
-    --  ]
- 
-    procedure Print_Artifact_Change (A : Artifact_Change);
-    --  Print an ArtifactChange node
-    --
-    --  {
-    --    artifactLocation: {<ArtifactLocation>},
-    --    replacements: [<Replacements>]
-    --  }
- 
-    procedure Print_Artifact_Location (File_Name : String);
-    --  Print an artifactLocation node
-    --
-    --   "artifactLocation": {
-    --     "URI": <File_Name>
-    --   }
- 
-    procedure Print_Location (Loc : Labeled_Span_Type;
-                              Msg : String_Ptr);
-    --  Print a location node that consists of
-    --  * an optional message node
-    --  * a physicalLocation node
-    --    * ArtifactLocation node that consists of the file name
-    --    * Region node that consists of the start and end positions of the span
-    --
-    --  {
-    --    "message": {
-    --      "text": <Msg>
-    --    },
-    --    "physicalLocation": {
-    --      "artifactLocation": {
-    --        "URI": <File_Name (Loc)>
-    --      },
-    --      "region": {
-    --        "startLine": <Line(Loc.Fst)>,
-    --        "startColumn": <Col(Loc.Fst)>,
-    --        "endLine": <Line(Loc.Lst)>,
-    --        "endColumn": Col(Loc.Lst)>
-    --      }
-    --    }
-    --  }
- 
-    procedure Print_Locations (Diag : Diagnostic_Type);
-    --  Print a locations node that consists of multiple location nodes. However
-    --  typically just one location for the primary span of the diagnostic.
-    --
-    --   "locations": [
-    --      <Location (Primary_Span (Diag))>
-    --   ],
- 
-    procedure Print_Message (Text : String; Name : String := "message");
-    --  Print a SARIF message node
-    --
-    --  "message": {
-    --    "text": <text>
-    --  },
- 
-    procedure Print_Related_Locations (Diag : Diagnostic_Type);
-    --  Print a relatedLocations node that consists of multiple location nodes.
-    --  Related locations are the non-primary spans of the diagnostic and the
-    --  primary locations of sub-diagnostics.
-    --
-    --   "relatedLocations": [
-    --      <Location (Diag.Loc)>
-    --   ],
- 
-    procedure Print_Region (Start_Line : Int;
-                            Start_Col  : Int;
-                            End_Line   : Int;
-                            End_Col    : Int;
-                            Name       : String := "region");
-    --  Print a region node.
-    --
-    --  More specifically a text region node that specifies the textual
-    --  location of the region. Note that in SARIF there are also binary
-    --  regions.
-    --
-    --   "<Name>": {
-    --     "startLine": Start_Line,
-    --     "startColumn": Start_Col,
-    --     "endLine": End_Line,
-    --     "endColumn": End_Col + 1
-    --   }
-    --
-    --  Note that there are many types of nodes that can have a region type,
-    --  but have a different node name.
-    --
-    --  The end column is defined differently in the SARIF report than it is
-    --  for the spans within GNAT. Internally we consider the end column of a
-    --  span to be the last character of the span.
-    --
-    --  However in SARIF the end column is defined as:
-    --  "The column number of the character following the end of the region"
-    --
-    --  This method assumes that the End_Col passed to this procedure is using
-    --  the GNAT span definition and we amend the endColumn value so that it
-    --  matches the SARIF definition.
- 
-    procedure Print_Result (Diag : Diagnostic_Type);
-    --   {
-    --     "ruleId": <Diag.Id>,
-    --     "level": <Diag.Kind>,
-    --     "message": {
-    --       "text": <Diag.Message>
-    --     },
-    --     "locations": [<Primary_Location>],
-    --     "relatedLocations": [<Secondary_Locations>]
-    --  },
- 
-    procedure Print_Results (Diags : Diagnostic_List);
-    --  Print a results node that consists of multiple result nodes for each
-    --  diagnostic instance.
-    --
-    --   "results": [
-    --     <Result (Diag)>
-    --   ]
- 
-    procedure Print_Rule (Diag : Diagnostic_Type);
-    --  Print a rule node that consists of the following attributes:
-    --  * ruleId
-    --  * name
-    --
-    --  {
-    --    "id": <Diag.Id>,
-    --    "name": <Human_Id(Diag)>
-    --  },
- 
-    procedure Print_Rules (Diags : Diagnostic_List);
-    --  Print a rules node that consists of multiple rule nodes.
-    --  Rules are considered to be a set of unique diagnostics with the unique
-    --  id-s.
-    --
-    --   "rules": [
-    --     <Rule (Diag)>
-    --   ]
- 
-    procedure Print_Runs (Diags : Diagnostic_List);
-    --  Print a runs node that can consist of multiple run nodes.
-    --  However for our report it consists of a single run that consists of
-    --  * a tool node
-    --  * a results node
-    --
-    --   {
-    --     "tool": { <Tool (Diags)> },
-    --     "results": [<Results (Diags)>]
-    --   }
- 
-    procedure Print_Tool (Diags : Diagnostic_List);
-    --  Print a tool node that consists of
-    --  * a driver node that consists of:
-    --    * name
-    --    * version
-    --    * rules
-    --
-    --  "tool": {
-    --    "driver": {
-    --      "name": "GNAT",
-    --      "version": <GNAT_Version>,
-    --      "rules": [<Rules (Diags)>]
-    --    }
-    --  }
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Artifact_Change)
-    is
- 
-    begin
-       Free (Elem.File);
-    end Destroy;
- 
-    --------------------------
-    -- Get_Artifact_Changes --
-    --------------------------
- 
-    function Get_Artifact_Changes (Fix : Fix_Type) return Artifact_Change_List
-    is
-       procedure Insert (Changes : Artifact_Change_List; E : Edit_Type);
- 
-       ------------
-       -- Insert --
-       ------------
- 
-       procedure Insert (Changes : Artifact_Change_List; E : Edit_Type)
-       is
-          A : Artifact_Change;
- 
-          It : Artifact_Change_Lists.Iterator :=
-            Artifact_Change_Lists.Iterate (Changes);
-       begin
-          while Artifact_Change_Lists.Has_Next (It) loop
-             Artifact_Change_Lists.Next (It, A);
- 
-             if A.File.all = To_File_Name (E.Span.Ptr) then
-                Edit_Lists.Append (A.Replacements, E);
-                return;
-             end if;
-          end loop;
- 
-          declare
-             Replacements : constant Edit_List := Edit_Lists.Create;
-          begin
-             Edit_Lists.Append (Replacements, E);
-             Artifact_Change_Lists.Append
-               (Changes,
-                (File  => new String'(To_File_Name (E.Span.Ptr)),
-                 Replacements => Replacements));
-          end;
-       end Insert;
- 
-       Changes : constant Artifact_Change_List := Artifact_Change_Lists.Create;
- 
-       E : Edit_Type;
- 
-       It : Edit_Lists.Iterator := Edit_Lists.Iterate (Fix.Edits);
-    begin
-       while Edit_Lists.Has_Next (It) loop
-          Edit_Lists.Next (It, E);
- 
-          Insert (Changes, E);
-       end loop;
- 
-       return Changes;
-    end Get_Artifact_Changes;
- 
-    ----------------------
-    -- Get_Unique_Rules --
-    ----------------------
- 
-    function Get_Unique_Rules (Diags : Diagnostic_List)
-                               return Diagnostic_List
-    is
-       use Diagnostics.Diagnostics_Lists;
- 
-       procedure Insert (Rules : Diagnostic_List; D : Diagnostic_Type);
- 
-       ------------
-       -- Insert --
-       ------------
- 
-       procedure Insert (Rules : Diagnostic_List; D : Diagnostic_Type) is
-          It : Iterator := Iterate (Rules);
-          R  : Diagnostic_Type;
-       begin
-          while Has_Next (It) loop
-             Next (It, R);
- 
-             if R.Id = D.Id then
-                return;
-             elsif R.Id > D.Id then
-                Insert_Before (Rules, R, D);
-                return;
-             end if;
-          end loop;
- 
-          Append (Rules, D);
-       end Insert;
- 
-       D : Diagnostic_Type;
-       Unique_Rules : constant Diagnostic_List := Create;
- 
-       It : Iterator := Iterate (Diags);
-    begin
-       if Present (Diags) then
-          while Has_Next (It) loop
-             Next (It, D);
-             Insert (Unique_Rules, D);
-          end loop;
-       end if;
- 
-       return Unique_Rules;
-    end Get_Unique_Rules;
- 
-    ---------------------------
-    -- Print_Artifact_Change --
-    ---------------------------
- 
-    procedure Print_Artifact_Change (A : Artifact_Change)
-    is
-       use Diagnostics.Edit_Lists;
-       E : Edit_Type;
-       E_It : Iterator;
- 
-       First : Boolean := True;
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print artifactLocation
- 
-       Print_Artifact_Location (A.File.all);
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Write_Str ("""" & "replacements" & """" & ": " & "[");
-       Begin_Block;
-       NL_And_Indent;
- 
-       E_It := Iterate (A.Replacements);
- 
-       while Has_Next (E_It) loop
-          Next (E_It, E);
- 
-          if First then
-             First := False;
-          else
-             Write_Char (',');
-          end if;
- 
-          NL_And_Indent;
-          Print_Replacement (E);
-       end loop;
- 
-       --  End replacements
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
- 
-       --  End artifactChange
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Artifact_Change;
- 
-    -----------------------------
-    -- Print_Artifact_Location --
-    -----------------------------
- 
-    procedure Print_Artifact_Location (File_Name : String) is
- 
-    begin
-       Write_Str ("""" & "artifactLocation" & """" & ": " & "{");
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_String_Attribute ("uri", File_Name);
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Artifact_Location;
- 
-    -----------------------
-    -- Print_Replacement --
-    -----------------------
- 
-    procedure Print_Replacement (Replacement : Edit_Type) is
-       --  Span start positions
-       Fst      : constant Source_Ptr := Replacement.Span.First;
-       Line_Fst : constant Int        := Int (Get_Physical_Line_Number (Fst));
-       Col_Fst  : constant Int        := Int (Get_Column_Number (Fst));
- 
-       --  Span end positions
-       Lst      : constant Source_Ptr := Replacement.Span.Last;
-       Line_Lst : constant Int        := Int (Get_Physical_Line_Number (Lst));
-       Col_Lst  : constant Int        := Int (Get_Column_Number (Lst));
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print deletedRegion
- 
-       Print_Region (Start_Line => Line_Fst,
-                     Start_Col  => Col_Fst,
-                     End_Line   => Line_Lst,
-                     End_Col    => Col_Lst,
-                     Name       => "deletedRegion");
- 
-       if Replacement.Text /= null then
-          Write_Char (',');
-          NL_And_Indent;
- 
-          Print_Message (Replacement.Text.all, "insertedContent");
-       end if;
- 
-       --  End replacement
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Replacement;
- 
-    ---------------
-    -- Print_Fix --
-    ---------------
- 
-    procedure Print_Fix (Fix : Fix_Type) is
-       First : Boolean := True;
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print the message if the location has one
- 
-       if Fix.Description /= null then
-          Print_Message (Fix.Description.all, "description");
- 
-          Write_Char (',');
-          NL_And_Indent;
-       end if;
- 
-       declare
-          use Artifact_Change_Lists;
-          Changes : Artifact_Change_List := Get_Artifact_Changes (Fix);
-          A       : Artifact_Change;
-          A_It    : Iterator := Iterate (Changes);
-       begin
-          Write_Str ("""" & "artifactChanges" & """" & ": " & "[");
-          Begin_Block;
- 
-          while Has_Next (A_It) loop
-             Next (A_It, A);
- 
-             if First then
-                First := False;
-             else
-                Write_Char (',');
-             end if;
- 
-             NL_And_Indent;
- 
-             Print_Artifact_Change (A);
-          end loop;
- 
-          End_Block;
-          NL_And_Indent;
-          Write_Char (']');
- 
-          Destroy (Changes);
-       end;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Fix;
- 
-    -----------------
-    -- Print_Fixes --
-    -----------------
- 
-    procedure Print_Fixes (Diag : Diagnostic_Type) is
-       use Diagnostics.Fix_Lists;
-       F  : Fix_Type;
-       F_It : Iterator;
- 
-       First : Boolean := True;
-    begin
-       Write_Str ("""" & "fixes" & """" & ": " & "[");
-       Begin_Block;
- 
-       if Present (Diag.Fixes) then
-          F_It := Iterate (Diag.Fixes);
-          while Has_Next (F_It) loop
-             Next (F_It, F);
- 
-             if First then
-                First := False;
-             else
-                Write_Char (',');
-             end if;
- 
-             NL_And_Indent;
-             Print_Fix (F);
-          end loop;
-       end if;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
-    end Print_Fixes;
- 
-    -----------------------
-    -- Print_Invocations --
-    -----------------------
- 
-    procedure Print_Invocations is
- 
-       function Compose_Command_Line return String;
-       --  Composes the original command line from the parsed main file name and
-       --  relevant compilation switches
- 
-       function Compose_Command_Line return String is
-          Buffer : Bounded_String;
-       begin
-          Append (Buffer, Get_First_Main_File_Name);
-          for I in 1 .. Compilation_Switches_Last loop
-             declare
-                Switch : constant String := Get_Compilation_Switch (I).all;
-             begin
-                if Buffer.Length + Switch'Length + 1 <= Buffer.Max_Length then
-                   Append (Buffer, ' ' & Switch);
-                end if;
-             end;
-          end loop;
- 
-          return +Buffer;
-       end Compose_Command_Line;
- 
-    begin
-       Write_Str ("""" & "invocations" & """" & ": " & "[");
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print commandLine
- 
-       Write_String_Attribute ("commandLine", Compose_Command_Line);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print executionSuccessful
- 
-       Write_Boolean_Attribute ("executionSuccessful", Compilation_Errors);
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
-    end Print_Invocations;
- 
-    ------------------
-    -- Print_Region --
-    ------------------
- 
-    procedure Print_Region (Start_Line : Int;
-                            Start_Col  : Int;
-                            End_Line   : Int;
-                            End_Col    : Int;
-                            Name       : String := "region")
-    is
- 
-    begin
-       Write_Str ("""" & Name & """" & ": " & "{");
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_Int_Attribute ("startLine", Start_Line);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Write_Int_Attribute ("startColumn", Start_Col);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Write_Int_Attribute ("endLine", End_Line);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Convert the end of the span to the definition of the endColumn
-       --  for a SARIF region.
- 
-       Write_Int_Attribute ("endColumn", End_Col + 1);
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Region;
- 
-    --------------------
-    -- Print_Location --
-    --------------------
- 
-    procedure Print_Location (Loc : Labeled_Span_Type;
-                              Msg : String_Ptr)
-    is
- 
-       --  Span start positions
-       Fst      : constant Source_Ptr := Loc.Span.First;
-       Line_Fst : constant Int        := Int (Get_Physical_Line_Number (Fst));
-       Col_Fst  : constant Int        := Int (Get_Column_Number (Fst));
- 
-       --  Span end positions
-       Lst      : constant Source_Ptr := Loc.Span.Last;
-       Line_Lst : constant Int        := Int (Get_Physical_Line_Number (Lst));
-       Col_Lst  : constant Int        := Int (Get_Column_Number (Lst));
- 
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print the message if the location has one
- 
-       if Msg /= null then
-          Print_Message (Msg.all);
- 
-          Write_Char (',');
-          NL_And_Indent;
-       end if;
- 
-       Write_Str ("""" & "physicalLocation" & """" & ": " & "{");
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print artifactLocation
- 
-       Print_Artifact_Location (To_File_Name (Loc.Span.Ptr));
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print region
- 
-       Print_Region (Start_Line => Line_Fst,
-                     Start_Col  => Col_Fst,
-                     End_Line   => Line_Lst,
-                     End_Col    => Col_Lst);
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Location;
- 
-    ---------------------
-    -- Print_Locations --
-    ---------------------
- 
-    procedure Print_Locations (Diag : Diagnostic_Type) is
-       use Diagnostics.Labeled_Span_Lists;
-       Loc : Labeled_Span_Type;
-       It : Iterator := Iterate (Diag.Locations);
- 
-       First : Boolean := True;
-    begin
-       Write_Str ("""" & "locations" & """" & ": " & "[");
-       Begin_Block;
- 
-       while Has_Next (It) loop
-          Next (It, Loc);
- 
-          --  Only the primary span is considered as the main location other
-          --  spans are considered related locations
- 
-          if Loc.Is_Primary then
-             if First then
-                First := False;
-             else
-                Write_Char (',');
-             end if;
- 
-             NL_And_Indent;
-             Print_Location (Loc, Loc.Label);
-          end if;
-       end loop;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
- 
-    end Print_Locations;
- 
-    -------------------
-    -- Print_Message --
-    -------------------
- 
-    procedure Print_Message (Text : String; Name : String := "message") is
- 
-    begin
-       Write_Str ("""" & Name & """" & ": " & "{");
-       Begin_Block;
-       NL_And_Indent;
-       Write_String_Attribute ("text", Text);
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Message;
- 
-    -----------------------------
-    -- Print_Related_Locations --
-    -----------------------------
- 
-    procedure Print_Related_Locations (Diag : Diagnostic_Type) is
-       Loc : Labeled_Span_Type;
-       Loc_It : Labeled_Span_Lists.Iterator :=
-         Labeled_Span_Lists.Iterate (Diag.Locations);
- 
-       Sub : Sub_Diagnostic_Type;
-       Sub_It : Sub_Diagnostic_Lists.Iterator;
- 
-       First : Boolean := True;
-    begin
-       Write_Str ("""" & "relatedLocations" & """" & ": " & "[");
-       Begin_Block;
- 
-       --  Related locations are the non-primary spans of the diagnostic
- 
-       while Labeled_Span_Lists.Has_Next (Loc_It) loop
-          Labeled_Span_Lists.Next (Loc_It, Loc);
- 
-          --  Non-primary spans are considered related locations
- 
-          if not Loc.Is_Primary then
-             if First then
-                First := False;
-             else
-                Write_Char (',');
-             end if;
- 
-             NL_And_Indent;
-             Print_Location (Loc, Loc.Label);
-          end if;
-       end loop;
- 
-       --  And the sub-diagnostic locations
- 
-       if Sub_Diagnostic_Lists.Present (Diag.Sub_Diagnostics) then
-          Sub_It := Sub_Diagnostic_Lists.Iterate (Diag.Sub_Diagnostics);
- 
-          while Sub_Diagnostic_Lists.Has_Next (Sub_It) loop
-             Sub_Diagnostic_Lists.Next (Sub_It, Sub);
- 
-             declare
-                Found : Boolean := False;
- 
-                Prim_Loc : Labeled_Span_Type;
-             begin
-                if Labeled_Span_Lists.Present (Sub.Locations) then
-                   Loc_It := Labeled_Span_Lists.Iterate (Sub.Locations);
-                   while Labeled_Span_Lists.Has_Next (Loc_It) loop
-                      Labeled_Span_Lists.Next (Loc_It, Loc);
- 
-                      --  For sub-diagnostic locations, only the primary span is
-                      --  considered.
- 
-                      if not Found and then Loc.Is_Primary then
-                         Found    := True;
-                         Prim_Loc := Loc;
-                      end if;
-                   end loop;
-                else
- 
-                   --  If there are no locations for the sub-diagnostic then use
-                   --  the primary location of the main diagnostic.
- 
-                   Found    := True;
-                   Prim_Loc := Primary_Location (Diag);
-                end if;
- 
-                --  For mapping sub-diagnostics to related locations we have to
-                --  make some compromises in details.
-                --
-                --  Firstly we only make one entry that is for the primary span
-                --  of the sub-diagnostic.
-                --
-                --  Secondly this span can also have a label. However this
-                --  pattern is not advised and by default we include the message
-                --  of the sub-diagnostic as the message in location node since
-                --  it should have more information.
- 
-                if Found then
-                   if First then
-                      First := False;
-                   else
-                      Write_Char (',');
-                   end if;
-                   NL_And_Indent;
-                   Print_Location (Prim_Loc, Sub.Message);
-                end if;
-             end;
-          end loop;
-       end if;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
- 
-    end Print_Related_Locations;
- 
-    ------------------
-    -- Print_Result --
-    ------------------
- 
-    procedure Print_Result (Diag : Diagnostic_Type) is
- 
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Print ruleId
- 
-       Write_String_Attribute ("ruleId", "[" & To_String (Diag.Id) & "]");
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print level
- 
-       Write_String_Attribute ("level", Kind_To_String (Diag));
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print message
- 
-       Print_Message (Diag.Message.all);
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print locations
- 
-       Print_Locations (Diag);
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print related locations
- 
-       Print_Related_Locations (Diag);
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  Print fixes
- 
-       Print_Fixes (Diag);
- 
-       End_Block;
-       NL_And_Indent;
- 
-       Write_Char ('}');
-    end Print_Result;
- 
-    -------------------
-    -- Print_Results --
-    -------------------
- 
-    procedure Print_Results (Diags : Diagnostic_List) is
-       use Diagnostics.Diagnostics_Lists;
- 
-       D : Diagnostic_Type;
- 
-       It : Iterator := Iterate (All_Diagnostics);
- 
-       First : Boolean := True;
-    begin
-       Write_Str ("""" & "results" & """" & ": " & "[");
-       Begin_Block;
- 
-       if Present (Diags) then
-          while Has_Next (It) loop
-             Next (It, D);
- 
-             if First then
-                First := False;
-             else
-                Write_Char (',');
-             end if;
- 
-             NL_And_Indent;
-             Print_Result (D);
-          end loop;
-       end if;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
-    end Print_Results;
- 
-    ----------------
-    -- Print_Rule --
-    ----------------
- 
-    procedure Print_Rule (Diag : Diagnostic_Type) is
-       Human_Id : constant String_Ptr := Get_Human_Id (Diag);
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_String_Attribute ("id", "[" & To_String (Diag.Id) & "]");
-       Write_Char (',');
-       NL_And_Indent;
- 
-       if Human_Id = null then
-          Write_String_Attribute ("name", "Uncategorized_Diagnostic");
-       else
-          Write_String_Attribute ("name", Human_Id.all);
-       end if;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
-    end Print_Rule;
- 
-    -----------------
-    -- Print_Rules --
-    -----------------
- 
-    procedure Print_Rules (Diags : Diagnostic_List) is
-       use Diagnostics.Diagnostics_Lists;
- 
-       R : Diagnostic_Type;
-       Rules : constant Diagnostic_List := Get_Unique_Rules (Diags);
- 
-       It : Iterator := Iterate (Rules);
- 
-       First : Boolean := True;
-    begin
-       Write_Str ("""" & "rules" & """" & ": " & "[");
-       Begin_Block;
- 
-       while Has_Next (It) loop
-          Next (It, R);
- 
-          if First then
-             First := False;
-          else
-             Write_Char (',');
-          end if;
- 
-          NL_And_Indent;
-          Print_Rule (R);
-       end loop;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
- 
-    end Print_Rules;
- 
-    ----------------
-    -- Print_Tool --
-    ----------------
- 
-    procedure Print_Tool (Diags : Diagnostic_List) is
- 
-    begin
-       Write_Str ("""" & "tool" & """" & ": " & "{");
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  --  Attributes of tool
- 
-       Write_Str ("""" & "driver" & """" & ": " & "{");
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Attributes of tool.driver
- 
-       Write_String_Attribute ("name", "GNAT");
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Write_String_Attribute ("version", Gnat_Version_String);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Print_Rules (Diags);
- 
-       --  End of tool.driver
- 
-       End_Block;
-       NL_And_Indent;
- 
-       Write_Char ('}');
- 
-       --  End of tool
- 
-       End_Block;
-       NL_And_Indent;
- 
-       Write_Char ('}');
-    end Print_Tool;
- 
-    ----------------
-    -- Print_Runs --
-    ----------------
- 
-    procedure Print_Runs (Diags : Diagnostic_List) is
- 
-    begin
-       Write_Str ("""" & "runs" & """" & ": " & "[");
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  Runs can consist of multiple "run"-s. However the GNAT SARIF report
-       --  only has one.
- 
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       --  A run consists of a tool
- 
-       Print_Tool (Diags);
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  A run consists of an invocation
-       Print_Invocations;
- 
-       Write_Char (',');
-       NL_And_Indent;
- 
-       --  A run consists of results
- 
-       Print_Results (Diags);
- 
-       --  End of run
- 
-       End_Block;
-       NL_And_Indent;
- 
-       Write_Char ('}');
- 
-       End_Block;
-       NL_And_Indent;
- 
-       --  End of runs
- 
-       Write_Char (']');
-    end Print_Runs;
- 
-    ------------------------
-    -- Print_SARIF_Report --
-    ------------------------
- 
-    procedure Print_SARIF_Report (Diags : Diagnostic_List) is
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_String_Attribute ("$schema", SARIF_Schema);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Write_String_Attribute ("version", SARIF_Version);
-       Write_Char (',');
-       NL_And_Indent;
- 
-       Print_Runs (Diags);
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
- 
-       Write_Eol;
-    end Print_SARIF_Report;
- 
- end Diagnostics.SARIF_Emitter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-sarif_emitter.ads gcc-16-20250608/gcc/ada/diagnostics-sarif_emitter.ads
*** gcc-16-20250601/gcc/ada/diagnostics-sarif_emitter.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-sarif_emitter.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --              D I A G N O S T I C S . S A R I F _ E M I T T E R           --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package Diagnostics.SARIF_Emitter is
- 
-    procedure Print_SARIF_Report (Diags : Diagnostic_List);
- end Diagnostics.SARIF_Emitter;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-switch_repository.adb gcc-16-20250608/gcc/ada/diagnostics-switch_repository.adb
*** gcc-16-20250601/gcc/ada/diagnostics-switch_repository.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-switch_repository.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,690 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --  D I A G N O S T I C S . D I A G N O S T I C S _ R E P O S I T O R Y     --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- with Diagnostics.JSON_Utils; use Diagnostics.JSON_Utils;
- with Output;                 use Output;
- package body Diagnostics.Switch_Repository is
- 
-    Switches : constant array (Switch_Id)
-      of Switch_Type :=
-      (No_Switch_Id            =>
-         (others => <>),
-       gnatwb                  =>
-         (Human_Id          => new String'("Warn_On_Bad_Fixed_Value"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwb"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwc                  =>
-         (Human_Id          => new String'("Constant_Condition_Warnings"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwc"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwd                  =>
-         --  TODO: is this a subcheck of general gnatwu?
-         (Human_Id          => new String'("Warn_On_Dereference"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwd"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwf                       =>
-         (Human_Id          => new String'("Check_Unreferenced_Formals"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwf"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwg                       =>
-         (Human_Id          => new String'("Warn_On_Unrecognized_Pragma"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwg"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwh                       =>
-         (Human_Id          => new String'("Warn_On_Hiding"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwh"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwi                       =>
-         (Human_Id          => new String'("Implementation_Unit_Warnings"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwi"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwj                      =>
-         (Human_Id          => new String'("Warn_On_Obsolescent_Feature"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwj"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwk                      =>
-         (Human_Id          => new String'("Warn_On_Constant"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwk"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwl                      =>
-         (Human_Id          => new String'("Elab_Warnings"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwl"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwm                      =>
-         (Human_Id          => new String'("Warn_On_Modified_Unread"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwm"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwo                      =>
-         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwo"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwp                      =>
-         (Human_Id          => new String'("Ineffective_Inline_Warnings"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwp"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwq                      =>
-         (Human_Id => new String'("Warn_On_Questionable_Missing_Parens"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwq"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwr                      =>
-         (Human_Id          => new String'("Warn_On_Redundant_Constructs"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwr"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwt                      =>
-         (Human_Id          => new String'("Warn_On_Deleted_Code"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwt"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwu                      =>
-         (Human_Id          => new String'("Warn_On_Unused_Entities"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwu"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwv                      =>
-         (Human_Id          => new String'("Warn_On_No_Value_Assigned"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwv"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatww                      =>
-         (Human_Id          => new String'("Warn_On_Assumed_Low_Bound"),
-          Status            => Active,
-          Short_Name        => new String'("gnatww"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwx                      =>
-         (Human_Id          => new String'("Warn_On_Export_Import"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwx"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwy                      =>
-         (Human_Id          => new String'("Warn_On_Ada_Compatibility_Issues"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwy"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatwz                      =>
-         (Human_Id          => new String'("Warn_On_Unchecked_Conversion"),
-          Status            => Active,
-          Short_Name        => new String'("gnatwz"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_a                      =>
-         (Human_Id          => new String'("Warn_On_Assertion_Failure"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.a"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_b                      =>
-         (Human_Id          => new String'("Warn_On_Biased_Representation"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.b"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_c                      =>
-         (Human_Id          => new String'("Warn_On_Unrepped_Components"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.c"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_f                      =>
-         (Human_Id          => new String'("Warn_On_Elab_Access"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.f"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_h                      =>
-         (Human_Id          => new String'("Warn_On_Record_Holes"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.h"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_i                      =>
-         (Human_Id          => new String'("Warn_On_Overlap"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.i"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_j                      =>
-         (Human_Id          => new String'("Warn_On_Late_Primitives"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.j"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_k                      =>
-         (Human_Id          => new String'("Warn_On_Standard_Redefinition"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.k"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_l                      =>
-         (Human_Id          => new String'("List_Inherited_Aspects"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.l"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_m                      =>
-         (Human_Id          => new String'("Warn_On_Suspicious_Modulus_Value"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.m"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_n                      =>
-         (Human_Id          => new String'("Warn_On_Atomic_Synchronization"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.n"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_o                      =>
-         (Human_Id          => new String'("Warn_On_All_Unread_Out_Parameters"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.o"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_p                      =>
-         (Human_Id          => new String'("Warn_On_Parameter_Order"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.p"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_q                      =>
-         (Human_Id          => new String'("Warn_On_Questionable_Layout"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.q"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_r                      =>
-         (Human_Id          => new String'("Warn_On_Object_Renames_Function"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.r"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_s                      =>
-         (Human_Id          => new String'("Warn_On_Overridden_Size"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.s"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_t                      =>
-         (Human_Id          => new String'("Warn_On_Suspicious_Contract"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.t"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_u                      =>
-         (Human_Id => new String'("Warn_On_Unordered_Enumeration_Type"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.u"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_v                      =>
-         (Human_Id          => new String'("Warn_On_Reverse_Bit_Order"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.v"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_w                      =>
-         (Human_Id          => new String'("Warn_On_Warnings_Off"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.w"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_x                      =>
-         (Human_Id          =>
-           new String'("Warn_No_Exception_Propagation_Active"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.x"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_y                      =>
-         (Human_Id          => new String'("List_Body_Required_Info"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.y"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_dot_z                      =>
-         (Human_Id          => new String'("Warn_On_Size_Alignment"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw.z"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_a                      =>
-         (Human_Id          => new String'("Warn_On_Anonymous_Allocators"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_a"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_c                      =>
-         (Human_Id => new String'("Warn_On_Unknown_Compile_Time_Warning"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_c"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_j                      =>
-         (Human_Id => new String'("Warn_On_Non_Dispatching_Primitives"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_j"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_l                      =>
-         (Human_Id => new String'("Warn_On_Inherently_Limited_Types"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_l"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_p                      =>
-         (Human_Id          => new String'("Warn_On_Pedantic_Checks"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_p"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_q                      =>
-         (Human_Id          => new String'("Warn_On_Ignored_Equality"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_q"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_r                      =>
-         (Human_Id          => new String'("Warn_On_Component_Order"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_r"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatw_underscore_s                      =>
-         (Human_Id => new String'("Warn_On_Ineffective_Predicate_Test"),
-          Status            => Active,
-          Short_Name        => new String'("gnatw_s"),
-          Description       => null,
-          Documentation_Url => null),
-       --  NOTE: this flag is usually followed by a number specfifying the
-       --  indentation level. We encode all of these warnings as -gnaty0
-       --  irregardless of the actual numeric value.
-       gnaty      =>
-         (Human_Id          => new String'("Style_Check_Indentation_Level"),
-          Status            => Active,
-          Short_Name        => new String'("gnaty0"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatya  =>
-         (Human_Id          => new String'("Style_Check_Attribute_Casing"),
-          Status            => Active,
-          Short_Name        => new String'("gnatya"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyaa  =>
-         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyA"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyb  =>
-         (Human_Id          => new String'("Style_Check_Blanks_At_End"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyb"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatybb  =>
-         --  NOTE: in live documentation it is called "Check Boolean operators"
-         (Human_Id          => new String'("Style_Check_Boolean_And_Or"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyB"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyc  =>
-         (Human_Id          => new String'("Style_Check_Comments_Double_Space"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyc"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatycc  =>
-         (Human_Id          => new String'("Style_Check_Comments_Single_Space"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyC"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyd  =>
-         (Human_Id          => new String'("Style_Check_DOS_Line_Terminator"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyd"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatydd  =>
-         (Human_Id          => new String'("Style_Check_Mixed_Case_Decls"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyD"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatye  =>
-         (Human_Id          => new String'("Style_Check_End_Labels"),
-          Status            => Active,
-          Short_Name        => new String'("gnatye"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyf =>
-         (Human_Id          => new String'("Style_Check_Form_Feeds"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyf"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyh =>
-         (Human_Id          => new String'("Style_Check_Horizontal_Tabs"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyh"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyi =>
-         (Human_Id          => new String'("Style_Check_If_Then_Layout"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyi"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyii =>
-         (Human_Id          => new String'("Style_Check_Mode_In"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyI"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyk =>
-         (Human_Id          => new String'("Style_Check_Keyword_Casing"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyk"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyl =>
-         (Human_Id          => new String'("Style_Check_Layout"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyl"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyll =>
-         (Human_Id          => new String'("Style_Check_Max_Nesting_Level"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyL"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatym =>
-         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
-          Status            => Active,
-          Short_Name        => new String'("gnatym"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatymm =>
-         --  TODO: May contain line length
-         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyM"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyn =>
-         (Human_Id          => new String'("Style_Check_Standard"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyn"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyo =>
-         (Human_Id          => new String'("Style_Check_Order_Subprograms"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyo"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyoo =>
-         (Human_Id          => new String'("Style_Check_Missing_Overriding"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyO"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyp =>
-         (Human_Id          => new String'("Style_Check_Pragma_Casing"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyp"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyr =>
-         (Human_Id          => new String'("Style_Check_References"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyr"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatys =>
-         (Human_Id          => new String'("Style_Check_Specs"),
-          Status            => Active,
-          Short_Name        => new String'("gnatys"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyss =>
-         (Human_Id          => new String'("Style_Check_Separate_Stmt_Lines"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyS"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatytt =>
-         (Human_Id          => new String'("Style_Check_Tokens"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyt"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyu =>
-         (Human_Id          => new String'("Style_Check_Blank_Lines"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyu"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyx =>
-         (Human_Id          => new String'("Style_Check_Xtra_Parens"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyx"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatyz =>
-         (Human_Id => new String'("Style_Check_Xtra_Parens_Precedence"),
-          Status            => Active,
-          Short_Name        => new String'("gnatyz"),
-          Description       => null,
-          Documentation_Url => null),
-       gnatel =>
-         (Human_Id => new String'("Display_Elaboration_Messages"),
-          Status            => Active,
-          Short_Name        => new String'("gnatel"),
-          Description       => null,
-          Documentation_Url => null)
-       );
- 
-    ----------------
-    -- Get_Switch --
-    ----------------
- 
-    function Get_Switch (Id : Switch_Id) return Switch_Type is
- 
-    begin
-       return Switches (Id);
-    end Get_Switch;
- 
-    function Get_Switch (Diag : Diagnostic_Type) return Switch_Type is
- 
-    begin
-       return Get_Switch (Diag.Switch);
-    end Get_Switch;
- 
-    -------------------
-    -- Get_Switch_Id --
-    -------------------
- 
-    function Get_Switch_Id (Name : String) return Switch_Id is
-       Trimmed_Name : constant String :=
-         (if Name (Name'Last) = ' ' then Name (Name'First .. Name'Last - 1)
-          else Name);
-    begin
-       for I in Active_Switch_Id loop
-          if Switches (I).Short_Name.all = Trimmed_Name then
-             return I;
-          end if;
-       end loop;
- 
-       return No_Switch_Id;
-    end Get_Switch_Id;
- 
-    -------------------
-    -- Get_Switch_Id --
-    -------------------
- 
-    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id is
-       Switch_Name : constant String :=
-         (if E.Warn_Chr = "$ " then "gnatel"
-          elsif E.Warn_Chr in "? " | "  " then ""
-          elsif E.Kind in Erroutc.Warning | Erroutc.Info
-          then "gnatw" & E.Warn_Chr
-          elsif E.Kind in Erroutc.Style then "gnatw" & E.Warn_Chr
-          else "");
-    begin
-       if Switch_Name /= "" then
-          return Get_Switch_Id (Switch_Name);
-       else
-          return No_Switch_Id;
-       end if;
-    end Get_Switch_Id;
- 
-    -----------------------------
-    -- Print_Switch_Repository --
-    -----------------------------
- 
-    procedure Print_Switch_Repository is
-       First : Boolean := True;
-    begin
-       Write_Char ('{');
-       Begin_Block;
-       NL_And_Indent;
- 
-       Write_Str ("""" & "Switches" & """" & ": " & "[");
-       Begin_Block;
- 
-       --  Avoid printing the first switch, which is a placeholder
- 
-       for I in Active_Switch_Id loop
- 
-          if First then
-             First := False;
-          else
-             Write_Char (',');
-          end if;
- 
-          NL_And_Indent;
- 
-          Write_Char ('{');
-          Begin_Block;
-          NL_And_Indent;
- 
-          if Switches (I).Human_Id /= null then
-             Write_String_Attribute ("Human_Id", Switches (I).Human_Id.all);
-          else
-             Write_String_Attribute ("Human_Id", "null");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Switches (I).Short_Name /= null then
-             Write_String_Attribute ("Short_Name", Switches (I).Short_Name.all);
-          else
-             Write_String_Attribute ("Short_Name", "null");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Switches (I).Status = Active then
-             Write_String_Attribute ("Status", "Active");
-          else
-             Write_String_Attribute ("Status", "Deprecated");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Switches (I).Description /= null then
-             Write_String_Attribute ("Description",
-                                      Switches (I).Description.all);
-          else
-             Write_String_Attribute ("Description", "null");
-          end if;
- 
-          Write_Char (',');
-          NL_And_Indent;
- 
-          if Switches (I).Description /= null then
-             Write_String_Attribute ("Documentation_Url",
-                                     Switches (I).Description.all);
-          else
-             Write_String_Attribute ("Documentation_Url", "null");
-          end if;
- 
-          End_Block;
-          NL_And_Indent;
-          Write_Char ('}');
-       end loop;
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char (']');
- 
-       End_Block;
-       NL_And_Indent;
-       Write_Char ('}');
- 
-       Write_Eol;
-    end Print_Switch_Repository;
- 
- end Diagnostics.Switch_Repository;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-switch_repository.ads gcc-16-20250608/gcc/ada/diagnostics-switch_repository.ads
*** gcc-16-20250601/gcc/ada/diagnostics-switch_repository.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-switch_repository.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --  D I A G N O S T I C S . D I A G N O S T I C S _ R E P O S I T O R Y     --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- with Erroutc; use Erroutc;
- 
- package Diagnostics.Switch_Repository is
- 
-    function Get_Switch (Id : Switch_Id) return Switch_Type;
- 
-    function Get_Switch (Diag : Diagnostic_Type) return Switch_Type;
- 
-    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id;
- 
-    function Get_Switch_Id (Name : String) return Switch_Id;
- 
-    procedure Print_Switch_Repository;
- 
- end Diagnostics.Switch_Repository;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-utils.adb gcc-16-20250608/gcc/ada/diagnostics-utils.adb
*** gcc-16-20250601/gcc/ada/diagnostics-utils.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-utils.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,357 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                     D I A G N O S T I C S . U T I L S                    --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Diagnostics.Repository;        use Diagnostics.Repository;
- with Diagnostics.Switch_Repository; use Diagnostics.Switch_Repository;
- with Errout;                        use Errout;
- with Erroutc;                       use Erroutc;
- with Namet;                         use Namet;
- with Opt;                           use Opt;
- with Sinput;                        use Sinput;
- with Sinfo.Nodes;                   use Sinfo.Nodes;
- with Warnsw;                        use Warnsw;
- 
- package body Diagnostics.Utils is
- 
-    ------------------
-    -- Get_Human_Id --
-    ------------------
- 
-    function Get_Human_Id (D : Diagnostic_Type) return String_Ptr is
-    begin
-       if D.Switch = No_Switch_Id then
-          return Diagnostic_Entries (D.Id).Human_Id;
-       else
-          return Get_Switch (D).Human_Id;
-       end if;
-    end Get_Human_Id;
- 
-    ------------------
-    -- To_File_Name --
-    ------------------
- 
-    function To_File_Name (Sptr : Source_Ptr) return String is
-       Sfile    : constant Source_File_Index := Get_Source_File_Index (Sptr);
-       Ref_Name : constant File_Name_Type    :=
-         (if Full_Path_Name_For_Brief_Errors then Full_Ref_Name (Sfile)
-          else Reference_Name (Sfile));
- 
-    begin
-       return Get_Name_String (Ref_Name);
-    end To_File_Name;
- 
-    --------------------
-    -- Line_To_String --
-    --------------------
- 
-    function Line_To_String (Sptr : Source_Ptr) return String is
-       Line    : constant Logical_Line_Number := Get_Logical_Line_Number (Sptr);
-       Img_Raw : constant String  := Int'Image (Int (Line));
- 
-    begin
-       return Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
-    end Line_To_String;
- 
-    ----------------------
-    -- Column_To_String --
-    ----------------------
- 
-    function Column_To_String (Sptr : Source_Ptr) return String is
-       Col : constant Column_Number := Get_Column_Number (Sptr);
-       Img_Raw : constant String  := Int'Image (Int (Col));
- 
-    begin
-       return
-         (if Col < 10 then "0" else "")
-         & Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
-    end Column_To_String;
- 
-    ---------------
-    -- To_String --
-    ---------------
- 
-    function To_String (Sptr : Source_Ptr) return String is
-    begin
-       return
-         To_File_Name (Sptr) & ":" & Line_To_String (Sptr) & ":"
-         & Column_To_String (Sptr);
-    end To_String;
- 
-    --------------------
-    -- Sloc_To_String --
-    --------------------
- 
-    function Sloc_To_String
-      (N : Node_Or_Entity_Id; Ref : Source_Ptr) return String
-    is
- 
-    begin
-       return Sloc_To_String (Sloc (N), Ref);
-    end Sloc_To_String;
- 
-    --------------------
-    -- Sloc_To_String --
-    --------------------
- 
-    function Sloc_To_String (Sptr : Source_Ptr; Ref : Source_Ptr) return String
-    is
- 
-    begin
-       if Sptr = No_Location then
-          return "at unknown location";
- 
-       elsif Sptr = System_Location then
-          return "in package System";
- 
-       elsif Sptr = Standard_Location then
-          return "in package Standard";
- 
-       elsif Sptr = Standard_ASCII_Location then
-          return "in package Standard.ASCII";
- 
-       else
-          if Full_File_Name (Get_Source_File_Index (Sptr))
-             /= Full_File_Name (Get_Source_File_Index (Ref))
-          then
-             return "at " & To_String (Sptr);
-          else
-             return "at line " & Line_To_String (Sptr);
-          end if;
-       end if;
-    end Sloc_To_String;
- 
-    ------------------
-    -- To_Full_Span --
-    ------------------
- 
-    function To_Full_Span (N : Node_Id) return Source_Span
-    is
-       Fst, Lst : Node_Id;
-    begin
-       First_And_Last_Nodes (N, Fst, Lst);
-       return To_Span (Ptr   => Sloc (N),
-                       First => First_Sloc (Fst),
-                       Last  => Last_Sloc (Lst));
-    end To_Full_Span;
- 
-    ---------------
-    -- To_String --
-    ---------------
- 
-    function To_String (Id : Diagnostic_Id) return String is
-    begin
-       if Id = No_Diagnostic_Id then
-          return "GNAT0000";
-       else
-          return Id'Img;
-       end if;
-    end To_String;
- 
-    -------------
-    -- To_Name --
-    -------------
- 
-    function To_Name (E : Entity_Id) return String is
-    begin
-       --  The name of the node operator "&" has many special cases. Reuse the
-       --  node to name conversion implementation from the errout package for
-       --  now.
- 
-       Error_Msg_Node_1 := E;
-       Set_Msg_Text ("&", Sloc (E));
- 
-       return Msg_Buffer (1 .. Msglen);
-    end To_Name;
- 
-    ------------------
-    -- To_Type_Name --
-    ------------------
- 
-    function To_Type_Name (E : Entity_Id) return String is
-    begin
-       Error_Msg_Node_1 := E;
-       Set_Msg_Text ("}", Sloc (E));
- 
-       return Msg_Buffer (1 .. Msglen);
-    end To_Type_Name;
- 
-    --------------------
-    -- Kind_To_String --
-    --------------------
- 
-    function Kind_To_String
-      (D : Sub_Diagnostic_Type;
-       Parent : Diagnostic_Type) return String
-    is
-      (case D.Kind is
-         when Continuation => Kind_To_String (Parent),
-         when Help => "help",
-         when Note => "note",
-         when Suggestion => "suggestion");
- 
-    --------------------
-    -- Kind_To_String --
-    --------------------
- 
-    function Kind_To_String (D : Diagnostic_Type) return String is
-      (if D.Warn_Err then "error"
-       else
-        (case D.Kind is
-         when Diagnostics.Error | Non_Serious_Error => "error",
-         when Warning | Restriction_Warning | Default_Warning |
-              Tagless_Warning => "warning",
-         when Style => "style",
-         when Info => "info"));
- 
-    ------------------------------
-    -- Get_Primary_Labeled_Span --
-    ------------------------------
- 
-    function Get_Primary_Labeled_Span (Spans : Labeled_Span_List)
-                                       return Labeled_Span_Type
-    is
-       use Labeled_Span_Lists;
- 
-       S  : Labeled_Span_Type;
-       It : Iterator;
-    begin
-       if Present (Spans) then
-          It := Iterate (Spans);
-          while Has_Next (It) loop
-             Next (It, S);
-             if S.Is_Primary then
-                return S;
-             end if;
-          end loop;
-       end if;
- 
-       return No_Labeled_Span;
-    end Get_Primary_Labeled_Span;
- 
-    --------------------
-    -- Get_Doc_Switch --
-    --------------------
- 
-    function Get_Doc_Switch (Diag : Diagnostic_Type) return String is
-    begin
-       if Warning_Doc_Switch
-         and then Diag.Kind in Default_Warning
-                             | Info
-                             | Restriction_Warning
-                             | Style
-                             | Warning
-       then
-          if Diag.Switch = No_Switch_Id then
-             if Diag.Kind = Restriction_Warning then
-                return "[restriction warning]";
- 
-                --  Info messages can have a switch tag but they should not have
-                --  a default switch tag.
- 
-             elsif Diag.Kind /= Info then
- 
-                --  For Default_Warning
- 
-                return "[enabled by default]";
-             end if;
-          else
-             declare
-                S : constant Switch_Type := Get_Switch (Diag);
-             begin
-                return "[-" & S.Short_Name.all & "]";
-             end;
-          end if;
-       end if;
- 
-       return "";
-    end Get_Doc_Switch;
- 
-    --------------------
-    -- Appears_Before --
-    --------------------
- 
-    function Appears_Before (D1, D2 : Diagnostic_Type) return Boolean is
- 
-    begin
-       return Appears_Before (Primary_Location (D1).Span.Ptr,
-                              Primary_Location (D2).Span.Ptr);
-    end Appears_Before;
- 
-    --------------------
-    -- Appears_Before --
-    --------------------
- 
-    function Appears_Before (P1, P2 : Source_Ptr) return Boolean is
- 
-    begin
-       if Get_Source_File_Index (P1) = Get_Source_File_Index (P2) then
-          if Get_Logical_Line_Number (P1) = Get_Logical_Line_Number (P2) then
-             return Get_Column_Number (P1) < Get_Column_Number (P2);
-          else
-             return Get_Logical_Line_Number (P1) < Get_Logical_Line_Number (P2);
-          end if;
-       else
-          return Get_Source_File_Index (P1) < Get_Source_File_Index (P2);
-       end if;
-    end Appears_Before;
- 
-    ------------------------------
-    -- Insert_Based_On_Location --
-    ------------------------------
- 
-    procedure Insert_Based_On_Location
-      (List : Diagnostic_List;
-       Diagnostic : Diagnostic_Type)
-    is
-       use Diagnostics_Lists;
- 
-       It : Iterator := Iterate (List);
-       D  : Diagnostic_Type;
-    begin
-       --  This is the common scenario where the error is reported at the
-       --  natural order the tree is processed. This saves a lot of time when
-       --  looking for the correct position in the list when there are a lot of
-       --  diagnostics.
- 
-       if Present (List) and then
-          not Is_Empty (List) and then
-          Appears_Before (Last (List), Diagnostic)
-       then
-          Append (List, Diagnostic);
-       else
-          while Has_Next (It) loop
-             Next (It, D);
- 
-             if Appears_Before (Diagnostic, D) then
-                Insert_Before (List, D, Diagnostic);
-                return;
-             end if;
-          end loop;
- 
-          Append (List, Diagnostic);
-       end if;
-    end Insert_Based_On_Location;
- 
- end Diagnostics.Utils;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics-utils.ads gcc-16-20250608/gcc/ada/diagnostics-utils.ads
*** gcc-16-20250601/gcc/ada/diagnostics-utils.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics-utils.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,91 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                     D I A G N O S T I C S . U T I L S                    --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package Diagnostics.Utils is
- 
-    function Get_Human_Id (D : Diagnostic_Type) return String_Ptr;
- 
-    function Sloc_To_String (Sptr : Source_Ptr; Ref : Source_Ptr) return String;
-    --  Convert the source pointer to a string and prefix it with the correct
-    --  preposition.
-    --
-    --  * If the location is in one of the standard locations,
-    --    then it yields "in package <LOCATION>". The explicit standard
-    --    locations are:
-    --    * System
-    --    * Standard
-    --    * Standard.ASCII
-    --  * if the location is missing the the sloc yields "at unknown location"
-    --  * if the location is in the same file as the current file,
-    --    then it yields "at line <line>".
-    --  * Otherwise sloc yields "at <file>:<line>:<column>"
- 
-    function Sloc_To_String (N : Node_Or_Entity_Id;
-                             Ref : Source_Ptr)
-                             return String;
-    --  Converts the Sloc of the node or entity to a Sloc string.
- 
-    function To_String (Sptr : Source_Ptr) return String;
-    --  Convert the source pointer to a string of the form: "file:line:column"
- 
-    function To_File_Name (Sptr : Source_Ptr) return String;
-    --  Converts the file name of the Sptr to a string.
- 
-    function Line_To_String (Sptr : Source_Ptr) return String;
-    --  Converts the logical line number of the Sptr to a string.
- 
-    function Column_To_String (Sptr : Source_Ptr) return String;
-    --  Converts the column number of the Sptr to a string. Column values less
-    --  than 10 are prefixed with a 0.
- 
-    function To_Full_Span (N : Node_Id) return Source_Span;
- 
-    function To_String (Id : Diagnostic_Id) return String;
-    --  Convert the diagnostic ID to a 4 character string padded with 0-s.
- 
-    function To_Name (E : Entity_Id) return String;
- 
-    function To_Type_Name (E : Entity_Id) return String;
- 
-    function Kind_To_String (D : Diagnostic_Type) return String;
- 
-    function Kind_To_String
-      (D : Sub_Diagnostic_Type;
-       Parent : Diagnostic_Type) return String;
- 
-    function Get_Primary_Labeled_Span (Spans : Labeled_Span_List)
-                                       return Labeled_Span_Type;
- 
-    function Get_Doc_Switch (Diag : Diagnostic_Type) return String;
- 
-    function Appears_Before (D1, D2 : Diagnostic_Type) return Boolean;
- 
-    function Appears_Before (P1, P2 : Source_Ptr) return Boolean;
- 
-    procedure Insert_Based_On_Location
-      (List       : Diagnostic_List;
-       Diagnostic : Diagnostic_Type);
- 
- end Diagnostics.Utils;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics.adb gcc-16-20250608/gcc/ada/diagnostics.adb
*** gcc-16-20250601/gcc/ada/diagnostics.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,539 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                          D I A G N O S T I C S                           --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Atree;                  use Atree;
- with Debug;                  use Debug;
- with Diagnostics.Brief_Emitter;
- with Diagnostics.Pretty_Emitter;
- with Diagnostics.Repository; use Diagnostics.Repository;
- with Diagnostics.Utils;      use Diagnostics.Utils;
- with Lib;                    use Lib;
- with Opt;                    use Opt;
- with Sinput;                 use Sinput;
- with Warnsw;
- 
- package body Diagnostics is
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Labeled_Span_Type) is
-    begin
-       Free (Elem.Label);
-    end Destroy;
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Sub_Diagnostic_Type) is
-    begin
-       Free (Elem.Message);
-       if Labeled_Span_Lists.Present (Elem.Locations) then
-          Labeled_Span_Lists.Destroy (Elem.Locations);
-       end if;
-    end Destroy;
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Edit_Type) is
-    begin
-       Free (Elem.Text);
-    end Destroy;
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Fix_Type) is
-    begin
-       Free (Elem.Description);
-       if Edit_Lists.Present (Elem.Edits) then
-          Edit_Lists.Destroy (Elem.Edits);
-       end if;
-    end Destroy;
- 
-    -------------
-    -- Destroy --
-    -------------
- 
-    procedure Destroy (Elem : in out Diagnostic_Type) is
-    begin
-       Free (Elem.Message);
-       if Labeled_Span_Lists.Present (Elem.Locations) then
-          Labeled_Span_Lists.Destroy (Elem.Locations);
-       end if;
-       if Sub_Diagnostic_Lists.Present (Elem.Sub_Diagnostics) then
-          Sub_Diagnostic_Lists.Destroy (Elem.Sub_Diagnostics);
-       end if;
-       if Fix_Lists.Present (Elem.Fixes) then
-          Fix_Lists.Destroy (Elem.Fixes);
-       end if;
-    end Destroy;
- 
-    ------------------
-    -- Add_Location --
-    ------------------
- 
-    procedure Add_Location
-      (Diagnostic : in out Sub_Diagnostic_Type; Location : Labeled_Span_Type)
-    is
-       use Labeled_Span_Lists;
-    begin
-       if not Present (Diagnostic.Locations) then
-          Diagnostic.Locations := Create;
-       end if;
- 
-       Append (Diagnostic.Locations, Location);
-    end Add_Location;
- 
-    ----------------------
-    -- Primary_Location --
-    ----------------------
- 
-    function Primary_Location
-      (Diagnostic : Sub_Diagnostic_Type) return Labeled_Span_Type
-    is
-    begin
-       return Get_Primary_Labeled_Span (Diagnostic.Locations);
-    end Primary_Location;
- 
-    ------------------
-    -- Add_Location --
-    ------------------
- 
-    procedure Add_Location
-      (Diagnostic : in out Diagnostic_Type; Location : Labeled_Span_Type)
-    is
-       use Labeled_Span_Lists;
-    begin
-       if not Present (Diagnostic.Locations) then
-          Diagnostic.Locations := Create;
-       end if;
- 
-       Append (Diagnostic.Locations, Location);
-    end Add_Location;
- 
-    ------------------------
-    -- Add_Sub_Diagnostic --
-    ------------------------
- 
-    procedure Add_Sub_Diagnostic
-      (Diagnostic     : in out Diagnostic_Type;
-       Sub_Diagnostic :        Sub_Diagnostic_Type)
-    is
-       use Sub_Diagnostic_Lists;
-    begin
-       if not Present (Diagnostic.Sub_Diagnostics) then
-          Diagnostic.Sub_Diagnostics := Create;
-       end if;
- 
-       Append (Diagnostic.Sub_Diagnostics, Sub_Diagnostic);
-    end Add_Sub_Diagnostic;
- 
-    procedure Add_Edit (Fix : in out Fix_Type; Edit : Edit_Type) is
-       use Edit_Lists;
-    begin
-       if not Present (Fix.Edits) then
-          Fix.Edits := Create;
-       end if;
- 
-       Append (Fix.Edits, Edit);
-    end Add_Edit;
- 
-    -------------
-    -- Add_Fix --
-    -------------
- 
-    procedure Add_Fix (Diagnostic : in out Diagnostic_Type; Fix : Fix_Type) is
-       use Fix_Lists;
-    begin
-       if not Present (Diagnostic.Fixes) then
-          Diagnostic.Fixes := Create;
-       end if;
- 
-       Append (Diagnostic.Fixes, Fix);
-    end Add_Fix;
- 
-    -----------------------
-    -- Record_Diagnostic --
-    -----------------------
- 
-    procedure Record_Diagnostic (Diagnostic : Diagnostic_Type;
-                                 Update_Count : Boolean := True)
-    is
- 
-       procedure Update_Diagnostic_Count (Diagnostic : Diagnostic_Type);
- 
-       -----------------------------
-       -- Update_Diagnostic_Count --
-       -----------------------------
- 
-       procedure Update_Diagnostic_Count (Diagnostic : Diagnostic_Type) is
- 
-       begin
-          case Diagnostic.Kind is
-             when Error =>
-                Total_Errors_Detected := Total_Errors_Detected + 1;
-                Serious_Errors_Detected := Serious_Errors_Detected + 1;
- 
-             when Non_Serious_Error =>
-                Total_Errors_Detected := Total_Errors_Detected + 1;
- 
-             when Warning
-                | Default_Warning
-                | Tagless_Warning
-                | Restriction_Warning
-                | Style
-             =>
-                Warnings_Detected := Warnings_Detected + 1;
- 
-                if Diagnostic.Warn_Err then
-                   Warnings_Treated_As_Errors := Warnings_Treated_As_Errors + 1;
-                end if;
- 
-             when Info =>
-                Info_Messages := Info_Messages + 1;
-          end case;
-       end Update_Diagnostic_Count;
- 
-       procedure Handle_Serious_Error;
-       --  Internal procedure to do all error message handling for a serious
-       --  error message, other than bumping the error counts and arranging
-       --  for the message to be output.
- 
-       procedure Handle_Serious_Error is
-       begin
-          --  Turn off code generation if not done already
- 
-          if Operating_Mode = Generate_Code then
-             Operating_Mode := Check_Semantics;
-             Expander_Active := False;
-          end if;
- 
-          --  Set the fatal error flag in the unit table unless we are in
-          --  Try_Semantics mode (in which case we set ignored mode if not
-          --  currently set. This stops the semantics from being performed
-          --  if we find a serious error. This is skipped if we are currently
-          --  dealing with the configuration pragma file.
- 
-          if Current_Source_Unit /= No_Unit then
-             declare
-                U : constant Unit_Number_Type :=
-                  Get_Source_Unit
-                    (Primary_Location (Diagnostic).Span.Ptr);
-             begin
-                if Try_Semantics then
-                   if Fatal_Error (U) = None then
-                      Set_Fatal_Error (U, Error_Ignored);
-                   end if;
-                else
-                   Set_Fatal_Error (U, Error_Detected);
-                end if;
-             end;
-          end if;
- 
-          --  Disable warnings on unused use clauses and the like. Otherwise, an
-          --  error might hide a reference to an entity in a used package, so
-          --  after fixing the error, the use clause no longer looks like it was
-          --  unused.
- 
-          Warnsw.Check_Unreferenced := False;
-          Warnsw.Check_Unreferenced_Formals := False;
-       end Handle_Serious_Error;
-    begin
-       Insert_Based_On_Location (All_Diagnostics, Diagnostic);
- 
-       if Update_Count then
-          Update_Diagnostic_Count (Diagnostic);
-       end if;
- 
-       if Diagnostic.Kind = Error then
-          Handle_Serious_Error;
-       end if;
-    end Record_Diagnostic;
- 
-    ----------------------
-    -- Print_Diagnostic --
-    ----------------------
- 
-    procedure Print_Diagnostic (Diagnostic : Diagnostic_Type) is
- 
-    begin
-       if Debug_Flag_FF then
-          Diagnostics.Pretty_Emitter.Print_Diagnostic (Diagnostic);
-       else
-          Diagnostics.Brief_Emitter.Print_Diagnostic (Diagnostic);
-       end if;
-    end Print_Diagnostic;
- 
-    ----------------------
-    -- Primary_Location --
-    ----------------------
- 
-    function Primary_Location
-      (Diagnostic : Diagnostic_Type) return Labeled_Span_Type
-    is
-    begin
-       return Get_Primary_Labeled_Span (Diagnostic.Locations);
-    end Primary_Location;
- 
-    ---------------------
-    -- Make_Diagnostic --
-    ---------------------
- 
-    function Make_Diagnostic
-      (Msg       : String;
-       Location  : Labeled_Span_Type;
-       Id        : Diagnostic_Id        := No_Diagnostic_Id;
-       Kind      : Diagnostic_Kind      := Diagnostics.Error;
-       Switch    : Switch_Id            := No_Switch_Id;
-       Spans     : Labeled_Span_Array   := No_Locations;
-       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
-       Fixes     : Fix_Array            := No_Fixes)
-       return Diagnostic_Type
-    is
-       D : Diagnostic_Type;
-    begin
-       D.Message := new String'(Msg);
-       D.Id      := Id;
-       D.Kind    := Kind;
- 
-       if Id /= No_Diagnostic_Id then
-          pragma Assert (Switch = Diagnostic_Entries (Id).Switch,
-             "Provided switch must be the same as in the registry");
-       end if;
-       D.Switch  := Switch;
- 
-       pragma Assert (Location.Is_Primary, "Main location must be primary");
-       Add_Location (D, Location);
- 
-       for I in Spans'Range loop
-          Add_Location (D, Spans (I));
-       end loop;
- 
-       for I in Sub_Diags'Range loop
-          Add_Sub_Diagnostic (D, Sub_Diags (I));
-       end loop;
- 
-       for I in Fixes'Range loop
-          Add_Fix (D, Fixes (I));
-       end loop;
- 
-       return D;
-    end Make_Diagnostic;
- 
-    -----------------------
-    -- Record_Diagnostic --
-    -----------------------
- 
-    procedure Record_Diagnostic
-      (Msg       : String;
-       Location  : Labeled_Span_Type;
-       Id        : Diagnostic_Id        := No_Diagnostic_Id;
-       Kind      : Diagnostic_Kind      := Diagnostics.Error;
-       Switch    : Switch_Id            := No_Switch_Id;
-       Spans     : Labeled_Span_Array   := No_Locations;
-       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
-       Fixes     : Fix_Array            := No_Fixes)
-    is
- 
-    begin
-       Record_Diagnostic
-         (Make_Diagnostic
-            (Msg       => Msg,
-             Location  => Location,
-             Id        => Id,
-             Kind      => Kind,
-             Switch    => Switch,
-             Spans     => Spans,
-             Sub_Diags => Sub_Diags,
-             Fixes     => Fixes));
-    end Record_Diagnostic;
- 
-    ------------------
-    -- Labeled_Span --
-    ------------------
- 
-    function Labeled_Span (Span       : Source_Span;
-                           Label      : String := "";
-                           Is_Primary : Boolean := True;
-                           Is_Region  : Boolean := False)
-                           return Labeled_Span_Type
-    is
-       L : Labeled_Span_Type;
-    begin
-       L.Span       := Span;
-       if Label /= "" then
-          L.Label      := new String'(Label);
-       end if;
-       L.Is_Primary := Is_Primary;
-       L.Is_Region  := Is_Region;
- 
-       return L;
-    end Labeled_Span;
- 
-    --------------------------
-    -- Primary_Labeled_Span --
-    --------------------------
- 
-    function Primary_Labeled_Span (Span  : Source_Span;
-                                   Label : String  := "")
-                                   return Labeled_Span_Type
-    is begin
-       return Labeled_Span (Span => Span, Label => Label, Is_Primary => True);
-    end Primary_Labeled_Span;
- 
-    --------------------------
-    -- Primary_Labeled_Span --
-    --------------------------
- 
-    function Primary_Labeled_Span (N     : Node_Or_Entity_Id;
-                                   Label : String := "")
-                                   return Labeled_Span_Type
-    is
-    begin
-       return Primary_Labeled_Span (To_Full_Span (N), Label);
-    end Primary_Labeled_Span;
- 
-    ----------------------------
-    -- Secondary_Labeled_Span --
-    ----------------------------
- 
-    function Secondary_Labeled_Span
-      (Span  : Source_Span;
-       Label : String := "")
-       return Labeled_Span_Type
-    is
-    begin
-       return Labeled_Span (Span => Span, Label => Label, Is_Primary => False);
-    end Secondary_Labeled_Span;
- 
-    ----------------------------
-    -- Secondary_Labeled_Span --
-    ----------------------------
- 
-    function Secondary_Labeled_Span (N     : Node_Or_Entity_Id;
-                                     Label : String  := "")
-                                     return Labeled_Span_Type
-    is
-    begin
-       return Secondary_Labeled_Span (To_Full_Span (N), Label);
-    end Secondary_Labeled_Span;
- 
-    --------------
-    -- Sub_Diag --
-    --------------
- 
-    function Sub_Diag (Msg       : String;
-                       Kind      : Sub_Diagnostic_Kind :=
-                         Diagnostics.Continuation;
-                       Locations : Labeled_Span_Array  := No_Locations)
-                       return Sub_Diagnostic_Type
-    is
-       S : Sub_Diagnostic_Type;
-    begin
-       S.Message := new String'(Msg);
-       S.Kind    := Kind;
- 
-       for I in Locations'Range loop
-          Add_Location (S, Locations (I));
-       end loop;
- 
-       return S;
-    end Sub_Diag;
- 
-    ------------------
-    -- Continuation --
-    ------------------
- 
-    function Continuation (Msg       : String;
-                           Locations : Labeled_Span_Array := No_Locations)
-                           return Sub_Diagnostic_Type
-    is
-    begin
-       return Sub_Diag (Msg, Diagnostics.Continuation, Locations);
-    end Continuation;
- 
-    ----------
-    -- Help --
-    ----------
- 
-    function Help (Msg       : String;
-                   Locations : Labeled_Span_Array := No_Locations)
-                   return Sub_Diagnostic_Type
-    is
-    begin
-       return Sub_Diag (Msg, Diagnostics.Help, Locations);
-    end Help;
- 
-    ----------------
-    -- Suggestion --
-    ----------------
- 
-    function Suggestion (Msg       : String;
-                         Locations : Labeled_Span_Array := No_Locations)
-                         return Sub_Diagnostic_Type
-    is
-    begin
-       return Sub_Diag (Msg, Diagnostics.Suggestion, Locations);
-    end Suggestion;
- 
-    ---------
-    -- Fix --
-    ---------
- 
-    function Fix
-      (Description   : String;
-       Edits         : Edit_Array;
-       Applicability : Applicability_Type := Unspecified) return Fix_Type
-    is
-       F : Fix_Type;
-    begin
-       F.Description   := new String'(Description);
- 
-       for I in Edits'Range loop
-          Add_Edit (F, Edits (I));
-       end loop;
- 
-       F.Applicability := Applicability;
- 
-       return F;
-    end Fix;
- 
-    ----------
-    -- Edit --
-    ----------
- 
-    function Edit (Text : String; Span : Source_Span) return Edit_Type is
- 
-    begin
-       return (Text => new String'(Text), Span => Span);
-    end Edit;
- 
- end Diagnostics;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/diagnostics.ads gcc-16-20250608/gcc/ada/diagnostics.ads
*** gcc-16-20250601/gcc/ada/diagnostics.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/diagnostics.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,477 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                          D I A G N O S T I C S                           --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
- -- for  more details.  You should have  received  a copy of the GNU General --
- -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
- -- http://www.gnu.org/licenses for a complete copy of the license.          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- with Types;      use Types;
- with GNAT.Lists; use GNAT.Lists;
- 
- package Diagnostics is
- 
-    type Diagnostic_Id is
-      (No_Diagnostic_Id,
-       GNAT0001,
-       GNAT0002,
-       GNAT0003,
-       GNAT0004,
-       GNAT0005,
-       GNAT0006,
-       GNAT0007,
-       GNAT0008,
-       GNAT0009,
-       GNAT0010,
-       GNAT0011);
- 
-    --  Labeled_Span_Type represents a span of source code that is associated
-    --  with a textual label. Primary spans indicate the primary location of the
-    --  diagnostic. Non-primary spans are used to indicate secondary locations.
-    --
-    --  Spans can contain labels that are used to annotate the highlighted span.
-    --  Usually, the label is a short and concise message that provide
-    --  additional allthough non-critical information about the span. This is
-    --  an important since labels are not printed in the brief output and are
-    --  only present in the pretty and structural outputs. That is an important
-    --  distintion when choosing between a label and a sub-diagnostic.
-    type Labeled_Span_Type is record
-       Label : String_Ptr := null;
-       --  Text associated with the span
- 
-       Span : Source_Span := (others => No_Location);
-       --  Textual region in the source code
- 
-       Is_Primary : Boolean := True;
-       --  Primary spans are used to indicate the primary location of the
-       --  diagnostic. Typically there should just be one primary span per
-       --  diagnostic.
-       --  Non-primary spans are used to indicate secondary locations and
-       --  typically are formatted in a different way or omitted in some
-       --  contexts.
- 
-       Is_Region : Boolean := False;
-       --  Regional spans are multiline spans that have a unique way of being
-       --  displayed in the pretty output.
-    end record;
- 
-    No_Labeled_Span : constant Labeled_Span_Type := (others => <>);
- 
-    procedure Destroy (Elem : in out Labeled_Span_Type);
-    pragma Inline (Destroy);
- 
-    package Labeled_Span_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Labeled_Span_Type,
-       "="             => "=",
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
-    subtype Labeled_Span_List is Labeled_Span_Lists.Doubly_Linked_List;
- 
-    type Sub_Diagnostic_Kind is
-      (Continuation,
-       Help,
-       Note,
-       Suggestion);
- 
-    --  Sub_Diagnostic_Type represents a sub-diagnostic message that is meant
-    --  to provide additional information about the primary diagnostic message.
-    --
-    --  Sub-diagnostics are usually constructed with a full sentence as the
-    --  message and provide important context to the main diagnostic message or
-    --  some concrete action to the user.
-    --
-    --  This is different from the labels of labeled spans which are meant to be
-    --  short and concise and are mostly there to annotate the higlighted span.
- 
-    type Sub_Diagnostic_Type is record
-       Kind : Sub_Diagnostic_Kind;
- 
-       Message : String_Ptr;
- 
-       Locations : Labeled_Span_List;
-    end record;
- 
-    procedure Add_Location
-      (Diagnostic : in out Sub_Diagnostic_Type; Location : Labeled_Span_Type);
- 
-    function Primary_Location
-      (Diagnostic : Sub_Diagnostic_Type) return Labeled_Span_Type;
- 
-    procedure Destroy (Elem : in out Sub_Diagnostic_Type);
-    pragma Inline (Destroy);
- 
-    package Sub_Diagnostic_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Sub_Diagnostic_Type,
-       "="             => "=",
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype Sub_Diagnostic_List is Sub_Diagnostic_Lists.Doubly_Linked_List;
- 
-    --  An Edit_Type represents a textual edit that is associated with a Fix.
-    type Edit_Type is record
-       Span : Source_Span;
-       --  Region of the file to be removed
- 
-       Text : String_Ptr;
-       --  Text to be inserted at the start location of the span
-    end record;
- 
-    procedure Destroy (Elem : in out Edit_Type);
-    pragma Inline (Destroy);
- 
-    package Edit_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Edit_Type,
-       "="             => "=",
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype Edit_List is Edit_Lists.Doubly_Linked_List;
- 
-    --  Type Applicability_Type will indicate the state of the resulting code
-    --  after applying a fix.
-    --  * Option Has_Placeholders indicates that the fix contains placeholders
-    --    that the user would need to fill.
-    --  * Option Legal indicates that applying the fix will result in legal Ada
-    --    code.
-    --  * Option Possibly_Illegal indicates that applying the fix will result in
-    --    possibly legal, but also possibly illegal Ada code.
-    type Applicability_Type is
-      (Has_Placeholders,
-       Legal,
-       Possibly_Illegal,
-       Unspecified);
- 
-    type Fix_Type is record
-       Description : String_Ptr := null;
-       --  Message describing the fix that will be displayed to the user.
- 
-       Applicability : Applicability_Type := Unspecified;
- 
-       Edits : Edit_List;
-       --   File changes for the fix.
-    end record;
- 
-    procedure Destroy (Elem : in out Fix_Type);
-    pragma Inline (Destroy);
- 
-    package Fix_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Fix_Type,
-       "="             => "=",
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype Fix_List is Fix_Lists.Doubly_Linked_List;
- 
-    procedure Add_Edit (Fix : in out Fix_Type; Edit : Edit_Type);
- 
-    type Status_Type is
-      (Active,
-       Deprecated);
- 
-    type Switch_Id is (
-       No_Switch_Id,
-       gnatwb,
-       gnatwc,
-       gnatwd,
-       gnatwf,
-       gnatwg,
-       gnatwh,
-       gnatwi,
-       gnatwj,
-       gnatwk,
-       gnatwl,
-       gnatwm,
-       gnatwo,
-       gnatwp,
-       gnatwq,
-       gnatwr,
-       gnatwt,
-       gnatwu,
-       gnatwv,
-       gnatww,
-       gnatwx,
-       gnatwy,
-       gnatwz,
-       gnatw_dot_a,
-       gnatw_dot_b,
-       gnatw_dot_c,
-       gnatw_dot_f,
-       gnatw_dot_h,
-       gnatw_dot_i,
-       gnatw_dot_j,
-       gnatw_dot_k,
-       gnatw_dot_l,
-       gnatw_dot_m,
-       gnatw_dot_n,
-       gnatw_dot_o,
-       gnatw_dot_p,
-       gnatw_dot_q,
-       gnatw_dot_r,
-       gnatw_dot_s,
-       gnatw_dot_t,
-       gnatw_dot_u,
-       gnatw_dot_v,
-       gnatw_dot_w,
-       gnatw_dot_x,
-       gnatw_dot_y,
-       gnatw_dot_z,
-       gnatw_underscore_a,
-       gnatw_underscore_c,
-       gnatw_underscore_j,
-       gnatw_underscore_l,
-       gnatw_underscore_p,
-       gnatw_underscore_q,
-       gnatw_underscore_r,
-       gnatw_underscore_s,
-       gnaty,
-       gnatya,
-       gnatyb,
-       gnatyc,
-       gnatyd,
-       gnatye,
-       gnatyf,
-       gnatyh,
-       gnatyi,
-       gnatyk,
-       gnatyl,
-       gnatym,
-       gnatyn,
-       gnatyo,
-       gnatyp,
-       gnatyr,
-       gnatys,
-       gnatyu,
-       gnatyx,
-       gnatyz,
-       gnatyaa,
-       gnatybb,
-       gnatycc,
-       gnatydd,
-       gnatyii,
-       gnatyll,
-       gnatymm,
-       gnatyoo,
-       gnatyss,
-       gnatytt,
-       gnatel
-    );
- 
-    subtype Active_Switch_Id is Switch_Id range gnatwb .. gnatel;
-    --  The range of switch ids that represent switches that trigger a specific
-    --  diagnostic check.
- 
-    type Switch_Type is record
- 
-       Status : Status_Type := Active;
-       --  The status will indicate whether the switch is currently active,
-       --  or has been deprecated. A deprecated switch will not control
-       --  diagnostics, and will not be emitted by the GNAT usage.
- 
-       Human_Id : String_Ptr := null;
-       --  The Human_Id will be a unique and stable string-based ID which
-       --  identifies the content of the switch within the switch registry.
-       --  This ID will appear in SARIF readers.
- 
-       Short_Name : String_Ptr := null;
-       --  The Short_Name will denote the -gnatXX name of the switch.
- 
-       Description : String_Ptr := null;
-       --  The description will contain the description of the switch, as it is
-       --  currently emitted by the GNAT usage.
- 
-       Documentation_Url : String_Ptr := null;
-       --  The documentation_url will point to the AdaCore documentation site
-       --  for the switch.
- 
-    end record;
- 
-    type Diagnostic_Kind is
-      (Error,
-       Non_Serious_Error,
-       --  Typically all errors are considered serious and the compiler should
-       --  stop its processing since the tree is essentially invalid. However,
-       --  some errors are not serious and the compiler can continue its
-       --  processing to discover more critical errors.
-       Warning,
-       Default_Warning,
-       --  Warning representing the old warnings created with the '??' insertion
-       --  character. These warning have the [enabled by default] tag.
-       Restriction_Warning,
-       --  Warning representing the old warnings created with the '?*?'
-       --  insertion character. These warning have the [restriction warning]
-       --  tag.
-       Style,
-       Tagless_Warning,
-       --  Warning representing the old warnings created with the '?' insertion
-       --  character.
-       Info
-    );
- 
-    type Diagnostic_Entry_Type is record
-       Status : Status_Type := Active;
- 
-       Human_Id : String_Ptr := null;
-       --  A human readable code for the diagnostic. If the diagnostic has a
-       --  switch with a human id then the human_id of the switch shall be used
-       --  in SARIF reports.
- 
-       Documentation : String_Ptr := null;
- 
-       Switch : Switch_Id := No_Switch_Id;
-       --  The switch that controls the diagnostic message.
-    end record;
- 
-    type Diagnostic_Type is record
- 
-       Id : Diagnostic_Id := No_Diagnostic_Id;
- 
-       Kind : Diagnostic_Kind := Error;
- 
-       Switch : Switch_Id := No_Switch_Id;
- 
-       Message : String_Ptr := null;
- 
-       Warn_Err : Boolean := False;
-       --  Signal whether the diagnostic was converted from a warning to an
-       --  error. This needs to be set during the message emission as this
-       --  behavior depends on the context of the code.
- 
-       Locations : Labeled_Span_List := Labeled_Span_Lists.Nil;
- 
-       Sub_Diagnostics : Sub_Diagnostic_List := Sub_Diagnostic_Lists.Nil;
- 
-       Fixes : Fix_List := Fix_Lists.Nil;
-    end record;
- 
-    procedure Destroy (Elem : in out Diagnostic_Type);
-    pragma Inline (Destroy);
- 
-    package Diagnostics_Lists is new Doubly_Linked_Lists
-      (Element_Type    => Diagnostic_Type,
-       "="             => "=",
-       Destroy_Element => Destroy,
-       Check_Tampering => False);
- 
-    subtype Diagnostic_List is Diagnostics_Lists.Doubly_Linked_List;
- 
-    All_Diagnostics : Diagnostic_List := Diagnostics_Lists.Create;
- 
-    procedure Add_Location
-      (Diagnostic : in out Diagnostic_Type; Location : Labeled_Span_Type);
- 
-    procedure Add_Sub_Diagnostic
-      (Diagnostic     : in out Diagnostic_Type;
-       Sub_Diagnostic :        Sub_Diagnostic_Type);
- 
-    procedure Add_Fix (Diagnostic : in out Diagnostic_Type; Fix : Fix_Type);
- 
-    procedure Record_Diagnostic (Diagnostic : Diagnostic_Type;
-                                 Update_Count : Boolean := True);
- 
-    procedure Print_Diagnostic (Diagnostic : Diagnostic_Type);
- 
-    function Primary_Location
-      (Diagnostic : Diagnostic_Type) return Labeled_Span_Type;
- 
-    type Labeled_Span_Array is
-      array (Positive range <>) of Labeled_Span_Type;
-    type Sub_Diagnostic_Array is
-      array (Positive range <>) of Sub_Diagnostic_Type;
-    type Fix_Array is
-      array (Positive range <>) of Fix_Type;
-    type Edit_Array is
-      array (Positive range <>) of Edit_Type;
- 
-    No_Locations : constant Labeled_Span_Array (1 .. 0)   := (others => <>);
-    No_Sub_Diags : constant Sub_Diagnostic_Array (1 .. 0) := (others => <>);
-    No_Fixes     : constant Fix_Array (1 .. 0)            := (others => <>);
-    No_Edits     : constant Edit_Array (1 .. 0)           := (others => <>);
- 
-    function Make_Diagnostic
-      (Msg       : String;
-       Location  : Labeled_Span_Type;
-       Id        : Diagnostic_Id        := No_Diagnostic_Id;
-       Kind      : Diagnostic_Kind      := Diagnostics.Error;
-       Switch    : Switch_Id            := No_Switch_Id;
-       Spans     : Labeled_Span_Array   := No_Locations;
-       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
-       Fixes     : Fix_Array            := No_Fixes)
-       return Diagnostic_Type;
- 
-    procedure Record_Diagnostic
-      (Msg       : String;
-       Location  : Labeled_Span_Type;
-       Id        : Diagnostic_Id        := No_Diagnostic_Id;
-       Kind      : Diagnostic_Kind      := Diagnostics.Error;
-       Switch    : Switch_Id            := No_Switch_Id;
-       Spans     : Labeled_Span_Array   := No_Locations;
-       Sub_Diags : Sub_Diagnostic_Array := No_Sub_Diags;
-       Fixes     : Fix_Array            := No_Fixes);
- 
-    function Labeled_Span (Span       : Source_Span;
-                           Label      : String  := "";
-                           Is_Primary : Boolean := True;
-                           Is_Region  : Boolean := False)
-                           return Labeled_Span_Type;
- 
-    function Primary_Labeled_Span (Span  : Source_Span;
-                                   Label : String  := "")
-                                   return Labeled_Span_Type;
- 
-    function Primary_Labeled_Span (N     : Node_Or_Entity_Id;
-                                   Label : String  := "")
-                                   return Labeled_Span_Type;
- 
-    function Secondary_Labeled_Span (Span  : Source_Span;
-                                     Label : String  := "")
-                                     return Labeled_Span_Type;
- 
-    function Secondary_Labeled_Span (N     : Node_Or_Entity_Id;
-                                     Label : String  := "")
-                                     return Labeled_Span_Type;
- 
-    function Sub_Diag (Msg       : String;
-                       Kind      : Sub_Diagnostic_Kind :=
-                         Diagnostics.Continuation;
-                       Locations : Labeled_Span_Array := No_Locations)
-                       return Sub_Diagnostic_Type;
- 
-    function Continuation (Msg       : String;
-                           Locations : Labeled_Span_Array := No_Locations)
-                           return Sub_Diagnostic_Type;
- 
-    function Help (Msg       : String;
-                   Locations : Labeled_Span_Array := No_Locations)
-                   return Sub_Diagnostic_Type;
- 
-    function Suggestion (Msg       : String;
-                         Locations : Labeled_Span_Array := No_Locations)
-                         return Sub_Diagnostic_Type;
- 
-    function Fix (Description   : String;
-                  Edits         : Edit_Array;
-                  Applicability : Applicability_Type := Unspecified)
-                  return Fix_Type;
- 
-    function Edit (Text : String;
-                   Span : Source_Span)
-                   return Edit_Type;
- end Diagnostics;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst gcc-16-20250608/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
*** gcc-16-20250601/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Sun Jun  8 22:32:15 2025
*************** An exception message can also be added:
*** 657,662 ****
--- 657,678 ----
          when Imported_C_Func /= 0;
     end;
  
+ Implicit With
+ -------------
+ 
+ This feature allows a standalone ``use`` clause in the context clause of a
+ compilation unit to imply an implicit ``with`` of the same library unit where
+ an equivalent ``with`` clause would be allowed.
+ 
+ .. code-block:: ada
+ 
+    use Ada.Text_IO;
+    procedure Main is
+    begin
+       Put_Line ("Hello");
+    end;
+ 
+ 
  Storage Model
  -------------
  
diff -Nrcpad gcc-16-20250601/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst gcc-16-20250608/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
*** gcc-16-20250601/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Sun Jun  8 22:32:15 2025
*************** predicate is static or dynamic is contro
*** 549,554 ****
--- 549,560 ----
  expression. It is also separately controllable using pragma
  ``Assertion_Policy``.
  
+ Aspect Program_Exit
+ ===================
+ .. index:: Program_Exit
+ 
+ This boolean aspect is equivalent to :ref:`pragma Program_Exit<Pragma-Program_Exit>`.
+ 
  Aspect Pure_Function
  ====================
  .. index:: Pure_Function
diff -Nrcpad gcc-16-20250601/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst gcc-16-20250608/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
*** gcc-16-20250601/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Sun Jun  8 22:32:15 2025
*************** Attribute Valid_Value
*** 1629,1637 ****
  .. index:: Valid_Value
  
  The ``'Valid_Value`` attribute is defined for enumeration types other than
! those in package Standard. This attribute is a function that takes
! a String, and returns Boolean. ``T'Valid_Value (S)`` returns True
! if and only if ``T'Value (S)`` would not raise Constraint_Error.
  
  Attribute Valid_Scalars
  =======================
--- 1629,1637 ----
  .. index:: Valid_Value
  
  The ``'Valid_Value`` attribute is defined for enumeration types other than
! those in package Standard or types derived from those types. This attribute is
! a function that takes a String, and returns Boolean. ``T'Valid_Value (S)``
! returns True if and only if ``T'Value (S)`` would not raise Constraint_Error.
  
  Attribute Valid_Scalars
  =======================
diff -Nrcpad gcc-16-20250601/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst gcc-16-20250608/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
*** gcc-16-20250601/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Sun Jun  8 22:32:15 2025
*************** Syntax:
*** 1940,1946 ****
    EXIT_CASE      ::= GUARD => EXIT_KIND
    EXIT_KIND      ::= Normal_Return
                     | Exception_Raised
! 		   | (Exception_Raised => exception_name)
    GUARD          ::= Boolean_expression
  
  For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
--- 1940,1947 ----
    EXIT_CASE      ::= GUARD => EXIT_KIND
    EXIT_KIND      ::= Normal_Return
                     | Exception_Raised
!                    | (Exception_Raised => exception_name)
!                    | Program_Exit
    GUARD          ::= Boolean_expression
  
  For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
*************** generating ``Restrictions`` pragmas, it
*** 5285,5290 ****
--- 5286,5305 ----
  violations of the profile generate warning messages instead
  of error messages.
  
+ .. _Pragma-Program_Exit:
+ 
+ Pragma Program_Exit
+ ===================
+ 
+ Syntax:
+ 
+ .. code-block:: ada
+ 
+   pragma Program_Exit [ (boolean_EXPRESSION) ];
+ 
+ For the semantics of this pragma, see the entry for aspect ``Program_Exit``
+ in the SPARK 2014 Reference Manual, section 6.1.10.
+ 
  Pragma Propagate_Exceptions
  ===========================
  .. index:: Interfacing to C++
diff -Nrcpad gcc-16-20250601/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst gcc-16-20250608/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
*** gcc-16-20250601/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst	Sun Jun  8 22:32:15 2025
*************** conventions, and for example records are
*** 1872,1878 ****
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are four exceptions to this general rule:
  
  * *Convention Fortran and array subtypes*.
  
--- 1872,1878 ----
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are three exceptions to this general rule:
  
  * *Convention Fortran and array subtypes*.
  
diff -Nrcpad gcc-16-20250601/gcc/ada/doc/gnat_ugn/platform_specific_information.rst gcc-16-20250608/gcc/ada/doc/gnat_ugn/platform_specific_information.rst
*** gcc-16-20250601/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Sun Jun  8 22:32:15 2025
*************** Setting Stack Size from ``gnatlink``
*** 2212,2222 ****
  You can specify the program stack size at link time. On most versions
  of Windows, starting with XP, this is mostly useful to set the size of
  the main stack (environment task). The other task stacks are set with
! pragma Storage_Size or with the *gnatbind -d* command.
  
  Since very old versions of Windows (2000, NT4, etc.) don't allow setting the
! reserve size of individual tasks, the link-time stack size applies to all
! tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
--- 2212,2223 ----
  You can specify the program stack size at link time. On most versions
  of Windows, starting with XP, this is mostly useful to set the size of
  the main stack (environment task). The other task stacks are set with
! pragma Storage_Size or with the *gnatbind -d* command. The specified size will
! become the reserved memory size of the underlying thread.
  
  Since very old versions of Windows (2000, NT4, etc.) don't allow setting the
! reserve size of individual tasks, for those versions the link-time stack size
! applies to all tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
diff -Nrcpad gcc-16-20250601/gcc/ada/einfo-utils.adb gcc-16-20250608/gcc/ada/einfo-utils.adb
*** gcc-16-20250601/gcc/ada/einfo-utils.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/einfo-utils.adb	Sun Jun  8 22:32:15 2025
*************** package body Einfo.Utils is
*** 1037,1042 ****
--- 1037,1043 ----
                    Id = Pragma_Contract_Cases            or else
                    Id = Pragma_Exceptional_Cases         or else
                    Id = Pragma_Exit_Cases                or else
+                   Id = Pragma_Program_Exit              or else
                    Id = Pragma_Subprogram_Variant        or else
                    Id = Pragma_Test_Case;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/einfo-utils.ads gcc-16-20250608/gcc/ada/einfo-utils.ads
*** gcc-16-20250601/gcc/ada/einfo-utils.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/einfo-utils.ads	Sun Jun  8 22:32:15 2025
*************** package Einfo.Utils is
*** 456,461 ****
--- 456,462 ----
     --    No_Caching
     --    Part_Of
     --    Precondition
+    --    Program_Exit
     --    Postcondition
     --    Refined_Depends
     --    Refined_Global
diff -Nrcpad gcc-16-20250601/gcc/ada/einfo.ads gcc-16-20250608/gcc/ada/einfo.ads
*** gcc-16-20250601/gcc/ada/einfo.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/einfo.ads	Sun Jun  8 22:32:15 2025
*************** package Einfo is
*** 832,843 ****
  --       Default_Value aspect specification for the type, or inherited
  --       on derivation.
  
- --    Default_Expr_Function
- --       Defined in parameters. It holds the entity of the parameterless
- --       function that is built to evaluate the default expression if it is
- --       more complex than a simple identifier or literal. For the latter
- --       simple cases or if there is no default value, this field is Empty.
- 
  --    Default_Expressions_Processed
  --       A flag in subprograms (functions, operators, procedures) and in
  --       entries and entry families used to indicate that default expressions
--- 832,837 ----
*************** package Einfo is
*** 864,875 ****
  --       that holds value of delta for the type, as given in the declaration
  --       or as inherited by a subtype or derived type.
  
- --    Dependent_Instances
- --       Defined in packages that are instances. Holds list of instances
- --       of inner generics. Used to place freeze nodes for those instances
- --       after that of the current one, i.e. after the corresponding generic
- --       bodies.
- 
  --    Depends_On_Private
  --       Defined in all type entities. Set if the type is private or if it
  --       depends on a private type.
--- 858,863 ----
*************** package Einfo is
*** 1462,1472 ****
  --       associates generic parameters with the corresponding instances, in
  --       those cases where the instance is an entity.
  
- --    Handler_Records
- --       Defined in subprogram and package entities. Points to a list of
- --       identifiers referencing the handler record entities for the
- --       corresponding unit.
- 
  --    Has_Aliased_Components [implementation base type only]
  --       Defined in array type entities. Indicates that the component type
  --       of the array is aliased. Should this also be set for records to
--- 1450,1455 ----
*************** package Einfo is
*** 2262,2267 ****
--- 2245,2255 ----
  --       is relocated to the corresponding package body, which must have a
  --       corresponding nonlimited with_clause.
  
+ --    Incomplete_View
+ --       Defined in all entities. Present in those that are completions of
+ --       incomplete types. Denotes the corresponding incomplete view declared
+ --       by the incomplete declaration.
+ 
  --    Indirect_Call_Wrapper
  --       Defined on subprogram entities. Set if the subprogram has class-wide
  --       preconditions. Denotes the internal wrapper that checks preconditions
*************** package Einfo is
*** 2967,2972 ****
--- 2955,2965 ----
  --       fully constructed, since it simply indicates the last state.
  --       Thus this flag has no meaning to the backend.
  
+ --    Is_Large_Unconstrained_Definite
+ --       Defined in record types. Used to detect types with default
+ --       discriminant values that have exaggerated sizes and emit warnings
+ --       about them.
+ 
  --    Is_Limited_Composite
  --       Defined in all entities. Set for composite types that have a limited
  --       component. Used to enforce the rule that operations on the composite
*************** package Einfo is
*** 3638,3644 ****
  --       subprogram or the formal's Extra_Accessibility - whichever one is
  --       lesser. The Minimum_Accessibility field then points to this object.
  
! --    Modulus [base type only]
  --       Defined in modular types. Contains the modulus. For the binary case,
  --       this will be a power of 2, but if Non_Binary_Modulus is set, then it
  --       will not be a power of 2.
--- 3631,3637 ----
  --       subprogram or the formal's Extra_Accessibility - whichever one is
  --       lesser. The Minimum_Accessibility field then points to this object.
  
! --    Modulus [implementation base type only]
  --       Defined in modular types. Contains the modulus. For the binary case,
  --       this will be a power of 2, but if Non_Binary_Modulus is set, then it
  --       will not be a power of 2.
*************** package Einfo is
*** 3658,3668 ****
  --       preelaborable initialization at freeze time (this has to be deferred
  --       to the freeze point because of the rule about overriding Initialize).
  
- --    Needs_Activation_Record
- --       Defined on generated subprogram types. Indicates that a call through
- --       a named or anonymous access to subprogram requires an activation
- --       record when compiling with unnesting for C or LLVM.
- 
  --    Needs_Debug_Info
  --       Defined in all entities. Set if the entity requires normal debugging
  --       information to be generated. This is true of all entities that have
--- 3651,3656 ----
*************** package Einfo is
*** 3904,3910 ****
  --       Defined in E_Access_Subprogram_Type entities. Set only if the access
  --       type was generated by the expander as part of processing an access-
  --       to-protected-subprogram type. Points to the access-to-protected-
! --       subprogram type.
  
  --    Original_Array_Type
  --       Defined in modular types and array types and subtypes. Set only if
--- 3892,3898 ----
  --       Defined in E_Access_Subprogram_Type entities. Set only if the access
  --       type was generated by the expander as part of processing an access-
  --       to-protected-subprogram type. Points to the access-to-protected-
! --       subprogram type. Read by CodePeer.
  
  --    Original_Array_Type
  --       Defined in modular types and array types and subtypes. Set only if
*************** package Einfo is
*** 4176,4189 ****
  --       refine the state, in other words, all the hidden states that appear in
  --       the constituent_list of aspect/pragma Refined_State.
  
- --    Register_Exception_Call
- --       Defined in exception entities. When an exception is declared,
- --       a call is expanded to Register_Exception. This field points to
- --       the expanded N_Procedure_Call_Statement node for this call. It
- --       is used for Import/Export_Exception processing to modify the
- --       register call to make appropriate entries in the special tables
- --       used for handling these pragmas at run time.
- 
  --    Related_Array_Object
  --       Defined in array types and subtypes. Used only for the base type
  --       and subtype created for an anonymous array object. Set to point
--- 4164,4169 ----
*************** package Einfo is
*** 4383,4393 ****
  --       set, in which case this is the entity for the associated instance of
  --       System.Shared_Storage.Shared_Var_Procs. See Exp_Smem for full details.
  
- --    Size_Check_Code
- --       Defined in constants and variables. Normally Empty. Set if code is
- --       generated to check the size of the object. This field is used to
- --       suppress this code if a subsequent address clause is encountered.
- 
  --    Size_Clause (synthesized)
  --       Applies to all entities. If a size or value size clause is present in
  --       the rep item chain for an entity then that attribute definition clause
--- 4363,4368 ----
*************** package Einfo is
*** 5158,5167 ****
     --  E_Access_Subprogram_Type
     --    Equivalent_Type                       (remote types only)
     --    Directly_Designated_Type
-    --    Needs_No_Actuals
     --    Original_Access_Type
     --    Can_Use_Internal_Rep
-    --    Needs_Activation_Record
     --    Associated_Storage_Pool $$$
     --    Interface_Name $$$
     --    (plus type attributes)
--- 5133,5141 ----
     --  E_Access_Subprogram_Type
     --    Equivalent_Type                       (remote types only)
     --    Directly_Designated_Type
     --    Original_Access_Type
+    --    Needs_No_Actuals
     --    Can_Use_Internal_Rep
     --    Associated_Storage_Pool $$$
     --    Interface_Name $$$
     --    (plus type attributes)
*************** package Einfo is
*** 5200,5206 ****
     --    Directly_Designated_Type
     --    Storage_Size_Variable                 is this needed ???
     --    Can_Use_Internal_Rep
-    --    Needs_Activation_Record
     --    (plus type attributes)
  
     --  E_Anonymous_Access_Type
--- 5174,5179 ----
*************** package Einfo is
*** 5311,5317 ****
     --    Actual_Subtype
     --    Renamed_Object
     --    Renamed_Entity $$$
-    --    Size_Check_Code                       (constants only)
     --    Prival_Link                           (privals only)
     --    Interface_Name                        (constants only)
     --    Related_Type                          (constants only)
--- 5284,5289 ----
*************** package Einfo is
*** 5472,5478 ****
     --    Esize
     --    Alignment
     --    Renamed_Entity
-    --    Register_Exception_Call
     --    Interface_Name
     --    Activation_Record_Component
     --    Discard_Names
--- 5444,5449 ----
*************** package Einfo is
*** 5508,5514 ****
     --  E_Function
     --  E_Generic_Function
     --    Mechanism                            (Mechanism_Type)
-    --    Handler_Records                      (non-generic case only)
     --    Protected_Body_Subprogram
     --    Next_Inlined_Subprogram
     --    Elaboration_Entity                   (not implicit /=)
--- 5479,5484 ----
*************** package Einfo is
*** 5662,5668 ****
     --    Renamed_Object
     --    Spec_Entity
     --    Default_Value
-    --    Default_Expr_Function
     --    Protected_Formal
     --    Extra_Constrained
     --    Minimum_Accessibility
--- 5632,5637 ----
*************** package Einfo is
*** 5773,5780 ****
  
     --  E_Package
     --  E_Generic_Package
-    --    Dependent_Instances                  (for an instance)
-    --    Handler_Records                      (non-generic case only)
     --    Generic_Homonym                      (generic case only)
     --    Associated_Formal_Package
     --    Elaboration_Entity
--- 5742,5747 ----
*************** package Einfo is
*** 5834,5840 ****
     --    Scope_Depth                          (synth)
  
     --  E_Package_Body
-    --    Handler_Records                      (non-generic case only)
     --    Related_Instance                     (non-generic case only)
     --    First_Entity
     --    Spec_Entity
--- 5801,5806 ----
*************** package Einfo is
*** 5869,5875 ****
     --  E_Procedure
     --  E_Generic_Procedure
     --    Associated_Node_For_Itype $$$ E_Procedure
-    --    Handler_Records                      (non-generic case only)
     --    Protected_Body_Subprogram
     --    Next_Inlined_Subprogram
     --    Elaboration_Entity
--- 5835,5840 ----
*************** package Einfo is
*** 6197,6203 ****
     --    Renamed_Object
     --    Renamed_Entity $$$
     --    Discriminal_Link $$$
-    --    Size_Check_Code
     --    Prival_Link
     --    Interface_Name
     --    Shared_Var_Procs_Instance
--- 6162,6167 ----
*************** package Einfo is
*** 6269,6275 ****
     --    Entry_Formal $$$
     --    Esize $$$
     --    First_Entity $$$
-    --    Handler_Records $$$
     --    Interface_Name $$$
     --    Last_Entity $$$
     --    Renamed_Entity $$$
--- 6233,6238 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/errid.adb gcc-16-20250608/gcc/ada/errid.adb
*** gcc-16-20250601/gcc/ada/errid.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/errid.adb	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,133 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . R E P O S I T O R Y                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with JSON_Utils; use JSON_Utils;
+ with Output;     use Output;
+ 
+ package body Errid is
+ 
+    ---------------
+    -- To_String --
+    ---------------
+ 
+    function To_String (Id : Diagnostic_Id) return String is
+    begin
+       if Id = No_Diagnostic_Id then
+          return "GNAT0000";
+       else
+          return Id'Img;
+       end if;
+    end To_String;
+ 
+    ---------------------------------
+    -- Print_Diagnostic_Repository --
+    ---------------------------------
+ 
+    procedure Print_Diagnostic_Repository is
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & "Diagnostics" & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Avoid printing the first switch, which is a placeholder
+ 
+       for I in Diagnostic_Entries'First .. Diagnostic_Entries'Last loop
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+ 
+          Write_Char ('{');
+          Begin_Block;
+          NL_And_Indent;
+ 
+          Write_String_Attribute ("Id", To_String (I));
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Human_Id /= null then
+             Write_String_Attribute ("Human_Id",
+                                      Diagnostic_Entries (I).Human_Id.all);
+          else
+             Write_String_Attribute ("Human_Id", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Status = Active then
+             Write_String_Attribute ("Status", "Active");
+          else
+             Write_String_Attribute ("Status", "Deprecated");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Documentation /= null then
+             Write_String_Attribute ("Documentation",
+                                      Diagnostic_Entries (I).Documentation.all);
+          else
+             Write_String_Attribute ("Documentation", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Diagnostic_Entries (I).Switch /= No_Switch_Id then
+             Write_Char (',');
+             NL_And_Indent;
+             Write_String_Attribute
+               ("Switch",
+                Get_Switch (Diagnostic_Entries (I).Switch).Human_Id.all);
+          else
+             Write_String_Attribute ("Switch", "null");
+          end if;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char ('}');
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_Diagnostic_Repository;
+ 
+ end Errid;
diff -Nrcpad gcc-16-20250601/gcc/ada/errid.ads gcc-16-20250608/gcc/ada/errid.ads
*** gcc-16-20250601/gcc/ada/errid.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/errid.ads	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,116 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . R E P O S I T O R Y                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 19925, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Types; use Types;
+ with Errsw; use Errsw;
+ 
+ package Errid is
+ 
+    type Status_Type is
+      (Active,
+       Deprecated);
+ 
+    type Diagnostic_Id is
+      (No_Diagnostic_Id,
+       GNAT0001,
+       GNAT0002,
+       GNAT0003,
+       GNAT0004,
+       GNAT0005,
+       GNAT0006);
+ 
+    function To_String (Id : Diagnostic_Id) return String;
+    --  Convert the diagnostic ID to a 4 character string padded with 0-s.
+ 
+    type Diagnostic_Entry_Type is record
+       Status : Status_Type := Active;
+ 
+       Human_Id : String_Ptr := null;
+       --  A human readable code for the diagnostic. If the diagnostic has a
+       --  switch with a human id then the human_id of the switch shall be used
+       --  in SARIF reports.
+ 
+       Documentation : String_Ptr := null;
+ 
+       Switch : Switch_Id := No_Switch_Id;
+       --  The switch that controls the diagnostic message.
+    end record;
+ 
+    type Diagnostics_Registry_Type is
+      array (Diagnostic_Id) of Diagnostic_Entry_Type;
+ 
+    --  Include the diagnostic entries for every diagnostic id.
+    --  The entries should include:
+    --  * Whether the diagnostic with this id is active or not
+    --  * The human-readable name for the diagnostic for SARIF reports
+    --  * The switch id for the diagnostic if the diagnostic is linked to any
+    --    compiler switch
+    --  * The documentation file for the diagnostic written in the MD format.
+    --    The documentation file should include:
+    --    - The diagnostic id
+    --    - A short description of the diagnostic
+    --    - A minimal example of the code that triggers the diagnostic
+    --    - An explanation of why the diagnostic was triggered
+    --    - A suggestion on how to fix the issue
+    --    - Optionally additional information
+    --    TODO: the mandatory fields for the documentation file could be changed
+ 
+    Diagnostic_Entries : Diagnostics_Registry_Type :=
+      (No_Diagnostic_Id => (others => <>),
+       GNAT0001         =>
+         (Status        => Active,
+          Human_Id      => new String'("Default_Iterator_Not_Primitive_Error"),
+          Documentation => new String'("./error_codes/GNAT0001.md"),
+          Switch        => No_Switch_Id),
+       GNAT0002         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Invalid_Operand_Types_General_Error"),
+          Documentation => new String'("./error_codes/GNAT0007.md"),
+          Switch        => No_Switch_Id),
+       GNAT0003         =>
+         (Status        => Active,
+          Human_Id      =>
+            new String'("Pragma_No_Effect_With_Lock_Free_Warning"),
+          Documentation => new String'("./error_codes/GNAT0008.md"),
+          Switch        => No_Switch_Id),
+       GNAT0004         =>
+         (Status        => Active,
+          Human_Id      => new String'("End_Loop_Expected_Error"),
+          Documentation => new String'("./error_codes/GNAT0009.md"),
+          Switch        => No_Switch_Id),
+       GNAT0005         =>
+         (Status        => Active,
+          Human_Id      => new String'("Representation_Too_Late_Error"),
+          Documentation => new String'("./error_codes/GNAT0010.md"),
+          Switch        => No_Switch_Id),
+       GNAT0006         =>
+         (Status        => Active,
+          Human_Id      => new String'("Mixed_Container_Aggregate_Error"),
+          Documentation => new String'("./error_codes/GNAT0011.md"),
+          Switch        => No_Switch_Id));
+ 
+    procedure Print_Diagnostic_Repository;
+ 
+ end Errid;
diff -Nrcpad gcc-16-20250601/gcc/ada/errout.adb gcc-16-20250608/gcc/ada/errout.adb
*** gcc-16-20250601/gcc/ada/errout.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/errout.adb	Sun Jun  8 22:32:15 2025
*************** with Atree;          use Atree;
*** 33,47 ****
  with Casing;         use Casing;
  with Csets;          use Csets;
  with Debug;          use Debug;
- with Diagnostics.Converter; use Diagnostics.Converter;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Erroutc;        use Erroutc;
  with Gnatvsn;        use Gnatvsn;
  with Lib;            use Lib;
  with Opt;            use Opt;
  with Nlists;         use Nlists;
  with Output;         use Output;
  with Scans;          use Scans;
  with Sem_Aux;        use Sem_Aux;
--- 33,50 ----
  with Casing;         use Casing;
  with Csets;          use Csets;
  with Debug;          use Debug;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Erroutc;        use Erroutc;
+ with Erroutc.Pretty_Emitter;
+ with Erroutc.SARIF_Emitter;
+ with Errsw;          use Errsw;
  with Gnatvsn;        use Gnatvsn;
  with Lib;            use Lib;
  with Opt;            use Opt;
  with Nlists;         use Nlists;
+ with Osint;          use Osint;
  with Output;         use Output;
  with Scans;          use Scans;
  with Sem_Aux;        use Sem_Aux;
*************** package body Errout is
*** 97,106 ****
     -----------------------
  
     procedure Error_Msg_Internal
!      (Msg      : String;
!       Span     : Source_Span;
!       Opan     : Source_Span;
!       Msg_Cont : Boolean);
     --  This is the low-level routine used to post messages after dealing with
     --  the issue of messages placed on instantiations (which get broken up
     --  into separate calls in Error_Msg). Span is the location on which the
--- 100,113 ----
     -----------------------
  
     procedure Error_Msg_Internal
!      (Msg        : String;
!       Span       : Source_Span;
!       Opan       : Source_Span;
!       Msg_Cont   : Boolean;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  This is the low-level routine used to post messages after dealing with
     --  the issue of messages placed on instantiations (which get broken up
     --  into separate calls in Error_Msg). Span is the location on which the
*************** package body Errout is
*** 285,290 ****
--- 292,406 ----
        end loop;
     end Delete_Warning_And_Continuations;
  
+    ------------------
+    -- Labeled_Span --
+    ------------------
+ 
+    function Labeled_Span
+      (Span       : Source_Span;
+       Label      : String := "";
+       Is_Primary : Boolean := True;
+       Is_Region  : Boolean := False)
+       return Labeled_Span_Type
+    is
+       L : Labeled_Span_Type;
+    begin
+       L.Span := Span;
+       if Label /= "" then
+          L.Label := new String'(Label);
+       end if;
+       L.Is_Primary := Is_Primary;
+       L.Is_Region  := Is_Region;
+       L.Next       := No_Labeled_Span;
+ 
+       return L;
+    end Labeled_Span;
+ 
+    --------------------------
+    -- Primary_Labeled_Span --
+    --------------------------
+ 
+    function Primary_Labeled_Span
+      (Span  : Source_Span;
+       Label : String  := "") return Labeled_Span_Type
+    is
+    begin
+       return Labeled_Span (Span => Span, Label => Label, Is_Primary => True);
+    end Primary_Labeled_Span;
+ 
+    --------------------------
+    -- Primary_Labeled_Span --
+    --------------------------
+ 
+    function Primary_Labeled_Span
+      (N     : Node_Or_Entity_Id;
+       Label : String := "") return Labeled_Span_Type
+    is
+    begin
+       return Primary_Labeled_Span (To_Full_Span (N), Label);
+    end Primary_Labeled_Span;
+ 
+    ----------------------------
+    -- Secondary_Labeled_Span --
+    ----------------------------
+ 
+    function Secondary_Labeled_Span
+      (Span  : Source_Span;
+       Label : String := "") return Labeled_Span_Type
+    is
+    begin
+       return Labeled_Span (Span => Span, Label => Label, Is_Primary => False);
+    end Secondary_Labeled_Span;
+ 
+    ----------------------------
+    -- Secondary_Labeled_Span --
+    ----------------------------
+ 
+    function Secondary_Labeled_Span
+      (N     : Node_Or_Entity_Id;
+       Label : String  := "") return Labeled_Span_Type
+    is
+    begin
+       return Secondary_Labeled_Span (To_Full_Span (N), Label);
+    end Secondary_Labeled_Span;
+ 
+    ----------
+    -- Edit --
+    ----------
+ 
+    function Edit (Text : String; Span : Source_Span) return Edit_Type is
+    begin
+       return (Text => new String'(Text), Span => Span, Next => No_Edit);
+    end Edit;
+ 
+    ---------
+    -- Fix --
+    ---------
+ 
+    function Fix (Description : String; Edits : Edit_Array) return Fix_Type is
+       First_Edit : Edit_Id  := No_Edit;
+       Last_Edit  : Edit_Id  := No_Edit;
+    begin
+       for I in Edits'Range loop
+          Erroutc.Edits.Append (Edits (I));
+ 
+          if Last_Edit /= No_Edit then
+             Erroutc.Edits.Table (Last_Edit).Next := Erroutc.Edits.Last;
+          end if;
+          Last_Edit := Erroutc.Edits.Last;
+ 
+          --  Store the first element in the edit chain
+ 
+          if First_Edit = No_Edit then
+             First_Edit := Last_Edit;
+          end if;
+       end loop;
+ 
+       return (Description => new String'(Description),
+               Edits       => First_Edit,
+               Next        => No_Fix);
+    end Fix;
+ 
     ---------------
     -- Error_Msg --
     ---------------
*************** package body Errout is
*** 328,336 ****
     end Error_Msg;
  
     procedure Error_Msg
!      (Msg       : String;
!       Flag_Span : Source_Span;
!       N         : Node_Id)
     is
        Flag_Location : constant Source_Ptr := Flag_Span.Ptr;
  
--- 444,456 ----
     end Error_Msg;
  
     procedure Error_Msg
!      (Msg        : String;
!       Flag_Span  : Source_Span;
!       N          : Node_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
     is
        Flag_Location : constant Source_Ptr := Flag_Span.Ptr;
  
*************** package body Errout is
*** 459,465 ****
        --  Error_Msg_Internal to place the message in the requested location.
  
        if Instantiation (Sindex) = No_Location then
!          Error_Msg_Internal (Msg, Flag_Span, Flag_Span, False);
           return;
        end if;
  
--- 579,593 ----
        --  Error_Msg_Internal to place the message in the requested location.
  
        if Instantiation (Sindex) = No_Location then
!          Error_Msg_Internal
!            (Msg        => Msg,
!             Span       => Flag_Span,
!             Opan       => Flag_Span,
!             Msg_Cont   => False,
!             Error_Code => Error_Code,
!             Label      => Label,
!             Spans      => Spans,
!             Fixes      => Fixes);
           return;
        end if;
  
*************** package body Errout is
*** 626,635 ****
           --  Here we output the original message on the outer instantiation
  
           Error_Msg_Internal
!            (Msg      => Msg,
!             Span     => To_Span (Actual_Error_Loc),
!             Opan     => Flag_Span,
!             Msg_Cont => Msg_Cont_Status);
        end;
     end Error_Msg;
  
--- 754,767 ----
           --  Here we output the original message on the outer instantiation
  
           Error_Msg_Internal
!            (Msg        => Msg,
!             Span       => To_Span (Actual_Error_Loc),
!             Opan       => Flag_Span,
!             Msg_Cont   => Msg_Cont_Status,
!             Error_Code => Error_Code,
!             Label      => Label,
!             Spans      => Spans,
!             Fixes      => Fixes);
        end;
     end Error_Msg;
  
*************** package body Errout is
*** 715,721 ****
        --  error flag in this situation.
  
        S1 := Prev_Token_Ptr;
!       C := Source (S1);
  
        --  If the previous token is a string literal, we need a special approach
        --  since there may be white space inside the literal and we don't want
--- 847,853 ----
        --  error flag in this situation.
  
        S1 := Prev_Token_Ptr;
!       C := Sinput.Source (S1);
  
        --  If the previous token is a string literal, we need a special approach
        --  since there may be white space inside the literal and we don't want
*************** package body Errout is
*** 728,737 ****
           loop
              S1 := S1 + 1;
  
!             if Source (S1) = C then
                 S1 := S1 + 1;
!                exit when Source (S1) /= C;
!             elsif Source (S1) in Line_Terminator then
                 exit;
              end if;
           end loop;
--- 860,869 ----
           loop
              S1 := S1 + 1;
  
!             if Sinput.Source (S1) = C then
                 S1 := S1 + 1;
!                exit when Sinput.Source (S1) /= C;
!             elsif Sinput.Source (S1) in Line_Terminator then
                 exit;
              end if;
           end loop;
*************** package body Errout is
*** 749,758 ****
        --  characters in this context, since this is only for error recovery.
  
        else
!          while Source (S1) not in Line_Terminator
!            and then Source (S1) /= ' '
!            and then Source (S1) /= ASCII.HT
!            and then (Source (S1) /= '-' or else Source (S1 + 1) /= '-')
             and then S1 /= Token_Ptr
           loop
              S1 := S1 + 1;
--- 881,891 ----
        --  characters in this context, since this is only for error recovery.
  
        else
!          while Sinput.Source (S1) not in Line_Terminator
!            and then Sinput.Source (S1) /= ' '
!            and then Sinput.Source (S1) /= ASCII.HT
!            and then (Sinput.Source (S1) /= '-'
!              or else Sinput.Source (S1 + 1) /= '-')
             and then S1 /= Token_Ptr
           loop
              S1 := S1 + 1;
*************** package body Errout is
*** 785,792 ****
        --  we would really like to place it in the "last" character of the tab
        --  space, but that it too much trouble to worry about).
  
!       elsif Source (Token_Ptr - 1) = ' '
!          or else Source (Token_Ptr - 1) = ASCII.HT
        then
           Error_Msg (Msg, Token_Ptr - 1);
  
--- 918,925 ----
        --  we would really like to place it in the "last" character of the tab
        --  space, but that it too much trouble to worry about).
  
!       elsif Sinput.Source (Token_Ptr - 1) = ' '
!          or else Sinput.Source (Token_Ptr - 1) = ASCII.HT
        then
           Error_Msg (Msg, Token_Ptr - 1);
  
*************** package body Errout is
*** 842,854 ****
     -----------------
  
     procedure Error_Msg_F (Msg : String; N : Node_Id) is
-       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, N,
!                      To_Span (Ptr   => Sloc (Fst),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
     end Error_Msg_F;
  
     ------------------
--- 975,982 ----
     -----------------
  
     procedure Error_Msg_F (Msg : String; N : Node_Id) is
     begin
!       Error_Msg_NEL (Msg, N, N, To_Full_Span_First (N));
     end Error_Msg_F;
  
     ------------------
*************** package body Errout is
*** 860,872 ****
        N   : Node_Id;
        E   : Node_Or_Entity_Id)
     is
-       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, E,
!                      To_Span (Ptr   => Sloc (Fst),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
     end Error_Msg_FE;
  
     ------------------------------
--- 988,995 ----
        N   : Node_Id;
        E   : Node_Or_Entity_Id)
     is
     begin
!       Error_Msg_NEL (Msg, N, E, To_Full_Span_First (N));
     end Error_Msg_FE;
  
     ------------------------------
*************** package body Errout is
*** 918,927 ****
     ------------------------
  
     procedure Error_Msg_Internal
!      (Msg      : String;
!       Span     : Source_Span;
!       Opan     : Source_Span;
!       Msg_Cont : Boolean)
     is
        Sptr     : constant Source_Ptr := Span.Ptr;
        Optr     : constant Source_Ptr := Opan.Ptr;
--- 1041,1054 ----
     ------------------------
  
     procedure Error_Msg_Internal
!      (Msg        : String;
!       Span       : Source_Span;
!       Opan       : Source_Span;
!       Msg_Cont   : Boolean;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
     is
        Sptr     : constant Source_Ptr := Span.Ptr;
        Optr     : constant Source_Ptr := Opan.Ptr;
*************** package body Errout is
*** 937,942 ****
--- 1064,1075 ----
        Warn_Err : Boolean;
        --  Set if warning to be treated as error
  
+       First_Fix : Fix_Id := No_Fix;
+       Last_Fix  : Fix_Id := No_Fix;
+ 
+       Primary_Loc : Labeled_Span_Id := No_Labeled_Span;
+       Last_Loc    : Labeled_Span_Id := No_Labeled_Span;
+ 
        procedure Handle_Serious_Error;
        --  Internal procedure to do all error message handling for a serious
        --  error message, other than bumping the error counts and arranging
*************** package body Errout is
*** 1156,1166 ****
  
              --  Remove (style) or info: at start of message
  
!             if Msglen > 8 and then Msg_Buffer (1 .. 8) = "(style) " then
!                M := 9;
  
!             elsif Msglen > 6 and then Msg_Buffer (1 .. 6) = "info: " then
!                M := 7;
  
              else
                 M := 1;
--- 1289,1303 ----
  
              --  Remove (style) or info: at start of message
  
!             if Msglen > Style_Prefix'Length
!               and then Msg_Buffer (1 .. Style_Prefix'Length) = Style_Prefix
!             then
!                M := Style_Prefix'Length + 1;
  
!             elsif Msglen > Info_Prefix'Length
!               and then Msg_Buffer (1 .. Info_Prefix'Length) = Info_Prefix
!             then
!                M := Info_Prefix'Length + 1;
  
              else
                 M := 1;
*************** package body Errout is
*** 1226,1231 ****
--- 1363,1399 ----
           return;
        end if;
  
+       if Continuation and then Has_Insertion_Line then
+          Erroutc.Locations.Append
+            (Primary_Labeled_Span (To_Span (Error_Msg_Sloc), Label));
+       else
+          Erroutc.Locations.Append (Primary_Labeled_Span (Span, Label));
+       end if;
+ 
+       Primary_Loc := Erroutc.Locations.Last;
+ 
+       Last_Loc := Primary_Loc;
+ 
+       for Span of Spans loop
+          Erroutc.Locations.Append (Span);
+          Erroutc.Locations.Table (Last_Loc).Next := Erroutc.Locations.Last;
+          Last_Loc := Erroutc.Locations.Last;
+       end loop;
+ 
+       for Fix of Fixes loop
+          Erroutc.Fixes.Append (Fix);
+          if Last_Fix /= No_Fix then
+             Erroutc.Fixes.Table (Last_Fix).Next := Erroutc.Fixes.Last;
+          end if;
+          Last_Fix := Erroutc.Fixes.Last;
+ 
+          --  Store the first element in the fix chain
+ 
+          if First_Fix = No_Fix then
+             First_Fix := Last_Fix;
+          end if;
+       end loop;
+ 
        --  Here we build a new error object
  
        Errors.Append
*************** package body Errout is
*** 1245,1251 ****
            Uncond              => Is_Unconditional_Msg,
            Msg_Cont            => Continuation,
            Deleted             => False,
!           Kind                => Error_Msg_Kind));
        Cur_Msg := Errors.Last;
  
        --  Test if warning to be treated as error
--- 1413,1424 ----
            Uncond              => Is_Unconditional_Msg,
            Msg_Cont            => Continuation,
            Deleted             => False,
!           Kind                => Error_Msg_Kind,
!           Locations           => Primary_Loc,
!           Id                  => Error_Code,
!           Switch              =>
!             Get_Switch_Id (Error_Msg_Kind, Warning_Msg_Char),
!           Fixes               => First_Fix));
        Cur_Msg := Errors.Last;
  
        --  Test if warning to be treated as error
*************** package body Errout is
*** 1416,1448 ****
     -- Error_Msg_N --
     -----------------
  
!    procedure Error_Msg_N (Msg : String; N : Node_Or_Entity_Id) is
!       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, N,
!                      To_Span (Ptr   => Sloc (N),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
     end Error_Msg_N;
  
     ------------------
     -- Error_Msg_NE --
     ------------------
  
     procedure Error_Msg_NE
       (Msg : String;
        N   : Node_Or_Entity_Id;
        E   : Node_Or_Entity_Id)
     is
-       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, E,
!                      To_Span (Ptr   => Sloc (N),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
!    end Error_Msg_NE;
  
     -------------------
     -- Error_Msg_NEL --
--- 1589,1660 ----
     -- Error_Msg_N --
     -----------------
  
!    procedure Error_Msg_N
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
!    is
     begin
!       Error_Msg_NEL
!         (Msg        => Msg,
!          N          => N,
!          E          => N,
!          Flag_Span  => To_Full_Span (N),
!          Error_Code => Error_Code,
!          Label      => Label,
!          Spans      => Spans,
!          Fixes      => Fixes);
     end Error_Msg_N;
  
+    ----------------------
+    -- Error_Msg_N_Gigi --
+    ----------------------
+ 
+    procedure Error_Msg_N_Gigi (Msg : String; N : Node_Or_Entity_Id) is
+    begin
+       Error_Msg_N (Msg, N);
+    end Error_Msg_N_Gigi;
+ 
     ------------------
     -- Error_Msg_NE --
     ------------------
  
     procedure Error_Msg_NE
+      (Msg        : String;
+       N          : Node_Or_Entity_Id;
+       E          : Node_Or_Entity_Id;
+       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
+       Label      : String := "";
+       Spans      : Labeled_Span_Array := No_Locations;
+       Fixes      : Fix_Array := No_Fixes)
+    is
+    begin
+       Error_Msg_NEL
+         (Msg        => Msg,
+          N          => N,
+          E          => E,
+          Flag_Span  => To_Full_Span (N),
+          Error_Code => Error_Code,
+          Label      => Label,
+          Spans      => Spans,
+          Fixes      => Fixes);
+    end Error_Msg_NE;
+ 
+    -----------------------
+    -- Error_Msg_NE_Gigi --
+    -----------------------
+ 
+    procedure Error_Msg_NE_Gigi
       (Msg : String;
        N   : Node_Or_Entity_Id;
        E   : Node_Or_Entity_Id)
     is
     begin
!       Error_Msg_NE (Msg, N, E);
!    end Error_Msg_NE_Gigi;
  
     -------------------
     -- Error_Msg_NEL --
*************** package body Errout is
*** 1465,1474 ****
     end Error_Msg_NEL;
  
     procedure Error_Msg_NEL
!      (Msg       : String;
!       N         : Node_Or_Entity_Id;
!       E         : Node_Or_Entity_Id;
!       Flag_Span : Source_Span)
     is
     begin
        if Special_Msg_Delete (Msg, N, E) then
--- 1677,1690 ----
     end Error_Msg_NEL;
  
     procedure Error_Msg_NEL
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       E          : Node_Or_Entity_Id;
!       Flag_Span  : Source_Span;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
     is
     begin
        if Special_Msg_Delete (Msg, N, E) then
*************** package body Errout is
*** 1502,1508 ****
        then
           Debug_Output (N);
           Error_Msg_Node_1 := E;
!          Error_Msg (Msg, Flag_Span, N);
  
        else
           Last_Killed := True;
--- 1718,1731 ----
        then
           Debug_Output (N);
           Error_Msg_Node_1 := E;
!          Error_Msg
!            (Msg        => Msg,
!             Flag_Span  => Flag_Span,
!             N          => N,
!             Error_Code => Error_Code,
!             Label      => Label,
!             Spans      => Spans,
!             Fixes      => Fixes);
  
        else
           Last_Killed := True;
*************** package body Errout is
*** 1522,1538 ****
        Msg   : String;
        N     : Node_Or_Entity_Id)
     is
-       Fst, Lst : Node_Id;
     begin
        if Eflag
          and then In_Extended_Main_Source_Unit (N)
          and then Comes_From_Source (N)
        then
!          First_And_Last_Nodes (N, Fst, Lst);
!          Error_Msg_NEL (Msg, N, N,
!                         To_Span (Ptr   => Sloc (N),
!                                  First => First_Sloc (Fst),
!                                  Last  => Last_Sloc (Lst)));
        end if;
     end Error_Msg_NW;
  
--- 1745,1756 ----
        Msg   : String;
        N     : Node_Or_Entity_Id)
     is
     begin
        if Eflag
          and then In_Extended_Main_Source_Unit (N)
          and then Comes_From_Source (N)
        then
!          Error_Msg_NEL (Msg, N, N, To_Full_Span (N));
        end if;
     end Error_Msg_NW;
  
*************** package body Errout is
*** 2457,2465 ****
           Write_Str (",""option"":""" & Option & """");
        end if;
  
!       --  Print message content
  
        Write_Str (",""message"":""");
        Write_JSON_Escaped_String (Errors.Table (E).Text);
        Write_Str ("""");
  
--- 2675,2687 ----
           Write_Str (",""option"":""" & Option & """");
        end if;
  
!       --  Print message content and ensure that the removed style prefix is
!       --  still in the message.
  
        Write_Str (",""message"":""");
+       if Errors.Table (E).Kind = Style then
+          Write_JSON_Escaped_String (Style_Prefix);
+       end if;
        Write_JSON_Escaped_String (Errors.Table (E).Text);
        Write_Str ("""");
  
*************** package body Errout is
*** 2502,2610 ****
        procedure Write_Max_Errors;
        --  Write message if max errors reached
  
-       procedure Write_Source_Code_Lines
-         (Span     : Source_Span;
-          SGR_Span : String);
-       --  Write the source code line corresponding to Span, as follows when
-       --  Span in on one line:
-       --
-       --  line |  actual code line here with Span somewhere
-       --       |                        ~~~~~^~~~
-       --
-       --  where the caret on the line points to location Span.Ptr, and the
-       --  range Span.First..Span.Last is underlined.
-       --
-       --  or when the span is over multiple lines:
-       --
-       --  line |  beginning of the Span on this line
-       --   ... |     ...
-       --  line>|  actual code line here with Span.Ptr somewhere
-       --   ... |     ...
-       --  line |  end of the Span on this line
-       --
-       --  or when the span is a simple location, as follows:
-       --
-       --  line |  actual code line here with Span somewhere
-       --       |                             ^ here
-       --
-       --  where the caret on the line points to location Span.Ptr
-       --
-       --  SGR_Span is the SGR string to start the section of code in the span,
-       --  that should be closed with SGR_Reset.
- 
        --------------------
        -- Emit_Error_Msgs --
        ---------------------
  
        procedure Emit_Error_Msgs is
!          Use_Prefix : Boolean;
!          E          : Error_Msg_Id;
        begin
           Set_Standard_Error;
  
           E := First_Error_Msg;
           while E /= No_Error_Msg loop
- 
-             --  If -gnatdF is used, separate main messages from previous
-             --  messages with a newline (unless it is an info message) and
-             --  make continuation messages follow the main message with only
-             --  an indentation of two space characters, without repeating
-             --  file:line:col: prefix.
- 
-             Use_Prefix :=
-               not (Debug_Flag_FF and then Errors.Table (E).Msg_Cont);
- 
              if not Errors.Table (E).Deleted then
! 
!                if Debug_Flag_FF then
!                   if Errors.Table (E).Msg_Cont then
!                      Write_Str ("  ");
!                   elsif Errors.Table (E).Kind /= Info then
!                      Write_Eol;
!                   end if;
!                end if;
! 
!                if Use_Prefix then
!                   Output_Msg_Location (E);
!                end if;
! 
                 Output_Msg_Text (E);
                 Write_Eol;
- 
-                --  If -gnatdF is used, write the source code line
-                --  corresponding to the location of the main message (unless
-                --  it is an info message). Also write the source code line
-                --  corresponding to an insertion location inside
-                --  continuation messages.
- 
-                if Debug_Flag_FF
-                  and then Errors.Table (E).Kind /= Info
-                then
-                   if Errors.Table (E).Msg_Cont then
-                      declare
-                         Loc : constant Source_Ptr :=
-                         Errors.Table (E).Insertion_Sloc;
-                      begin
-                         if Loc /= No_Location then
-                            Write_Source_Code_Lines
-                              (To_Span (Loc), SGR_Span => SGR_Note);
-                         end if;
-                      end;
- 
-                   else
-                      declare
-                         SGR_Span : constant String :=
-                         (if Errors.Table (E).Kind = Info then SGR_Note
-                            elsif Errors.Table (E).Kind = Warning
-                              and then not Errors.Table (E).Warn_Err
-                            then SGR_Warning
-                            else SGR_Error);
-                      begin
-                         Write_Source_Code_Lines
-                           (Errors.Table (E).Optr, SGR_Span);
-                      end;
-                   end if;
-                end if;
              end if;
  
              E := Errors.Table (E).Next;
--- 2724,2744 ----
        procedure Write_Max_Errors;
        --  Write message if max errors reached
  
        --------------------
        -- Emit_Error_Msgs --
        ---------------------
  
        procedure Emit_Error_Msgs is
!          E : Error_Msg_Id;
        begin
           Set_Standard_Error;
  
           E := First_Error_Msg;
           while E /= No_Error_Msg loop
              if not Errors.Table (E).Deleted then
!                Output_Msg_Location (E);
                 Output_Msg_Text (E);
                 Write_Eol;
              end if;
  
              E := Errors.Table (E).Next;
*************** package body Errout is
*** 2664,2973 ****
           end if;
        end Write_Max_Errors;
  
-       -----------------------------
-       -- Write_Source_Code_Lines --
-       -----------------------------
- 
-       procedure Write_Source_Code_Lines
-         (Span     : Source_Span;
-          SGR_Span : String)
-       is
-          function Get_Line_End
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr) return Source_Ptr;
-          --  Get the source location for the end of the line in Buf for Loc. If
-          --  Loc is past the end of Buf already, return Buf'Last.
- 
-          function Get_Line_Start
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr) return Source_Ptr;
-          --  Get the source location for the start of the line in Buf for Loc
- 
-          function Image (X : Positive; Width : Positive) return String;
-          --  Output number X over Width characters, with whitespace padding.
-          --  Only output the low-order Width digits of X, if X is larger than
-          --  Width digits.
- 
-          procedure Write_Buffer
-            (Buf   : Source_Buffer_Ptr;
-             First : Source_Ptr;
-             Last  : Source_Ptr);
-          --  Output the characters from First to Last position in Buf, using
-          --  Write_Buffer_Char.
- 
-          procedure Write_Buffer_Char
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr);
-          --  Output the characters at position Loc in Buf, translating ASCII.HT
-          --  in a suitable number of spaces so that the output is not modified
-          --  by starting in a different column that 1.
- 
-          procedure Write_Line_Marker
-            (Num   : Pos;
-             Mark  : Boolean;
-             Width : Positive);
-          --  Output the line number Num over Width characters, with possibly
-          --  a Mark to denote the line with the main location when reporting
-          --  a span over multiple lines.
- 
-          ------------------
-          -- Get_Line_End --
-          ------------------
- 
-          function Get_Line_End
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr) return Source_Ptr
-          is
-             Cur_Loc : Source_Ptr := Source_Ptr'Min (Loc, Buf'Last);
-          begin
-             while Cur_Loc < Buf'Last
-               and then Buf (Cur_Loc) /= ASCII.LF
-             loop
-                Cur_Loc := Cur_Loc + 1;
-             end loop;
- 
-             return Cur_Loc;
-          end Get_Line_End;
- 
-          --------------------
-          -- Get_Line_Start --
-          --------------------
- 
-          function Get_Line_Start
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr) return Source_Ptr
-          is
-             Cur_Loc : Source_Ptr := Loc;
-          begin
-             while Cur_Loc > Buf'First
-               and then Buf (Cur_Loc - 1) /= ASCII.LF
-             loop
-                Cur_Loc := Cur_Loc - 1;
-             end loop;
- 
-             return Cur_Loc;
-          end Get_Line_Start;
- 
-          -----------
-          -- Image --
-          -----------
- 
-          function Image (X : Positive; Width : Positive) return String is
-             Str  : String (1 .. Width);
-             Curr : Natural := X;
-          begin
-             for J in reverse 1 .. Width loop
-                if Curr > 0 then
-                   Str (J) := Character'Val (Character'Pos ('0') + Curr mod 10);
-                   Curr := Curr / 10;
-                else
-                   Str (J) := ' ';
-                end if;
-             end loop;
- 
-             return Str;
-          end Image;
- 
-          ------------------
-          -- Write_Buffer --
-          ------------------
- 
-          procedure Write_Buffer
-            (Buf   : Source_Buffer_Ptr;
-             First : Source_Ptr;
-             Last  : Source_Ptr)
-          is
-          begin
-             for Loc in First .. Last loop
-                Write_Buffer_Char (Buf, Loc);
-             end loop;
-          end Write_Buffer;
- 
-          -----------------------
-          -- Write_Buffer_Char --
-          -----------------------
- 
-          procedure Write_Buffer_Char
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr)
-          is
-          begin
-             --  If the character ASCII.HT is not the last one in the file,
-             --  output as many spaces as the character represents in the
-             --  original source file.
- 
-             if Buf (Loc) = ASCII.HT
-               and then Loc < Buf'Last
-             then
-                for X in Get_Column_Number (Loc) ..
-                         Get_Column_Number (Loc + 1) - 1
-                loop
-                   Write_Char (' ');
-                end loop;
- 
-             --  Otherwise output the character itself
- 
-             else
-                Write_Char (Buf (Loc));
-             end if;
-          end Write_Buffer_Char;
- 
-          -----------------------
-          -- Write_Line_Marker --
-          -----------------------
- 
-          procedure Write_Line_Marker
-            (Num   : Pos;
-             Mark  : Boolean;
-             Width : Positive)
-          is
-          begin
-             Write_Str (Image (Positive (Num), Width => Width));
-             Write_Str ((if Mark then ">" else " ") & "|");
-          end Write_Line_Marker;
- 
-          --  Local variables
- 
-          Loc     : constant Source_Ptr := Span.Ptr;
-          Line    : constant Pos        := Pos (Get_Physical_Line_Number (Loc));
- 
-          Col     : constant Natural    := Natural (Get_Column_Number (Loc));
- 
-          Fst      : constant Source_Ptr := Span.First;
-          Line_Fst : constant Pos        :=
-            Pos (Get_Physical_Line_Number (Fst));
-          Col_Fst  : constant Natural    :=
-            Natural (Get_Column_Number (Fst));
-          Lst      : constant Source_Ptr := Span.Last;
-          Line_Lst : constant Pos        :=
-            Pos (Get_Physical_Line_Number (Lst));
-          Col_Lst  : constant Natural    :=
-            Natural (Get_Column_Number (Lst));
- 
-          Width    : constant := 5;
-          Buf      : Source_Buffer_Ptr;
-          Cur_Loc  : Source_Ptr := Fst;
-          Cur_Line : Pos := Line_Fst;
- 
-       --  Start of processing for Write_Source_Code_Lines
- 
-       begin
-          if Loc >= First_Source_Ptr then
-             Buf := Source_Text (Get_Source_File_Index (Loc));
- 
-             --  First line of the span with actual source code. We retrieve
-             --  the beginning of the line instead of relying on Col_Fst, as
-             --  ASCII.HT characters change column numbers by possibly more
-             --  than one.
- 
-             Write_Line_Marker
-               (Cur_Line,
-                Line_Fst /= Line_Lst and then Cur_Line = Line,
-                Width);
-             Write_Buffer (Buf, Get_Line_Start (Buf, Cur_Loc), Cur_Loc - 1);
- 
-             --  Output the first/caret/last lines of the span, as well as
-             --  lines that are directly above/below the caret if they complete
-             --  the gap with first/last lines, otherwise use ... to denote
-             --  intermediate lines.
- 
-             --  If the span is on one line and not a simple source location,
-             --  color it appropriately.
- 
-             if Line_Fst = Line_Lst
-               and then Col_Fst /= Col_Lst
-             then
-                Write_Str (SGR_Span);
-             end if;
- 
-             declare
-                function Do_Write_Line (Cur_Line : Pos) return Boolean is
-                   (Cur_Line in Line_Fst | Line | Line_Lst
-                      or else
-                    (Cur_Line = Line_Fst + 1 and then Cur_Line = Line - 1)
-                      or else
-                    (Cur_Line = Line + 1 and then Cur_Line = Line_Lst - 1));
-             begin
-                while Cur_Loc <= Buf'Last
-                  and then Cur_Loc <= Lst
-                loop
-                   if Do_Write_Line (Cur_Line) then
-                      Write_Buffer_Char (Buf, Cur_Loc);
-                   end if;
- 
-                   if Buf (Cur_Loc) = ASCII.LF then
-                      Cur_Line := Cur_Line + 1;
- 
-                      --  Output ... for skipped lines
- 
-                      if (Cur_Line = Line
-                           and then not Do_Write_Line (Cur_Line - 1))
-                        or else
-                         (Cur_Line = Line + 1
-                           and then not Do_Write_Line (Cur_Line))
-                      then
-                         Write_Str ((1 .. Width - 3 => ' ') & "... | ...");
-                         Write_Eol;
-                      end if;
- 
-                      --  Display the line marker if the line should be
-                      --  displayed.
- 
-                      if Do_Write_Line (Cur_Line) then
-                         Write_Line_Marker
-                           (Cur_Line,
-                            Line_Fst /= Line_Lst and then Cur_Line = Line,
-                            Width);
-                      end if;
-                   end if;
- 
-                   Cur_Loc := Cur_Loc + 1;
-                end loop;
-             end;
- 
-             if Line_Fst = Line_Lst
-               and then Col_Fst /= Col_Lst
-             then
-                Write_Str (SGR_Reset);
-             end if;
- 
-             --  Output the rest of the last line of the span
- 
-             Write_Buffer (Buf, Cur_Loc, Get_Line_End (Buf, Cur_Loc));
- 
-             --  If the span is on one line, output a second line with caret
-             --  sign pointing to location Loc
- 
-             if Line_Fst = Line_Lst then
-                Write_Str (String'(1 .. Width => ' '));
-                Write_Str (" |");
-                Write_Str (String'(1 .. Col_Fst - 1 => ' '));
- 
-                Write_Str (SGR_Span);
- 
-                Write_Str (String'(Col_Fst .. Col - 1 => '~'));
-                Write_Str ("^");
-                Write_Str (String'(Col + 1 .. Col_Lst => '~'));
- 
-                --  If the span is really just a location, add the word "here"
-                --  to clarify this is the location for the message.
- 
-                if Col_Fst = Col_Lst then
-                   Write_Str (" here");
-                end if;
- 
-                Write_Str (SGR_Reset);
- 
-                Write_Eol;
-             end if;
-          end if;
-       end Write_Source_Code_Lines;
- 
        --  Local variables
  
        E          : Error_Msg_Id;
        Err_Flag   : Boolean;
  
     --  Start of processing for Output_Messages
  
     begin
--- 2798,2815 ----
           end if;
        end Write_Max_Errors;
  
        --  Local variables
  
        E          : Error_Msg_Id;
        Err_Flag   : Boolean;
  
+       Sarif_File_Name       : constant String :=
+         Get_First_Main_File_Name & ".gnat.sarif";
+       Switches_File_Name    : constant String := "gnat_switches.json";
+       Diagnostics_File_Name : constant String := "gnat_diagnostics.json";
+ 
+       Dummy : Boolean;
+ 
     --  Start of processing for Output_Messages
  
     begin
*************** package body Errout is
*** 3039,3053 ****
  
           --  Use updated diagnostic mechanism
  
!          if Debug_Flag_Underscore_DD then
!             Convert_Errors_To_Diagnostics;
  
!             Emit_Diagnostics;
           else
              Emit_Error_Msgs;
           end if;
        end if;
  
        --  Full source listing case
  
        if Full_List then
--- 2881,2952 ----
  
           --  Use updated diagnostic mechanism
  
!          if Opt.SARIF_Output then
!             Set_Standard_Error;
!             Erroutc.SARIF_Emitter.Print_SARIF_Report;
!             Set_Standard_Output;
  
!          elsif Opt.SARIF_File then
!             System.OS_Lib.Delete_File (Sarif_File_Name, Dummy);
!             declare
!                Output_FD :
!                  constant System.OS_Lib.File_Descriptor :=
!                  System.OS_Lib.Create_New_File
!                    (Sarif_File_Name, Fmode => System.OS_Lib.Text);
! 
!             begin
!                Set_Output (Output_FD);
!                Erroutc.SARIF_Emitter.Print_SARIF_Report;
!                Set_Standard_Output;
!                System.OS_Lib.Close (Output_FD);
!             end;
!          elsif Debug_Flag_FF then
!             Erroutc.Pretty_Emitter.Print_Error_Messages;
           else
              Emit_Error_Msgs;
           end if;
        end if;
  
+       if Debug_Flag_Underscore_EE then
+          --  Print the switch repository to a file
+ 
+          System.OS_Lib.Delete_File (Switches_File_Name, Dummy);
+          declare
+             Output_FD : constant System.OS_Lib.File_Descriptor :=
+               System.OS_Lib.Create_New_File
+                 (Switches_File_Name,
+                  Fmode => System.OS_Lib.Text);
+ 
+          begin
+             Set_Output (Output_FD);
+ 
+             Print_Switch_Repository;
+ 
+             Set_Standard_Output;
+ 
+             System.OS_Lib.Close (Output_FD);
+          end;
+ 
+          --  Print the diagnostics repository to a file
+ 
+          System.OS_Lib.Delete_File (Diagnostics_File_Name, Dummy);
+          declare
+             Output_FD : constant System.OS_Lib.File_Descriptor :=
+               System.OS_Lib.Create_New_File
+                 (Diagnostics_File_Name,
+                  Fmode => System.OS_Lib.Text);
+ 
+          begin
+             Set_Output (Output_FD);
+ 
+             Print_Diagnostic_Repository;
+ 
+             Set_Standard_Output;
+ 
+             System.OS_Lib.Close (Output_FD);
+          end;
+       end if;
+ 
        --  Full source listing case
  
        if Full_List then
*************** package body Errout is
*** 4056,4072 ****
        Msglen := 0;
        Flag_Source := Get_Source_File_Index (Flag);
  
!       --  Skip info: at start, we have recorded this in Error_Msg_Kind, and
!       --  this will be used (Info field in error message object) to put back
!       --  the string when it is printed. We need to do this, or we get confused
        --  with instantiation continuations.
  
!       if Text'Length > 6
!         and then Text (Text'First .. Text'First + 5) = "info: "
        then
!          P := Text'First + 6;
!       else
!          P := Text'First;
        end if;
  
        --  Loop through characters of message
--- 3955,3999 ----
        Msglen := 0;
        Flag_Source := Get_Source_File_Index (Flag);
  
!       P := Text'First;
! 
!       --  Skip the continuation symbols at the start
! 
!       if P <= Text'Last and then Text (P) = '\' then
!          Continuation := True;
!          P := P + 1;
! 
!          if P <= Text'Last and then Text (P) = '\' then
!             Continuation_New_Line := True;
!             P := P + 1;
!          end if;
!       end if;
! 
!       --  Skip the message kind tokens at start since it is recorded
!       --  in Error_Msg_Kind, and this will be used to put back the string when
!       --  it is printed. We need to do this, or we get confused
        --  with instantiation continuations.
  
!       if Text'Length > P + Info_Prefix'Length - 1
!         and then Text (P .. P + Info_Prefix'Length - 1) = Info_Prefix
        then
!          P := P + Info_Prefix'Length;
!       elsif Text'Length > P + Style_Prefix'Length - 1
!         and then Text (P .. P + Style_Prefix'Length - 1) = Style_Prefix
!       then
!          P := P + Style_Prefix'Length;
!       elsif Text'Length > P + High_Prefix'Length - 1
!         and then Text (P .. P + High_Prefix'Length - 1) = High_Prefix
!       then
!          P := P + High_Prefix'Length;
!       elsif Text'Length > P + Medium_Prefix'Length - 1
!         and then Text (P .. P + Medium_Prefix'Length - 1) = Medium_Prefix
!       then
!          P := P + Medium_Prefix'Length;
!       elsif Text'Length > P + Low_Prefix'Length - 1
!         and then Text (P .. P + Low_Prefix'Length - 1) = Low_Prefix
!       then
!          P := P + Low_Prefix'Length;
        end if;
  
        --  Loop through characters of message
*************** package body Errout is
*** 4109,4122 ****
              when '#' =>
                 Set_Msg_Insertion_Line_Number (Error_Msg_Sloc, Flag);
  
-             when '\' =>
-                Continuation := True;
- 
-                if P <= Text'Last and then Text (P) = '\' then
-                   Continuation_New_Line := True;
-                   P := P + 1;
-                end if;
- 
              when '@' =>
                 Set_Msg_Insertion_Column;
  
--- 4036,4041 ----
*************** package body Errout is
*** 4372,4377 ****
--- 4291,4338 ----
        end if;
     end SPARK_Msg_NE;
  
+    ------------------
+    -- To_Full_Span --
+    ------------------
+ 
+    function To_Full_Span (N : Node_Id) return Source_Span is
+       Fst, Lst : Node_Id;
+    begin
+       First_And_Last_Nodes (N, Fst, Lst);
+       return To_Span (Ptr   => Sloc (N),
+                       First => First_Sloc (Fst),
+                       Last  => Last_Sloc (Lst));
+    end To_Full_Span;
+ 
+    ------------------------
+    -- To_Full_Span_First --
+    ------------------------
+ 
+    function To_Full_Span_First (N : Node_Id) return Source_Span is
+       Fst, Lst : Node_Id;
+    begin
+       First_And_Last_Nodes (N, Fst, Lst);
+       return To_Span (Ptr   => Sloc (Fst),
+                       First => First_Sloc (Fst),
+                       Last  => Last_Sloc (Lst));
+    end To_Full_Span_First;
+ 
+    -------------
+    -- To_Name --
+    -------------
+ 
+    function To_Name (E : Entity_Id) return String is
+    begin
+       --  The name of the node operator "&" has many special cases. Reuse the
+       --  node to name conversion implementation from the errout package for
+       --  now.
+ 
+       Error_Msg_Node_1 := E;
+       Set_Msg_Text ("&", Sloc (E));
+ 
+       return Msg_Buffer (1 .. Msglen);
+    end To_Name;
+ 
     --------------------------
     -- Unwind_Internal_Type --
     --------------------------
diff -Nrcpad gcc-16-20250601/gcc/ada/errout.ads gcc-16-20250608/gcc/ada/errout.ads
*** gcc-16-20250601/gcc/ada/errout.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/errout.ads	Sun Jun  8 22:32:15 2025
***************
*** 30,35 ****
--- 30,36 ----
  
  with Err_Vars;
  with Erroutc;
+ with Errid;    use Errid;
  with Namet;    use Namet;
  with Table;
  with Types;    use Types;
*************** package Errout is
*** 580,585 ****
--- 581,599 ----
     --  client to set this to No_Error_Msg and then test it to see if a warning
     --  message has been issued.
  
+    subtype Labeled_Span_Type is Erroutc.Labeled_Span_Type;
+    subtype Fix_Type is Erroutc.Fix_Type;
+    subtype Edit_Type is Erroutc.Edit_Type;
+ 
+    type Labeled_Span_Array is
+      array (Positive range <>) of Labeled_Span_Type;
+    type Fix_Array is array (Positive range <>) of Fix_Type;
+    type Edit_Array is array (Positive range <>) of Edit_Type;
+ 
+    No_Locations : constant Labeled_Span_Array (1 .. 0) := (others => <>);
+    No_Fixes     : constant Fix_Array (1 .. 0) := (others => <>);
+    No_Edits     : constant Edit_Array (1 .. 0) := (others => <>);
+ 
     procedure Delete_Warning_And_Continuations (Msg : Error_Msg_Id);
     --  Deletes the given warning message and all its continuations. This is
     --  typically used in conjunction with reading the value of Warning_Msg.
*************** package Errout is
*** 713,723 ****
     procedure Error_Msg
       (Msg : String; Flag_Location : Source_Ptr; N : Node_Id);
     procedure Error_Msg
!      (Msg : String; Flag_Span : Source_Span; N : Node_Id);
     --  Output a message at specified location. Can be called from the parser
     --  or the semantic analyzer. If N is set, points to the relevant node for
     --  this message. The version with a span is preferred whenever possible,
     --  in other cases the version with a location can still be used.
  
     procedure Error_Msg
       (Msg                    : String;
--- 727,750 ----
     procedure Error_Msg
       (Msg : String; Flag_Location : Source_Ptr; N : Node_Id);
     procedure Error_Msg
!      (Msg        : String;
!       Flag_Span  : Source_Span;
!       N          : Node_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Output a message at specified location. Can be called from the parser
     --  or the semantic analyzer. If N is set, points to the relevant node for
     --  this message. The version with a span is preferred whenever possible,
     --  in other cases the version with a location can still be used.
+    --
+    --  @param Error_Code is the unique identifier for that kind of message.
+    --  @param Label specifies an optional short label that will be displayed
+    --  under the Flag_Span.
+    --  @param Spans specifies other spans with labels that will be highlighted
+    --  in the error message.
+    --  @param Fixes contains a list of possible fixes for the error message.
  
     procedure Error_Msg
       (Msg                    : String;
*************** package Errout is
*** 753,759 ****
     --  Output a message at the start of the previous token. This routine can
     --  be called only from the parser, since it references Prev_Token_Ptr.
  
!    procedure Error_Msg_N (Msg : String; N : Node_Or_Entity_Id);
     --  Output a message at the Sloc of the given node. This routine can be
     --  called from the parser or the semantic analyzer, although the call from
     --  the latter is much more common (and is the most usual way of generating
--- 780,792 ----
     --  Output a message at the start of the previous token. This routine can
     --  be called only from the parser, since it references Prev_Token_Ptr.
  
!    procedure Error_Msg_N
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Output a message at the Sloc of the given node. This routine can be
     --  called from the parser or the semantic analyzer, although the call from
     --  the latter is much more common (and is the most usual way of generating
*************** package Errout is
*** 762,767 ****
--- 795,803 ----
     --  suppressed if the node N already has a message posted, or if it is a
     --  warning and N is an entity node for which warnings are suppressed.
  
+    procedure Error_Msg_N_Gigi (Msg : String; N : Node_Or_Entity_Id);
+    --  This is a wrapper for the Error_Msg_N method that gets linked to gigi.
+    --
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     procedure Error_Msg_F (Msg : String; N : Node_Id);
*************** package Errout is
*** 771,785 ****
     --  want for placing an error message flag in the right place.
  
     procedure Error_Msg_NE
!      (Msg : String;
!       N   : Node_Or_Entity_Id;
!       E   : Node_Or_Entity_Id);
     --  Output a message at the Sloc of the given node N, with an insertion of
     --  the name from the given entity node E. This is used by the semantic
     --  routines, where this is a common error message situation. The Msg text
     --  will contain a & or } as usual to mark the insertion point. This
     --  routine can be called from the parser or the analyzer.
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     procedure Error_Msg_FE
--- 807,829 ----
     --  want for placing an error message flag in the right place.
  
     procedure Error_Msg_NE
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       E          : Node_Or_Entity_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Output a message at the Sloc of the given node N, with an insertion of
     --  the name from the given entity node E. This is used by the semantic
     --  routines, where this is a common error message situation. The Msg text
     --  will contain a & or } as usual to mark the insertion point. This
     --  routine can be called from the parser or the analyzer.
  
+    procedure Error_Msg_NE_Gigi
+      (Msg : String; N : Node_Or_Entity_Id; E : Node_Or_Entity_Id);
+    --  This is a wrapper for the Error_Msg_NE method that gets linked to gigi.
+    --
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     procedure Error_Msg_FE
*************** package Errout is
*** 795,804 ****
        E             : Node_Or_Entity_Id;
        Flag_Location : Source_Ptr);
     procedure Error_Msg_NEL
!      (Msg       : String;
!       N         : Node_Or_Entity_Id;
!       E         : Node_Or_Entity_Id;
!       Flag_Span : Source_Span);
     --  Exactly the same as Error_Msg_NE, except that the flag is placed at
     --  the specified Flag_Location/Flag_Span instead of at Sloc (N).
  
--- 839,852 ----
        E             : Node_Or_Entity_Id;
        Flag_Location : Source_Ptr);
     procedure Error_Msg_NEL
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       E          : Node_Or_Entity_Id;
!       Flag_Span  : Source_Span;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Exactly the same as Error_Msg_NE, except that the flag is placed at
     --  the specified Flag_Location/Flag_Span instead of at Sloc (N).
  
*************** package Errout is
*** 827,832 ****
--- 875,890 ----
     --  at the original source tree, since that's what we want for placing an
     --  error message flag in the right place.
  
+    function To_Full_Span (N : Node_Id) return Source_Span;
+    --  Creates a Source_Span by calculating the positions of its first and last
+    --  node contained by N in the source code and sets the span to point at the
+    --  location of N.
+ 
+    function To_Full_Span_First (N : Node_Id) return Source_Span;
+    --  Creates a Source_Span by calculating the positions of its first and last
+    --  node contained by N in the source code and sets the span to point to the
+    --  starting position of the span.
+ 
     function First_Node (C : Node_Id) return Node_Id;
     --  Return the first output of First_And_Last_Nodes
  
*************** package Errout is
*** 966,971 ****
--- 1024,1055 ----
     procedure dmsg (Id : Error_Msg_Id) renames Erroutc.dmsg;
     --  Debugging routine to dump an error message
  
+    function Labeled_Span
+      (Span       : Source_Span;
+       Label      : String := "";
+       Is_Primary : Boolean := True;
+       Is_Region  : Boolean := False)
+       return Labeled_Span_Type;
+    --  Constructs a Labeled_Span structure with all of its attributes.
+ 
+    function Primary_Labeled_Span
+      (Span : Source_Span; Label : String := "") return Labeled_Span_Type;
+    function Primary_Labeled_Span
+      (N : Node_Or_Entity_Id; Label : String := "") return Labeled_Span_Type;
+    --  Shorthand function for creating Primary Labeled_Spans
+ 
+    function Secondary_Labeled_Span
+      (Span : Source_Span; Label : String := "") return Labeled_Span_Type;
+    function Secondary_Labeled_Span
+      (N : Node_Or_Entity_Id; Label : String := "") return Labeled_Span_Type;
+    --  Shorthand function for creating Secondary Labeled_Spans
+ 
+    function Edit (Text : String; Span : Source_Span) return Edit_Type;
+    --  Constructs a Edit structure with all of its attributes.
+ 
+    function Fix (Description : String; Edits : Edit_Array) return Fix_Type;
+    --  Constructs a Fix structure with all of its attributes.
+ 
     ------------------------------------
     -- SPARK Error Output Subprograms --
     ------------------------------------
*************** package Errout is
*** 1028,1031 ****
--- 1112,1119 ----
     --  Function Is_Size_Too_Small_Message tests for it by testing a prefix.
     --  The function and constant should be kept in synch.
  
+    function To_Name (E : Entity_Id) return String;
+    --  Converts an entities name into a String as if the '&' insertion
+    --  character was used.
+ 
  end Errout;
diff -Nrcpad gcc-16-20250601/gcc/ada/erroutc-pretty_emitter.adb gcc-16-20250608/gcc/ada/erroutc-pretty_emitter.adb
*** gcc-16-20250601/gcc/ada/erroutc-pretty_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/erroutc-pretty_emitter.adb	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,1410 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . P R E T T Y _ E M I T T E R          --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Namet;      use Namet;
+ with Opt;        use Opt;
+ with Output;     use Output;
+ with Sinput;     use Sinput;
+ with GNAT.Lists; use GNAT.Lists;
+ 
+ package body Erroutc.Pretty_Emitter is
+ 
+    REGION_OFFSET : constant := 1;
+    --  Number of characters between the line bar and the region span
+ 
+    REGION_ARM_SIZE : constant := 2;
+    --  Number of characters on the region span arms
+    --  e.g. two for this case:
+    --   +--
+    --   |
+    --   +--
+    --   ^^
+ 
+    REGION_SIZE : constant := REGION_OFFSET + 1 + REGION_ARM_SIZE;
+    --  The total number of characters taken up by the region span characters
+ 
+    MAX_BAR_POS : constant := 7;
+    --  The maximum position of the line bar from the start of the line
+ 
+    procedure Destroy (Elem : in out Labeled_Span_Type);
+    pragma Inline (Destroy);
+ 
+    procedure Destroy (Elem : in out Labeled_Span_Type) is
+    begin
+       --  Diagnostic elements will be freed when all the diagnostics have been
+       --  emitted.
+       null;
+    end Destroy;
+ 
+    package Labeled_Span_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Labeled_Span_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+    subtype Labeled_Span_List is Labeled_Span_Lists.Doubly_Linked_List;
+ 
+    type Printable_Line is record
+       First : Source_Ptr;
+       --  The first character of the line
+ 
+       Last : Source_Ptr;
+       --  The last character of the line
+ 
+       Line_Nr : Pos;
+       --  The line number
+ 
+       Spans : Labeled_Span_List;
+       --  The spans applied on the line
+    end record;
+ 
+    procedure Destroy (Elem : in out Printable_Line);
+    pragma Inline (Destroy);
+ 
+    function Equals (L, R : Printable_Line) return Boolean is
+      (L.Line_Nr = R.Line_Nr);
+ 
+    package Lines_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Printable_Line,
+       "="             => Equals,
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Lines_List is Lines_Lists.Doubly_Linked_List;
+ 
+    type File_Sections is record
+       File : String_Ptr;
+       --  Name of the file
+ 
+       Ptr : Source_Ptr;
+       --  Pointer to the Primary location in the file section that is printed
+       --  at the start of the file section. If there are none then the first
+       --  location in the section.
+ 
+       Lines : Lines_List;
+       --  Lines to be printed for the file
+    end record;
+ 
+    procedure Destroy (Elem : in out File_Sections);
+    pragma Inline (Destroy);
+ 
+    function Equals (L, R : File_Sections) return Boolean is
+      (L.File /= null and then R.File /= null and then L.File.all = R.File.all);
+ 
+    package File_Section_Lists is new Doubly_Linked_Lists
+      (Element_Type    => File_Sections,
+       "="             => Equals,
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype File_Section_List is File_Section_Lists.Doubly_Linked_List;
+ 
+    function Create_File_Sections
+      (Locations : Labeled_Span_Id) return File_Section_List;
+    --  Create a list of file sections from the labeled spans that are to be
+    --  printed.
+    --
+    --  Each file section contains a list of lines that are to be printed for
+    --  the file and the spans that are applied to each of those lines.
+ 
+    procedure Create_File_Section
+      (Sections : in out File_Section_List; Loc : Labeled_Span_Type);
+    --  Create a new file section for the given labeled span.
+ 
+    procedure Add_Printable_Line
+      (Lines : Lines_List; Loc : Labeled_Span_Type; S_Ptr : Source_Ptr);
+ 
+    procedure Create_Printable_Line
+      (Lines : Lines_List; Loc : Labeled_Span_Type; S_Ptr : Source_Ptr);
+    --  Create a new printable line for the given labeled span and add it in the
+    --  correct position to the Lines list based on the line number.
+ 
+    function Get_Region_Span
+      (Spans : Labeled_Span_List) return Labeled_Span_Type;
+ 
+    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean;
+ 
+    procedure Write_Region_Delimiter (SGR_Code : String);
+    --  Write the arms signifying the start and end of a region span
+    --  e.g. +--
+ 
+    procedure Write_Region_Bar (SGR_Code : String);
+    --  Write the bar signifying the continuation of a region span
+    --  e.g. |
+ 
+    procedure Write_Region_Continuation (SGR_Code : String);
+    --  Write the continuation signifying the continuation of a region span
+    --  e.g. :
+ 
+    procedure Write_Region_Offset;
+    --  Write a number of whitespaces equal to the size of the region span
+ 
+    function Trimmed_Image (I : Natural) return String;
+    --  Removes the leading whitespace from the 'Image of a Natural number.
+ 
+    procedure Write_Span_Labels
+      (Loc                  : Labeled_Span_Type;
+       L                    : Printable_Line;
+       Line_Size            : Integer;
+       Idx                  : String;
+       Within_Region_Span   : Boolean;
+       SGR_Code             : String;
+       Region_Span_SGR_Code : String);
+ 
+    procedure Write_File_Section
+      (Sec              : File_Sections;
+       Write_File_Name  : Boolean;
+       File_Name_Offset : Integer;
+       Include_Spans    : Boolean;
+       SGR_Code         : String := SGR_Note);
+    --  Prints the labled spans for a given File_Section.
+    --
+    --  --> <File_Section.File_Name>
+    --  <Labeled_Spans inside the file>
+ 
+    procedure Write_Labeled_Spans
+      (Locations        : Labeled_Span_Id;
+       Write_File_Name  : Boolean;
+       File_Name_Offset : Integer;
+       Include_Spans    : Boolean := True;
+       SGR_Code         : String := SGR_Note);
+    --  Pretty-prints all of the code regions indicated by the Locations. The
+    --  labeled spans in the Locations are grouped by file into File_Sections
+    --  and sorted by the file name of the Primary location followed by all
+    --  other locations sorted alphabetically.
+ 
+    procedure Write_Intersecting_Labels
+      (Intersecting_Labels : Labeled_Span_List; SGR_Code : String);
+    --  Prints the indices and their associated labels of intersecting labels.
+    --
+    --  Labeled spans that are insercting on the same line are printed without
+    --  labels. Instead the span pointer is replaced by an index number and in
+    --  the end all of the indices are printed with their associated labels.
+    --
+    --
+    --  42 |  [for I in V1.First_Index .. V1.Last_Index => V1(I), -6];
+    --     |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    --     |                                                      1-
+    --     |       2-------------------------------------------
+    --     | 1: positional element
+    --     | 2: named element
+ 
+    function Get_Line_End
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
+    --  Get the source location for the end of the line (LF) in Buf for Loc. If
+    --  Loc is past the end of Buf already, return Buf'Last.
+ 
+    function Get_Line_Start
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
+    --  Get the source location for the start of the line in Buf for Loc
+ 
+    function Get_First_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
+    --  Get first non-space character in the line containing Loc
+ 
+    function Get_Last_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr;
+    --  Get last non line end [LF, CR] character in the line containing Loc
+ 
+    function Image (X : Positive; Width : Positive) return String;
+    --  Output number X over Width characters, with whitespace padding.
+    --  Only output the low-order Width digits of X, if X is larger than
+    --  Width digits.
+ 
+    procedure Write_Buffer
+      (Buf : Source_Buffer_Ptr; First : Source_Ptr; Last : Source_Ptr);
+    --  Output the characters from First to Last position in Buf, using
+    --  Write_Buffer_Char.
+ 
+    procedure Write_Buffer_Char (Buf : Source_Buffer_Ptr; Loc : Source_Ptr);
+    --  Output the characters at position Loc in Buf, translating ASCII.HT
+    --  in a suitable number of spaces so that the output is not modified
+    --  by starting in a different column that 1.
+ 
+    procedure Write_Line_Marker (Num : Pos; Width : Positive);
+    --  Attempts to write the line number within Width number of whitespaces
+    --  followed by a bar ':' symbol.
+    --
+    --  e.g '  12 |'
+    --
+    --  This is usually used on source code lines that are marked by a span.
+ 
+    procedure Write_Empty_Bar_Line (Width : Integer);
+    --  Writes Width number of whitespaces and a bar '|' symbol.
+    --
+    --  e.g '     |'
+    --
+    --  This is usually used on lines where the label is going to printed.
+ 
+    procedure Write_Empty_Skip_Line (Width : Integer);
+    --  Writes Width number of whitespaces and a bar ':' symbol.
+    --
+    --  e.g '     :'
+    --
+    --  This is usually used between non-continous source lines that neec to be
+    --  printed.
+ 
+    procedure Write_Error_Msg_Line (E_Msg : Error_Msg_Object);
+    --  Write the error message line for the given diagnostic:
+    --
+    --  '['<Diag.Id>']' <Diag.Kind>: <Diag.Message> ['['<Diag.Switch>']']
+ 
+    function Should_Write_File_Name
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object) return Boolean;
+    --  If the sub-diagnostic and the main diagnostic only point to the same
+    --  file then there is no reason to add the file name to the sub-diagnostic.
+ 
+    function Should_Write_Spans
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object) return Boolean;
+    --  Old sub-diagnostics used to have the same location as the main
+    --  diagnostic in order to group them correctly. However in most cases
+    --  it was not meant to point to a location but rather add an additional
+    --  message to the original diagnostic.
+    --
+    --  If the sub-diagnostic and the main diagnostic have the same location
+    --  then we should avoid printing the spans.
+ 
+    procedure Print_Diagnostic (E : Error_Msg_Id);
+    --  Entry point for printing a primary diagnostic message.
+ 
+    procedure Print_Edit (Edit : Edit_Type; Offset : Integer);
+    --  Prints an edit object as follows:
+    --
+    --  --> <File_Name>
+    --  -<Line_Nr> <Old_Line>
+    --  +<Line_Nr> <New_Line>
+ 
+    procedure Print_Fix (Fix : Fix_Type; Offset : Integer);
+    --  Prints a fix object as follows
+    --
+    --  + Fix: <Fix.Description>
+    --  <Fix.Edits>
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object; Offset : Integer);
+ 
+    function To_String (Sptr : Source_Ptr) return String;
+    --  Convert the source pointer to a string of the form: "file:line:column"
+ 
+    function To_File_Name (Sptr : Source_Ptr) return String;
+    --  Converts the file name of the Sptr to a string.
+ 
+    function Line_To_String (Sptr : Source_Ptr) return String;
+    --  Converts the logical line number of the Sptr to a string.
+ 
+    function Column_To_String (Sptr : Source_Ptr) return String;
+    --  Converts the column number of the Sptr to a string. Column values less
+    --  than 10 are prefixed with a 0.
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Printable_Line) is
+    begin
+       Labeled_Span_Lists.Destroy (Elem.Spans);
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out File_Sections) is
+    begin
+       Free (Elem.File);
+       Lines_Lists.Destroy (Elem.Lines);
+    end Destroy;
+ 
+    ------------------
+    -- Get_Line_End --
+    ------------------
+ 
+    function Get_Line_End
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Source_Ptr'Min (Loc, Buf'Last);
+    begin
+       while Cur_Loc < Buf'Last and then Buf (Cur_Loc) /= ASCII.LF loop
+          Cur_Loc := Cur_Loc + 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_Line_End;
+ 
+    --------------------
+    -- Get_Line_Start --
+    --------------------
+ 
+    function Get_Line_Start
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Loc;
+    begin
+       while Cur_Loc > Buf'First and then Buf (Cur_Loc - 1) /= ASCII.LF loop
+          Cur_Loc := Cur_Loc - 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_Line_Start;
+ 
+    -------------------------
+    -- Get_First_Line_Char --
+    -------------------------
+ 
+    function Get_First_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Get_Line_Start (Buf, Loc);
+    begin
+       while Cur_Loc < Buf'Last and then Buf (Cur_Loc) = ' ' loop
+          Cur_Loc := Cur_Loc + 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_First_Line_Char;
+ 
+    ------------------------
+    -- Get_Last_Line_Char --
+    ------------------------
+ 
+    function Get_Last_Line_Char
+      (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) return Source_Ptr
+    is
+       Cur_Loc : Source_Ptr := Get_Line_End (Buf, Loc);
+    begin
+       while Cur_Loc > Buf'First
+         and then Buf (Cur_Loc) in ASCII.LF | ASCII.CR
+       loop
+          Cur_Loc := Cur_Loc - 1;
+       end loop;
+ 
+       return Cur_Loc;
+    end Get_Last_Line_Char;
+ 
+    -----------
+    -- Image --
+    -----------
+ 
+    function Image (X : Positive; Width : Positive) return String is
+       Str  : String (1 .. Width);
+       Curr : Natural := X;
+    begin
+       for J in reverse 1 .. Width loop
+          if Curr > 0 then
+             Str (J) := Character'Val (Character'Pos ('0') + Curr mod 10);
+             Curr    := Curr / 10;
+          else
+             Str (J) := ' ';
+          end if;
+       end loop;
+ 
+       return Str;
+    end Image;
+ 
+    --------------------------------
+    -- Has_Multiple_Labeled_Spans --
+    --------------------------------
+ 
+    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean is
+       Count : Natural := 0;
+ 
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (L.Spans);
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+          if Loc.Label /= null then
+             Count := Count + 1;
+          end if;
+       end loop;
+ 
+       return Count > 1;
+    end Has_Multiple_Labeled_Spans;
+ 
+    ---------------------
+    -- Get_Region_Span --
+    ---------------------
+ 
+    function Get_Region_Span
+      (Spans : Labeled_Span_List) return Labeled_Span_Type
+    is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Spans);
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+          if Loc.Is_Region then
+             return Loc;
+          end if;
+       end loop;
+ 
+       return No_Labeled_Span_Object;
+    end Get_Region_Span;
+ 
+    ------------------
+    -- Write_Buffer --
+    ------------------
+ 
+    procedure Write_Buffer
+      (Buf : Source_Buffer_Ptr; First : Source_Ptr; Last : Source_Ptr)
+    is
+    begin
+       for Loc in First .. Last loop
+          Write_Buffer_Char (Buf, Loc);
+       end loop;
+    end Write_Buffer;
+ 
+    -----------------------
+    -- Write_Buffer_Char --
+    -----------------------
+ 
+    procedure Write_Buffer_Char (Buf : Source_Buffer_Ptr; Loc : Source_Ptr) is
+    begin
+       --  If the character ASCII.HT is not the last one in the file,
+       --  output as many spaces as the character represents in the
+       --  original source file.
+ 
+       if Buf (Loc) = ASCII.HT and then Loc < Buf'Last then
+          for X in Get_Column_Number (Loc) .. Get_Column_Number (Loc + 1) - 1
+          loop
+             Write_Char (' ');
+          end loop;
+ 
+       --  Otherwise output the character itself
+ 
+       else
+          Write_Char (Buf (Loc));
+       end if;
+    end Write_Buffer_Char;
+ 
+    -----------------------
+    -- Write_Line_Marker --
+    -----------------------
+ 
+    procedure Write_Line_Marker (Num : Pos; Width : Positive) is
+    begin
+       Write_Str (Image (Positive (Num), Width => Width - 2));
+       Write_Str (" |");
+    end Write_Line_Marker;
+ 
+    --------------------------
+    -- Write_Empty_Bar_Line --
+    --------------------------
+ 
+    procedure Write_Empty_Bar_Line (Width : Integer) is
+ 
+    begin
+       Write_Str (String'(1 .. Width - 1 => ' '));
+       Write_Str ("|");
+    end Write_Empty_Bar_Line;
+ 
+    ---------------------------
+    -- Write_Empty_Skip_Line --
+    ---------------------------
+ 
+    procedure Write_Empty_Skip_Line (Width : Integer) is
+ 
+    begin
+       Write_Str (String'(1 .. Width - 1 => ' '));
+       Write_Str (":");
+    end Write_Empty_Skip_Line;
+ 
+    ----------------------------
+    -- Write_Region_Delimiter --
+    ----------------------------
+ 
+    procedure Write_Region_Delimiter (SGR_Code : String) is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (SGR_Code);
+       Write_Str ("+");
+       Write_Str (String'(1 .. REGION_ARM_SIZE => '-'));
+       Write_Str (SGR_Reset);
+    end Write_Region_Delimiter;
+ 
+    ----------------------
+    -- Write_Region_Bar --
+    ----------------------
+ 
+    procedure Write_Region_Bar (SGR_Code : String) is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (SGR_Code);
+       Write_Str ("|");
+       Write_Str (SGR_Reset);
+       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
+    end Write_Region_Bar;
+ 
+    -------------------------------
+    -- Write_Region_Continuation --
+    -------------------------------
+ 
+    procedure Write_Region_Continuation (SGR_Code : String) is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (SGR_Code);
+       Write_Str (":");
+       Write_Str (SGR_Reset);
+       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
+    end Write_Region_Continuation;
+ 
+    -------------------------
+    -- Write_Region_Offset --
+    -------------------------
+ 
+    procedure Write_Region_Offset is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_SIZE => ' '));
+    end Write_Region_Offset;
+ 
+    ------------------------
+    -- Add_Printable_Line --
+    ------------------------
+ 
+    procedure Add_Printable_Line
+      (Lines : Lines_List;
+       Loc   : Labeled_Span_Type;
+       S_Ptr : Source_Ptr)
+    is
+       L    : Printable_Line;
+       L_It : Lines_Lists.Iterator;
+ 
+       Line_Ptr   : constant Pos := Pos (Get_Physical_Line_Number (S_Ptr));
+       Line_Found : Boolean      := False;
+    begin
+       L_It := Lines_Lists.Iterate (Lines);
+       while Lines_Lists.Has_Next (L_It) loop
+          Lines_Lists.Next (L_It, L);
+ 
+          if not Line_Found and then L.Line_Nr = Line_Ptr then
+             if not Labeled_Span_Lists.Contains (L.Spans, Loc) then
+                Labeled_Span_Lists.Append (L.Spans, Loc);
+             end if;
+             Line_Found := True;
+          end if;
+       end loop;
+ 
+       if not Line_Found then
+          Create_Printable_Line (Lines, Loc, S_Ptr);
+       end if;
+    end Add_Printable_Line;
+ 
+    ---------------------------
+    -- Create_Printable_Line --
+    ---------------------------
+ 
+    procedure Create_Printable_Line
+      (Lines : Lines_List; Loc : Labeled_Span_Type; S_Ptr : Source_Ptr)
+    is
+       Spans : constant Labeled_Span_List := Labeled_Span_Lists.Create;
+ 
+       Buf : constant Source_Buffer_Ptr :=
+         Source_Text (Get_Source_File_Index (S_Ptr));
+ 
+       Line_Nr : constant Pos := Pos (Get_Physical_Line_Number (S_Ptr));
+ 
+       New_Line : constant Printable_Line :=
+         (First   => Get_Line_Start (Buf, S_Ptr),
+          Last    => Get_Line_End (Buf, S_Ptr),
+          Line_Nr => Line_Nr,
+          Spans   => Spans);
+ 
+       L    : Printable_Line;
+       L_It : Lines_Lists.Iterator := Lines_Lists.Iterate (Lines);
+ 
+       Found_Greater_Line : Boolean := False;
+       Insert_Before_Line : Printable_Line;
+    begin
+       Labeled_Span_Lists.Append (Spans, Loc);
+ 
+       --  Insert the new line based on the line number
+ 
+       while Lines_Lists.Has_Next (L_It) loop
+          Lines_Lists.Next (L_It, L);
+ 
+          if not Found_Greater_Line and then L.Line_Nr > New_Line.Line_Nr then
+             Found_Greater_Line := True;
+             Insert_Before_Line := L;
+ 
+             Lines_Lists.Insert_Before (Lines, Insert_Before_Line, New_Line);
+          end if;
+       end loop;
+ 
+       --  Insert after all the lines have been iterated over to avoid the
+       --  mutation lock in GNAT.Lists.
+ 
+       if not Found_Greater_Line then
+          Lines_Lists.Append (Lines, New_Line);
+       end if;
+    end Create_Printable_Line;
+ 
+    -------------------------
+    -- Create_File_Section --
+    -------------------------
+ 
+    procedure Create_File_Section
+      (Sections : in out File_Section_List; Loc : Labeled_Span_Type)
+    is
+       Lines : constant Lines_List := Lines_Lists.Create;
+ 
+       --  Carret positions
+       Ptr      : constant Source_Ptr := Loc.Span.Ptr;
+       Line_Ptr : constant Pos        := Pos (Get_Physical_Line_Number (Ptr));
+ 
+       --  Span start positions
+       Fst      : constant Source_Ptr := Loc.Span.First;
+       Line_Fst : constant Pos        := Pos (Get_Physical_Line_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Loc.Span.Last;
+       Line_Lst : constant Pos        := Pos (Get_Physical_Line_Number (Lst));
+    begin
+       Create_Printable_Line (Lines, Loc, Fst);
+ 
+       if Line_Fst /= Line_Ptr then
+          Create_Printable_Line (Lines, Loc, Ptr);
+       end if;
+ 
+       if Line_Ptr /= Line_Lst then
+          Create_Printable_Line (Lines, Loc, Lst);
+       end if;
+ 
+       File_Section_Lists.Append
+         (Sections,
+          (File  => new String'(To_File_Name (Loc.Span.Ptr)),
+           Ptr   => Loc.Span.Ptr,
+           Lines => Lines));
+    end Create_File_Section;
+ 
+    --------------------------
+    -- Create_File_Sections --
+    --------------------------
+ 
+    function Create_File_Sections
+      (Locations : Labeled_Span_Id) return File_Section_List
+    is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Id := Locations;
+ 
+       Sections : File_Section_List := File_Section_Lists.Create;
+ 
+       Sec  : File_Sections;
+       F_It : File_Section_Lists.Iterator;
+ 
+       File_Found : Boolean;
+    begin
+       while Loc_It /= No_Labeled_Span loop
+          Loc := Erroutc.Locations.Table (Loc_It);
+ 
+          File_Found := False;
+          F_It       := File_Section_Lists.Iterate (Sections);
+ 
+          while File_Section_Lists.Has_Next (F_It) loop
+             File_Section_Lists.Next (F_It, Sec);
+ 
+             if Sec.File /= null
+               and then Sec.File.all = To_File_Name (Loc.Span.Ptr)
+             then
+                File_Found := True;
+ 
+                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.First);
+                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.Ptr);
+                Add_Printable_Line (Sec.Lines, Loc, Loc.Span.Last);
+ 
+                if Loc.Is_Primary then
+                   Sec.Ptr := Loc.Span.Ptr;
+                end if;
+             end if;
+          end loop;
+ 
+          if not File_Found then
+             Create_File_Section (Sections, Loc);
+          end if;
+ 
+          Loc_It := Loc.Next;
+       end loop;
+ 
+       return Sections;
+    end Create_File_Sections;
+ 
+    -----------------------
+    -- Write_Span_Labels --
+    -----------------------
+ 
+    procedure Write_Span_Labels
+      (Loc                  : Labeled_Span_Type;
+       L                    : Printable_Line;
+       Line_Size            : Integer;
+       Idx                  : String;
+       Within_Region_Span   : Boolean;
+       SGR_Code             : String;
+       Region_Span_SGR_Code : String)
+    is
+       Span_Char : constant Character := (if Loc.Is_Primary then '~' else '-');
+ 
+       Buf : constant Source_Buffer_Ptr :=
+         Source_Text (Get_Source_File_Index (L.First));
+ 
+       Col_L_Fst : constant Natural :=
+         Natural (Get_Column_Number (Get_First_Line_Char (Buf, L.First)));
+       Col_L_Lst : constant Natural :=
+         Natural (Get_Column_Number (Get_Last_Line_Char (Buf, L.Last)));
+ 
+       --  Carret positions
+       Ptr      : constant Source_Ptr := Loc.Span.Ptr;
+       Line_Ptr : constant Pos        := Pos (Get_Physical_Line_Number (Ptr));
+       Col_Ptr  : constant Natural    := Natural (Get_Column_Number (Ptr));
+ 
+       --  Span start positions
+       Fst      : constant Source_Ptr := Loc.Span.First;
+       Line_Fst : constant Pos        := Pos (Get_Physical_Line_Number (Fst));
+       Col_Fst  : constant Natural    := Natural (Get_Column_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Loc.Span.Last;
+       Line_Lst : constant Pos        := Pos (Get_Physical_Line_Number (Lst));
+       Col_Lst  : constant Natural    := Natural (Get_Column_Number (Lst));
+ 
+       --  Attributes for the span on the current line
+ 
+       Span_Sym : constant String := (if Idx = "" then "^" else Idx);
+ 
+       Span_Fst : constant Natural :=
+         (if Line_Fst = L.Line_Nr then Col_Fst else Col_L_Fst);
+ 
+       Span_Lst : constant Natural :=
+         (if Line_Lst = L.Line_Nr then Col_Lst else Col_L_Lst);
+ 
+       Span_Ptr_Fst : constant Natural :=
+         (if Line_Ptr = L.Line_Nr then Col_Ptr else Col_L_Fst);
+ 
+       Span_Ptr_Lst : constant Natural :=
+         (if Line_Ptr = L.Line_Nr then Span_Ptr_Fst + Span_Sym'Length
+          else Span_Fst);
+ 
+    begin
+       if not Loc.Is_Region then
+          Write_Empty_Bar_Line (Line_Size);
+ 
+          if Within_Region_Span then
+             Write_Region_Bar (Region_Span_SGR_Code);
+          else
+             Write_Region_Offset;
+          end if;
+ 
+          Write_Str (String'(1 .. Span_Fst - 1 => ' '));
+ 
+          Write_Str (SGR_Code);
+ 
+          if Line_Ptr = L.Line_Nr then
+             Write_Str (String'(Span_Fst .. Col_Ptr - 1 => Span_Char));
+             Write_Str (Span_Sym);
+          end if;
+ 
+          Write_Str (String'(Span_Ptr_Lst .. Span_Lst => Span_Char));
+ 
+          Write_Str (SGR_Reset);
+ 
+          Write_Eol;
+ 
+          --  Write the label under the line unless it is an intersecting span.
+          --  In this case omit the label which will be printed later along with
+          --  the index.
+ 
+          if Loc.Label /= null and then Idx = "" then
+             Write_Empty_Bar_Line (Line_Size);
+ 
+             if Within_Region_Span then
+                Write_Region_Bar (Region_Span_SGR_Code);
+             else
+                Write_Region_Offset;
+             end if;
+ 
+             Write_Str (String'(1 .. Span_Fst - 1 => ' '));
+             Write_Str (SGR_Code);
+             Write_Str (Loc.Label.all);
+             Write_Str (SGR_Reset);
+             Write_Eol;
+          end if;
+       else
+          if Line_Lst = L.Line_Nr then
+             Write_Empty_Bar_Line (Line_Size);
+             Write_Str (String'(1 .. REGION_OFFSET => ' '));
+             Write_Str (SGR_Code);
+             Write_Str (Loc.Label.all);
+             Write_Str (SGR_Reset);
+             Write_Eol;
+          end if;
+       end if;
+    end Write_Span_Labels;
+ 
+    -------------------
+    -- Trimmed_Image --
+    -------------------
+ 
+    function Trimmed_Image (I : Natural) return String is
+       Img_Raw : constant String := Natural'Image (I);
+    begin
+       return Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
+    end Trimmed_Image;
+ 
+    -------------------------------
+    -- Write_Intersecting_Labels --
+    -------------------------------
+ 
+    procedure Write_Intersecting_Labels
+      (Intersecting_Labels : Labeled_Span_List; SGR_Code : String)
+    is
+       L    : Labeled_Span_Type;
+       L_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Intersecting_Labels);
+       Idx  : Integer                     := 0;
+    begin
+       while Labeled_Span_Lists.Has_Next (L_It) loop
+          Labeled_Span_Lists.Next (L_It, L);
+          Idx := Idx + 1;
+ 
+          Write_Empty_Bar_Line (MAX_BAR_POS);
+          Write_Str (" ");
+          Write_Str ((if L.Is_Primary then SGR_Code else SGR_Note));
+          Write_Int (Int (Idx));
+          Write_Str (": ");
+          Write_Str (L.Label.all);
+          Write_Str (SGR_Reset);
+          Write_Eol;
+       end loop;
+    end Write_Intersecting_Labels;
+ 
+    ------------------------
+    -- Write_File_Section --
+    ------------------------
+ 
+    procedure Write_File_Section
+      (Sec              : File_Sections; Write_File_Name : Boolean;
+       File_Name_Offset : Integer; Include_Spans : Boolean;
+       SGR_Code         : String := SGR_Note)
+    is
+       use Lines_Lists;
+ 
+       function Get_SGR_Code (L : Labeled_Span_Type) return String is
+         (if L.Is_Primary then SGR_Code else SGR_Note);
+ 
+       L    : Printable_Line;
+       L_It : Iterator := Iterate (Sec.Lines);
+ 
+       Multiple_Labeled_Spans : Boolean := False;
+ 
+       Idx : Integer := 0;
+ 
+       Intersecting_Labels : constant Labeled_Span_List :=
+         Labeled_Span_Lists.Create;
+ 
+       Prev_Line_Nr : Natural := 0;
+ 
+       Within_Region_Span : Boolean := False;
+    begin
+       if Write_File_Name then
+ 
+          --  offset the file start location for sub-diagnostics
+ 
+          Write_Str (String'(1 .. File_Name_Offset => ' '));
+          Write_Str ("--> " & To_String (Sec.Ptr));
+          Write_Eol;
+       end if;
+ 
+       --  Historically SPARK does not include spans in their info messages.
+ 
+       if not Include_Spans then
+          return;
+       end if;
+ 
+       while Has_Next (L_It) loop
+          Next (L_It, L);
+          declare
+             Line_Nr  : constant Pos    := L.Line_Nr;
+             Line_Str : constant String := Trimmed_Image (Natural (Line_Nr));
+ 
+             Line_Size : constant Integer :=
+               Integer'Max (Line_Str'Length, MAX_BAR_POS);
+ 
+             Loc    : Labeled_Span_Type;
+             Loc_It : Labeled_Span_Lists.Iterator :=
+               Labeled_Span_Lists.Iterate (L.Spans);
+ 
+             Buf : constant Source_Buffer_Ptr :=
+               Source_Text (Get_Source_File_Index (L.First));
+ 
+             Region_Span : constant Labeled_Span_Type :=
+               Get_Region_Span (L.Spans);
+ 
+             Contains_Region_Span_Start : constant Boolean :=
+               Region_Span /= No_Labeled_Span_Object
+               and then Line_Nr =
+                 Pos (Get_Physical_Line_Number (Region_Span.Span.First));
+             Contains_Region_Span_End   : constant Boolean :=
+               Region_Span /= No_Labeled_Span_Object
+               and then Line_Nr =
+                 Pos (Get_Physical_Line_Number (Region_Span.Span.Last));
+ 
+             Region_Span_Color : constant String :=
+               (if Region_Span /= No_Labeled_Span_Object then
+                  Get_SGR_Code (Region_Span)
+                else SGR_Note);
+          begin
+             if not Multiple_Labeled_Spans then
+                Multiple_Labeled_Spans := Has_Multiple_Labeled_Spans (L);
+             end if;
+ 
+             --  Write an empty line with the continuation symbol if the line
+             --  numbers are not contiguous
+ 
+             if Prev_Line_Nr /= 0 and then Pos (Prev_Line_Nr + 1) /= Line_Nr
+             then
+                Write_Empty_Skip_Line (Line_Size);
+ 
+                if Within_Region_Span then
+                   Write_Region_Continuation (Region_Span_Color);
+                end if;
+ 
+                Write_Eol;
+             end if;
+ 
+             if Contains_Region_Span_Start then
+                Within_Region_Span := True;
+             end if;
+ 
+             Write_Line_Marker (Line_Nr, Line_Size);
+ 
+             --  Write either the region span symbol or the same number of
+             --  whitespaces.
+ 
+             if Contains_Region_Span_Start or Contains_Region_Span_End then
+                Write_Region_Delimiter (Region_Span_Color);
+             elsif Within_Region_Span then
+                Write_Region_Bar (Region_Span_Color);
+             else
+                Write_Region_Offset;
+             end if;
+ 
+             --  Write the line itself
+ 
+             Write_Buffer (Buf => Buf, First => L.First, Last => L.Last);
+ 
+             --  Write all the spans for the line
+ 
+             while Labeled_Span_Lists.Has_Next (Loc_It) loop
+                Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+                if Multiple_Labeled_Spans and then Loc.Label /= null then
+ 
+                   --  Collect all the spans with labels to print them at the
+                   --  end.
+ 
+                   Labeled_Span_Lists.Append (Intersecting_Labels, Loc);
+ 
+                   Idx := Idx + 1;
+ 
+                   Write_Span_Labels
+                     (Loc                 => Loc,
+                      L                    => L,
+                      Line_Size            => Line_Size,
+                      Idx                  => Trimmed_Image (Idx),
+                      Within_Region_Span   => Within_Region_Span,
+                      SGR_Code             => Get_SGR_Code (Loc),
+                      Region_Span_SGR_Code => Region_Span_Color);
+                else
+                   Write_Span_Labels
+                     (Loc                  => Loc,
+                      L                    => L,
+                      Line_Size            => Line_Size,
+                      Idx                  => "",
+                      Within_Region_Span   => Within_Region_Span,
+                      SGR_Code             => Get_SGR_Code (Loc),
+                      Region_Span_SGR_Code => Region_Span_Color);
+                end if;
+ 
+             end loop;
+ 
+             if Contains_Region_Span_End then
+                Within_Region_Span := False;
+             end if;
+ 
+             Prev_Line_Nr := Natural (Line_Nr);
+          end;
+       end loop;
+ 
+       Write_Intersecting_Labels (Intersecting_Labels, SGR_Code);
+    end Write_File_Section;
+ 
+    -------------------------
+    -- Write_Labeled_Spans --
+    -------------------------
+ 
+    procedure Write_Labeled_Spans
+      (Locations        : Labeled_Span_Id;
+       Write_File_Name  : Boolean;
+       File_Name_Offset : Integer;
+       Include_Spans    : Boolean := True;
+       SGR_Code         : String := SGR_Note)
+    is
+       Sections : File_Section_List := Create_File_Sections (Locations);
+ 
+       Sec  : File_Sections;
+       F_It : File_Section_Lists.Iterator :=
+         File_Section_Lists.Iterate (Sections);
+    begin
+       while File_Section_Lists.Has_Next (F_It) loop
+          File_Section_Lists.Next (F_It, Sec);
+ 
+          Write_File_Section
+            (Sec              => Sec,
+             Write_File_Name  => Write_File_Name,
+             File_Name_Offset => File_Name_Offset,
+             Include_Spans    => Include_Spans,
+             SGR_Code         => SGR_Code);
+       end loop;
+ 
+       File_Section_Lists.Destroy (Sections);
+    end Write_Labeled_Spans;
+ 
+    --------------------------
+    -- Write_Error_Msg_Line --
+    --------------------------
+ 
+    procedure Write_Error_Msg_Line (E_Msg : Error_Msg_Object) is
+       Switch_Str : constant String := Get_Doc_Switch (E_Msg);
+ 
+       SGR_Code : constant String := Get_SGR_Code (E_Msg);
+    begin
+       Write_Str (SGR_Code);
+ 
+       if not GNATprove_Mode or else E_Msg.Id /= No_Diagnostic_Id then
+          Write_Str ("[" & To_String (E_Msg.Id) & "]");
+       end if;
+ 
+       Write_Str (" " & Kind_To_String (E_Msg) & ": ");
+ 
+       Write_Str (SGR_Reset);
+ 
+       Write_Str (E_Msg.Text.all);
+ 
+       if Switch_Str /= "" then
+          Write_Str (" " & Switch_Str);
+       end if;
+ 
+       if E_Msg.Warn_Err then
+          Write_Str (" [warning-as-error]");
+       end if;
+ 
+       Write_Eol;
+    end Write_Error_Msg_Line;
+ 
+    ----------------------------
+    -- Should_Write_File_Name --
+    ----------------------------
+ 
+    function Should_Write_File_Name
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object) return Boolean
+    is
+       Sub_Loc : constant Labeled_Span_Type :=
+         Locations.Table (Primary_Location (Sub_Diag));
+ 
+       Diag_Loc : constant Labeled_Span_Type :=
+         Locations.Table (Primary_Location (Diag));
+ 
+       function Has_Multiple_Files (Diag : Error_Msg_Object) return Boolean;
+ 
+       ------------------------
+       -- Has_Multiple_Files --
+       ------------------------
+ 
+       function Has_Multiple_Files (Diag : Error_Msg_Object) return Boolean is
+          First : constant Labeled_Span_Type :=
+            Locations.Table (Diag.Locations);
+ 
+          File : constant String := To_File_Name (First.Span.Ptr);
+ 
+          Loc_Id : Labeled_Span_Id := Diag.Locations;
+          Loc    : Labeled_Span_Type;
+       begin
+          Loc_Id := Diag.Locations;
+          while Loc_Id /= No_Labeled_Span loop
+             Loc := Locations.Table (Loc_Id);
+ 
+             if To_File_Name (Loc.Span.Ptr) /= File then
+                return True;
+             end if;
+ 
+             Loc_Id := Loc.Next;
+          end loop;
+ 
+          return False;
+       end Has_Multiple_Files;
+ 
+    --  Start of processing for Should_Write_File_Name
+ 
+    begin
+       return
+         Has_Multiple_Files (Diag)
+         or else To_File_Name (Sub_Loc.Span.Ptr) /=
+           To_File_Name (Diag_Loc.Span.Ptr);
+    end Should_Write_File_Name;
+ 
+    ------------------------
+    -- Should_Write_Spans --
+    ------------------------
+ 
+    function Should_Write_Spans
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object) return Boolean
+    is
+       Sub_Loc  : constant Labeled_Span_Id := Primary_Location (Sub_Diag);
+       Diag_Loc : constant Labeled_Span_Id := Primary_Location (Diag);
+    begin
+       return
+         Sub_Loc /= No_Labeled_Span and then Diag_Loc /= No_Labeled_Span
+         and then Locations.Table (Sub_Loc).Span.Ptr /=
+           Locations.Table (Diag_Loc).Span.Ptr;
+    end Should_Write_Spans;
+ 
+    ----------------
+    -- Print_Edit --
+    ----------------
+ 
+    procedure Print_Edit (Edit : Edit_Type; Offset : Integer) is
+       Buf : constant Source_Buffer_Ptr :=
+         Source_Text (Get_Source_File_Index (Edit.Span.Ptr));
+ 
+       Line_Nr : constant Pos := Pos (Get_Physical_Line_Number (Edit.Span.Ptr));
+ 
+       Line_Fst : constant Source_Ptr := Get_Line_Start (Buf, Edit.Span.First);
+       Line_Lst : constant Source_Ptr := Get_Line_End (Buf, Edit.Span.First);
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+       Write_Str ("--> " & To_File_Name (Edit.Span.Ptr));
+       Write_Eol;
+ 
+       --  write the original line
+ 
+       Write_Char ('-');
+       Write_Line_Marker (Line_Nr, MAX_BAR_POS - 1);
+ 
+       Write_Buffer (Buf => Buf, First => Line_Fst, Last => Line_Lst);
+ 
+       --  write the edited line
+ 
+       Write_Char ('+');
+       Write_Line_Marker (Line_Nr, MAX_BAR_POS - 1);
+ 
+       Write_Buffer
+         (Buf => Buf, First => Line_Fst, Last => Edit.Span.First - 1);
+ 
+       if Edit.Text /= null then
+          Write_Str (Edit.Text.all);
+       end if;
+ 
+       Write_Buffer (Buf => Buf, First => Edit.Span.Last + 1, Last => Line_Lst);
+    end Print_Edit;
+ 
+    ---------------
+    -- Print_Fix --
+    ---------------
+ 
+    procedure Print_Fix (Fix : Fix_Type; Offset : Integer) is
+       E : Edit_Id;
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+       Write_Str ("+ Fix: ");
+ 
+       if Fix.Description /= null then
+          Write_Str (Fix.Description.all);
+       end if;
+       Write_Eol;
+ 
+       E := Fix.Edits;
+       while E /= No_Edit loop
+          Print_Edit (Edits.Table (E), MAX_BAR_POS - 1);
+ 
+          E := Edits.Table (E).Next;
+       end loop;
+    end Print_Fix;
+ 
+    --------------------------
+    -- Print_Sub_Diagnostic --
+    --------------------------
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object; Offset : Integer)
+    is
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+ 
+       Write_Str ("+ ");
+ 
+       Write_Str (Sub_Diag.Text.all);
+       Write_Eol;
+ 
+       if Should_Write_Spans (Sub_Diag, Diag) then
+          Write_Labeled_Spans
+            (Locations        => Sub_Diag.Locations,
+             Write_File_Name  => Should_Write_File_Name (Sub_Diag, Diag),
+             File_Name_Offset => Offset,
+             Include_Spans => not GNATprove_Mode or else Sub_Diag.Kind /= Info,
+             SGR_Code         => SGR_Note);
+       end if;
+    end Print_Sub_Diagnostic;
+ 
+    ----------------------
+    -- Print_Diagnostic --
+    ----------------------
+ 
+    procedure Print_Diagnostic (E : Error_Msg_Id) is
+       E_Msg : constant Error_Msg_Object := Errors.Table (E);
+ 
+       E_Next_Id : Error_Msg_Id;
+ 
+       F : Fix_Id;
+    begin
+       --  Print the main diagnostic
+ 
+       Write_Error_Msg_Line (E_Msg);
+ 
+       --  Print diagnostic locations along with spans
+ 
+       Write_Labeled_Spans
+         (Locations        => E_Msg.Locations,
+          Write_File_Name  => True,
+          File_Name_Offset => 0,
+          Include_Spans    => not GNATprove_Mode or else E_Msg.Kind /= Info,
+          SGR_Code         => Get_SGR_Code (E_Msg));
+ 
+       --  Print subdiagnostics
+ 
+       E_Next_Id := E_Msg.Next;
+       while E_Next_Id /= No_Error_Msg
+         and then Errors.Table (E_Next_Id).Msg_Cont
+       loop
+          --  Print the subdiagnostic and offset the location of the file
+          --  name
+          Print_Sub_Diagnostic
+            (Errors.Table (E_Next_Id), E_Msg, MAX_BAR_POS - 1);
+ 
+          E_Next_Id := Errors.Table (E_Next_Id).Next;
+       end loop;
+ 
+       --  Print fixes
+ 
+       F := E_Msg.Fixes;
+       while F /= No_Fix loop
+          Print_Fix (Fixes.Table (F), MAX_BAR_POS - 1);
+ 
+          F := Fixes.Table (F).Next;
+       end loop;
+ 
+       --  Separate main diagnostics with a blank line
+ 
+       Write_Eol;
+    end Print_Diagnostic;
+ 
+    --------------------------
+    -- Print_Error_Messages --
+    --------------------------
+ 
+    procedure Print_Error_Messages is
+       E : Error_Msg_Id;
+    begin
+       Set_Standard_Error;
+ 
+       E := First_Error_Msg;
+       while E /= No_Error_Msg loop
+ 
+          if not Errors.Table (E).Deleted and then not Errors.Table (E).Msg_Cont
+          then
+             Print_Diagnostic (E);
+          end if;
+ 
+          E := Errors.Table (E).Next;
+       end loop;
+ 
+       Set_Standard_Output;
+    end Print_Error_Messages;
+ 
+    ------------------
+    -- To_File_Name --
+    ------------------
+ 
+    function To_File_Name (Sptr : Source_Ptr) return String is
+       Sfile    : constant Source_File_Index := Get_Source_File_Index (Sptr);
+       Ref_Name : constant File_Name_Type    :=
+         (if Full_Path_Name_For_Brief_Errors then Full_Ref_Name (Sfile)
+          else Reference_Name (Sfile));
+ 
+    begin
+       return Get_Name_String (Ref_Name);
+    end To_File_Name;
+ 
+    --------------------
+    -- Line_To_String --
+    --------------------
+ 
+    function Line_To_String (Sptr : Source_Ptr) return String is
+       Line    : constant Logical_Line_Number := Get_Logical_Line_Number (Sptr);
+       Img_Raw : constant String              := Int'Image (Int (Line));
+ 
+    begin
+       return Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
+    end Line_To_String;
+ 
+    ----------------------
+    -- Column_To_String --
+    ----------------------
+ 
+    function Column_To_String (Sptr : Source_Ptr) return String is
+       Col     : constant Column_Number := Get_Column_Number (Sptr);
+       Img_Raw : constant String        := Int'Image (Int (Col));
+ 
+    begin
+       return
+         (if Col < 10 then "0" else "") &
+         Img_Raw (Img_Raw'First + 1 .. Img_Raw'Last);
+    end Column_To_String;
+ 
+    ---------------
+    -- To_String --
+    ---------------
+ 
+    function To_String (Sptr : Source_Ptr) return String is
+    begin
+       return
+         To_File_Name (Sptr) & ":" & Line_To_String (Sptr) & ":" &
+         Column_To_String (Sptr);
+    end To_String;
+ 
+ end Erroutc.Pretty_Emitter;
diff -Nrcpad gcc-16-20250601/gcc/ada/erroutc-pretty_emitter.ads gcc-16-20250608/gcc/ada/erroutc-pretty_emitter.ads
*** gcc-16-20250601/gcc/ada/erroutc-pretty_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/erroutc-pretty_emitter.ads	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,28 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --             D I A G N O S T I C S . P R E T T Y _ E M I T T E R          --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Erroutc.Pretty_Emitter is
+    procedure Print_Error_Messages;
+ end Erroutc.Pretty_Emitter;
diff -Nrcpad gcc-16-20250601/gcc/ada/erroutc-sarif_emitter.adb gcc-16-20250608/gcc/ada/erroutc-sarif_emitter.adb
*** gcc-16-20250601/gcc/ada/erroutc-sarif_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/erroutc-sarif_emitter.adb	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,1311 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --              D I A G N O S T I C S . S A R I F _ E M I T T E R           --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with JSON_Utils; use JSON_Utils;
+ with GNAT.Lists; use GNAT.Lists;
+ with Gnatvsn;    use Gnatvsn;
+ with Lib;        use Lib;
+ with Namet;      use Namet;
+ with Osint;      use Osint;
+ with Output;     use Output;
+ with Sinput;     use Sinput;
+ with System.OS_Lib;
+ 
+ package body Erroutc.SARIF_Emitter is
+ 
+    --  SARIF attribute names
+ 
+    N_ARTIFACT_CHANGES      : constant String := "artifactChanges";
+    N_ARTIFACT_LOCATION     : constant String := "artifactLocation";
+    N_COMMAND_LINE          : constant String := "commandLine";
+    N_DELETED_REGION        : constant String := "deletedRegion";
+    N_DESCRIPTION           : constant String := "description";
+    N_DRIVER                : constant String := "driver";
+    N_END_COLUMN            : constant String := "endColumn";
+    N_END_LINE              : constant String := "endLine";
+    N_EXECUTION_SUCCESSFUL  : constant String := "executionSuccessful";
+    N_FIXES                 : constant String := "fixes";
+    N_ID                    : constant String := "id";
+    N_INSERTED_CONTENT      : constant String := "insertedContent";
+    N_INVOCATIONS           : constant String := "invocations";
+    N_LOCATIONS             : constant String := "locations";
+    N_LEVEL                 : constant String := "level";
+    N_MESSAGE               : constant String := "message";
+    N_NAME                  : constant String := "name";
+    N_ORIGINAL_URI_BASE_IDS : constant String := "originalUriBaseIds";
+    N_PHYSICAL_LOCATION     : constant String := "physicalLocation";
+    N_REGION                : constant String := "region";
+    N_RELATED_LOCATIONS     : constant String := "relatedLocations";
+    N_REPLACEMENTS          : constant String := "replacements";
+    N_RESULTS               : constant String := "results";
+    N_RULES                 : constant String := "rules";
+    N_RULE_ID               : constant String := "ruleId";
+    N_RUNS                  : constant String := "runs";
+    N_SCHEMA                : constant String := "$schema";
+    N_START_COLUMN          : constant String := "startColumn";
+    N_START_LINE            : constant String := "startLine";
+    N_TEXT                  : constant String := "text";
+    N_TOOL                  : constant String := "tool";
+    N_URI                   : constant String := "uri";
+    N_URI_BASE_ID           : constant String := "uriBaseId";
+    N_VERSION               : constant String := "version";
+ 
+    --  We are currently using SARIF 2.1.0
+ 
+    SARIF_Version : constant String := "2.1.0";
+    pragma Style_Checks ("M100");
+    SARIF_Schema : constant String :=
+      "https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json";
+    pragma Style_Checks ("M79");
+ 
+    URI_Base_Id_Name : constant String := "PWD";
+    --  We use the pwd as the originalUriBaseIds when providing absolute paths
+    --  in locations.
+ 
+    Current_Dir : constant String := Get_Current_Dir;
+    --  Cached value of the current directory that is used in the URI_Base_Id
+    --  and it is also the path that all other Uri attributes will be created
+    --  relative to.
+ 
+    procedure Destroy (Elem : in out Error_Msg_Object) is null;
+    pragma Inline (Destroy);
+    package Error_Msg_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Error_Msg_Object,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Error_Msg_List is Error_Msg_Lists.Doubly_Linked_List;
+ 
+    procedure Destroy (Elem : in out Edit_Type);
+ 
+    procedure Destroy (Elem : in out Edit_Type) is
+    begin
+       --  Diagnostic elements will be freed when all the diagnostics have been
+       --  emitted.
+       null;
+    end Destroy;
+ 
+    pragma Inline (Destroy);
+ 
+    package Edit_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Edit_Type,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Edit_List is Edit_Lists.Doubly_Linked_List;
+ 
+    type Artifact_Change is record
+       File_Index : Source_File_Index;
+       --  Index for the source file
+ 
+       Replacements : Edit_List;
+       --  Regions of texts to be edited
+    end record;
+ 
+    procedure Destroy (Elem : in out Artifact_Change);
+    pragma Inline (Destroy);
+ 
+    function Equals (L, R : Artifact_Change) return Boolean is
+      (L.File_Index = R.File_Index);
+ 
+    package Artifact_Change_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Artifact_Change,
+       "="             => Equals,
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Artifact_Change_List is Artifact_Change_Lists.Doubly_Linked_List;
+ 
+    function Get_Artifact_Changes (Fix : Fix_Type) return Artifact_Change_List;
+    --  Group edits of a Fix into Artifact_Changes that organize the edits by
+    --  file name.
+ 
+    function Get_Unique_Rules return Error_Msg_List;
+    --  Get a list of diagnostics that have unique Diagnostic Id-s.
+ 
+    procedure Print_Replacement (Replacement : Edit_Type);
+    --  Print a replacement node
+    --
+    --  {
+    --    deletedRegion: {<Region>},
+    --    insertedContent: {<Message>}
+    --  }
+ 
+    procedure Print_Fix (Fix : Fix_Type);
+    --  Print the fix node
+    --
+    --  {
+    --    description: {<Message>},
+    --    artifactChanges: [<ArtifactChange>]
+    --  }
+ 
+    procedure Print_Fixes (E_Msg : Error_Msg_Object);
+    --  Print the fixes node
+    --
+    --  "fixes": [
+    --    <Fix>,
+    --    ...
+    --  ]
+ 
+    procedure Print_Invocations;
+    --  Print an invocations node that consists of
+    --  * a single invocation node that consists of:
+    --    * commandLine
+    --    * executionSuccessful
+    --
+    --  "invocations": [
+    --    {
+    --      "commandLine": <command line arguments provided to the GNAT FE>,
+    --      "executionSuccessful": ["true"|"false"],
+    --    }
+    --  ]
+ 
+    procedure Print_Artifact_Change (A : Artifact_Change);
+    --  Print an ArtifactChange node
+    --
+    --  {
+    --    artifactLocation: {<ArtifactLocation>},
+    --    replacements: [<Replacements>]
+    --  }
+ 
+    procedure Print_Artifact_Location (Sfile : Source_File_Index);
+    --  Print an artifactLocation node
+    --
+    --   "artifactLocation": {
+    --     "uri": <File_Name>,
+    --     "uriBaseId": "PWD"
+    --   }
+ 
+    procedure Print_Location (Loc : Labeled_Span_Type; Msg : String_Ptr);
+    --  Print a location node that consists of
+    --  * an optional message node
+    --  * a physicalLocation node
+    --    * ArtifactLocation node that consists of the file name
+    --    * Region node that consists of the start and end positions of the span
+    --
+    --  {
+    --    "message": {
+    --      "text": <Msg>
+    --    },
+    --    "physicalLocation": {
+    --      "artifactLocation": {
+    --        "uri": <File_Name (Loc)>
+    --      },
+    --      "region": {
+    --        "startLine": <Line(Loc.Fst)>,
+    --        "startColumn": <Col(Loc.Fst)>,
+    --        "endLine": <Line(Loc.Lst)>,
+    --        "endColumn": Col(Loc.Lst)>
+    --      }
+    --    }
+    --  }
+ 
+    procedure Print_Locations (E_Msg : Error_Msg_Object);
+    --  Print a locations node that consists of multiple location nodes. However
+    --  typically just one location for the primary span of the diagnostic.
+    --
+    --   "locations": [
+    --      <Location (Primary_Span (Diag))>
+    --   ],
+ 
+    procedure Print_Message (Text : String; Name : String := N_MESSAGE);
+    --  Print a SARIF message node.
+    --
+    --  There are many message type nodes in the SARIF report however they can
+    --  have a different node <Name>.
+    --
+    --  <Name>: {
+    --    "text": <text>
+    --  },
+ 
+    procedure Print_Original_Uri_Base_Ids;
+    --  Print the originalUriBaseIds that holds the PWD value
+    --
+    --  "originalUriBaseIds": {
+    --    "PWD": {
+    --      "uri": "<current_working_directory>"
+    --    }
+    --  },
+ 
+    procedure Print_Related_Locations (E_Msg : Error_Msg_Object);
+    --  Print a relatedLocations node that consists of multiple location nodes.
+    --  Related locations are the non-primary spans of the diagnostic and the
+    --  primary locations of sub-diagnostics.
+    --
+    --   "relatedLocations": [
+    --      <Location (Diag.Loc)>
+    --   ],
+ 
+    procedure Print_Region
+      (Start_Line : Int;
+       Start_Col  : Int;
+       End_Line   : Int;
+       End_Col    : Int;
+       Name       : String := N_REGION);
+    --  Print a region node.
+    --
+    --  More specifically a text region node that specifies the textual
+    --  location of the region. Note that in SARIF there are also binary
+    --  regions.
+    --
+    --   "<Name>": {
+    --     "startLine": Start_Line,
+    --     "startColumn": Start_Col,
+    --     "endLine": End_Line,
+    --     "endColumn": End_Col + 1
+    --   }
+    --
+    --  Note that there are many types of nodes that can have a region type,
+    --  but have a different node name.
+    --
+    --  The end column is defined differently in the SARIF report than it is
+    --  for the spans within GNAT. Internally we consider the end column of a
+    --  span to be the last character of the span.
+    --
+    --  However in SARIF the end column is defined as:
+    --  "The column number of the character following the end of the region"
+    --
+    --  This method assumes that the End_Col passed to this procedure is using
+    --  the GNAT span definition and we amend the endColumn value so that it
+    --  matches the SARIF definition.
+ 
+    procedure Print_Result (E_Msg : Error_Msg_Object);
+    --   {
+    --     "ruleId": <Diag.Id>,
+    --     "level": <Diag.Kind>,
+    --     "message": {
+    --       "text": <Diag.Message>
+    --     },
+    --     "locations": [<Primary_Location>],
+    --     "relatedLocations": [<Secondary_Locations>]
+    --  },
+ 
+    procedure Print_Results;
+    --  Print a results node that consists of multiple result nodes for each
+    --  diagnostic instance.
+    --
+    --   "results": [
+    --     <Result (Diag)>
+    --   ]
+ 
+    procedure Print_Rule (E : Error_Msg_Object);
+    --  Print a rule node that consists of the following attributes:
+    --  * ruleId
+    --  * name
+    --
+    --  {
+    --    "id": <Diag.Id>,
+    --    "name": <Human_Id(Diag)>
+    --  },
+ 
+    procedure Print_Rules;
+    --  Print a rules node that consists of multiple rule nodes.
+    --  Rules are considered to be a set of unique diagnostics with the unique
+    --  id-s.
+    --
+    --   "rules": [
+    --     <Rule (Diag)>
+    --   ]
+ 
+    procedure Print_Runs;
+    --  Print a runs node that can consist of multiple run nodes.
+    --  However for our report it consists of a single run that consists of
+    --  * a tool node
+    --  * a results node
+    --
+    --   {
+    --     "tool": { <Tool (Diags)> },
+    --     "results": [<Results (Diags)>]
+    --   }
+ 
+    procedure Print_Tool;
+    --  Print a tool node that consists of
+    --  * a driver node that consists of:
+    --    * name
+    --    * version
+    --    * rules
+    --
+    --  "tool": {
+    --    "driver": {
+    --      "name": "GNAT",
+    --      "version": <GNAT_Version>,
+    --      "rules": [<Rules (Diags)>]
+    --    }
+    --  }
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Artifact_Change) is
+    begin
+       Edit_Lists.Destroy (Elem.Replacements);
+    end Destroy;
+ 
+    --------------------------
+    -- Get_Artifact_Changes --
+    --------------------------
+ 
+    function Get_Artifact_Changes (Fix : Fix_Type) return Artifact_Change_List
+    is
+       procedure Insert (Changes : Artifact_Change_List; E : Edit_Type);
+ 
+       ------------
+       -- Insert --
+       ------------
+ 
+       procedure Insert (Changes : Artifact_Change_List; E : Edit_Type) is
+          A : Artifact_Change;
+ 
+          It : Artifact_Change_Lists.Iterator :=
+            Artifact_Change_Lists.Iterate (Changes);
+       begin
+          while Artifact_Change_Lists.Has_Next (It) loop
+             Artifact_Change_Lists.Next (It, A);
+ 
+             if A.File_Index = Get_Source_File_Index (E.Span.Ptr) then
+                Edit_Lists.Append (A.Replacements, E);
+                return;
+             end if;
+          end loop;
+ 
+          declare
+             Replacements : constant Edit_List := Edit_Lists.Create;
+          begin
+             Edit_Lists.Append (Replacements, E);
+             Artifact_Change_Lists.Append
+               (Changes,
+               (File_Index    => Get_Source_File_Index (E.Span.Ptr),
+                 Replacements => Replacements));
+          end;
+       end Insert;
+ 
+       Changes : constant Artifact_Change_List := Artifact_Change_Lists.Create;
+ 
+       E : Edit_Type;
+ 
+       It : Edit_Id;
+ 
+       --  Start of processing for Get_Artifact_Changes
+ 
+    begin
+       It := Fix.Edits;
+ 
+       while It /= No_Edit loop
+          E := Edits.Table (It);
+ 
+          Insert (Changes, E);
+ 
+          It := E.Next;
+       end loop;
+ 
+       return Changes;
+    end Get_Artifact_Changes;
+ 
+    ----------------------
+    -- Get_Unique_Rules --
+    ----------------------
+ 
+    function Get_Unique_Rules return Error_Msg_List is
+       use Error_Msg_Lists;
+ 
+       procedure Insert (Rules : Error_Msg_List; E : Error_Msg_Object);
+ 
+       ------------
+       -- Insert --
+       ------------
+ 
+       procedure Insert (Rules : Error_Msg_List; E : Error_Msg_Object) is
+          It : Iterator := Iterate (Rules);
+          R  : Error_Msg_Object;
+       begin
+          while Has_Next (It) loop
+             Next (It, R);
+ 
+             if R.Id = E.Id then
+                return;
+             elsif R.Id > E.Id then
+                Insert_Before (Rules, R, E);
+                return;
+             end if;
+          end loop;
+ 
+          Append (Rules, E);
+       end Insert;
+ 
+       Unique_Rules : constant Error_Msg_List := Create;
+ 
+       E : Error_Msg_Id;
+ 
+       --  Start of processing for Get_Unique_Rules
+ 
+    begin
+       E := First_Error_Msg;
+       while E /= No_Error_Msg loop
+          Insert (Unique_Rules, Errors.Table (E));
+ 
+          Next_Error_Msg (E);
+       end loop;
+ 
+       return Unique_Rules;
+    end Get_Unique_Rules;
+ 
+    ---------------------------
+    -- Print_Artifact_Change --
+    ---------------------------
+ 
+    procedure Print_Artifact_Change (A : Artifact_Change) is
+       use Edit_Lists;
+       E    : Edit_Type;
+       E_It : Iterator;
+ 
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print artifactLocation
+ 
+       Print_Artifact_Location (A.File_Index);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Str ("""" & N_REPLACEMENTS & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       E_It := Iterate (A.Replacements);
+ 
+       while Has_Next (E_It) loop
+          Next (E_It, E);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Replacement (E);
+       end loop;
+ 
+       --  End replacements
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       --  End artifactChange
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Artifact_Change;
+ 
+    -----------------------------
+    -- Print_Artifact_Location --
+    -----------------------------
+ 
+    procedure Print_Artifact_Location (Sfile : Source_File_Index) is
+       Full_Name : constant String := Get_Name_String (Full_Ref_Name (Sfile));
+    begin
+       Write_Str ("""" & N_ARTIFACT_LOCATION & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       if System.OS_Lib.Is_Absolute_Path (Full_Name) then
+          declare
+             Abs_Name : constant String :=
+               System.OS_Lib.Normalize_Pathname
+                 (Name => Full_Name, Resolve_Links => False);
+          begin
+             --  We cannot create relative paths between different drives on
+             --  Windows. If the path is on a different drive than the PWD print
+             --  the absolute path in the URI and omit the baseUriId attribute.
+ 
+             if Osint.On_Windows
+               and then Abs_Name (Abs_Name'First) =
+                 Current_Dir (Current_Dir'First)
+             then
+                Write_String_Attribute (N_URI, To_File_Uri (Abs_Name));
+             else
+                Write_String_Attribute
+                  (N_URI, To_File_Uri (Relative_Path (Abs_Name, Current_Dir)));
+ 
+                Write_Char (',');
+                NL_And_Indent;
+ 
+                Write_String_Attribute (N_URI_BASE_ID, URI_Base_Id_Name);
+             end if;
+          end;
+       else
+          --  If the path was not absolute it was given relative to the
+          --  uriBaseId.
+ 
+          Write_String_Attribute (N_URI, To_File_Uri (Full_Name));
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Write_String_Attribute (N_URI_BASE_ID, URI_Base_Id_Name);
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Artifact_Location;
+ 
+    -----------------------
+    -- Print_Replacement --
+    -----------------------
+ 
+    procedure Print_Replacement (Replacement : Edit_Type) is
+       --  Span start positions
+       Fst      : constant Source_Ptr := Replacement.Span.First;
+       Line_Fst : constant Int        := Int (Get_Physical_Line_Number (Fst));
+       Col_Fst  : constant Int        := Int (Get_Column_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Replacement.Span.Last;
+       Line_Lst : constant Int        := Int (Get_Physical_Line_Number (Lst));
+       Col_Lst  : constant Int        := Int (Get_Column_Number (Lst));
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print deletedRegion
+ 
+       Print_Region
+         (Start_Line => Line_Fst,
+          Start_Col  => Col_Fst,
+          End_Line   => Line_Lst,
+          End_Col    => Col_Lst,
+          Name       => N_DELETED_REGION);
+ 
+       if Replacement.Text /= null then
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Print_Message (Replacement.Text.all, N_INSERTED_CONTENT);
+       end if;
+ 
+       --  End replacement
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Replacement;
+ 
+    ---------------
+    -- Print_Fix --
+    ---------------
+ 
+    procedure Print_Fix (Fix : Fix_Type) is
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print the message if the location has one
+ 
+       if Fix.Description /= null then
+          Print_Message (Fix.Description.all, N_DESCRIPTION);
+ 
+          Write_Char (',');
+          NL_And_Indent;
+       end if;
+ 
+       declare
+          use Artifact_Change_Lists;
+          Changes : Artifact_Change_List := Get_Artifact_Changes (Fix);
+          A       : Artifact_Change;
+          A_It    : Iterator             := Iterate (Changes);
+       begin
+          Write_Str ("""" & N_ARTIFACT_CHANGES & """" & ": " & "[");
+          Begin_Block;
+ 
+          while Has_Next (A_It) loop
+             Next (A_It, A);
+ 
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+ 
+             Print_Artifact_Change (A);
+          end loop;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char (']');
+ 
+          Destroy (Changes);
+       end;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Fix;
+ 
+    -----------------
+    -- Print_Fixes --
+    -----------------
+ 
+    procedure Print_Fixes (E_Msg : Error_Msg_Object) is
+       F    : Fix_Type;
+       F_It : Fix_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_FIXES & """" & ": " & "[");
+       Begin_Block;
+ 
+       F_It := E_Msg.Fixes;
+       while F_It /= No_Fix loop
+          F := Fixes.Table (F_It);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Fix (F);
+ 
+          F_It := F.Next;
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Fixes;
+ 
+    -----------------------
+    -- Print_Invocations --
+    -----------------------
+ 
+    procedure Print_Invocations is
+ 
+       function Compose_Command_Line return String;
+       --  Composes the original command line from the parsed main file name and
+       --  relevant compilation switches
+ 
+       function Compose_Command_Line return String is
+          Buffer : Bounded_String;
+       begin
+          Find_Program_Name;
+          Append (Buffer, Name_Buffer (1 .. Name_Len));
+          Append (Buffer, ' ');
+          Append (Buffer, Get_First_Main_File_Name);
+          for I in 1 .. Compilation_Switches_Last loop
+             declare
+                Switch : constant String := Get_Compilation_Switch (I).all;
+             begin
+                if Buffer.Length + Switch'Length + 1 <= Buffer.Max_Length then
+                   Append (Buffer, ' ' & Switch);
+                end if;
+             end;
+          end loop;
+ 
+          return +Buffer;
+       end Compose_Command_Line;
+ 
+    begin
+       Write_Str ("""" & N_INVOCATIONS & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print commandLine
+ 
+       Write_String_Attribute (N_COMMAND_LINE, Compose_Command_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print executionSuccessful
+ 
+       Write_Boolean_Attribute (N_EXECUTION_SUCCESSFUL, not Compilation_Errors);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Invocations;
+ 
+    ------------------
+    -- Print_Region --
+    ------------------
+ 
+    procedure Print_Region
+      (Start_Line : Int;
+       Start_Col  : Int;
+       End_Line   : Int;
+        End_Col   : Int;
+       Name       : String := N_REGION)
+    is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Int_Attribute (N_START_LINE, Start_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Int_Attribute (N_START_COLUMN, Start_Col);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Int_Attribute (N_END_LINE, End_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Convert the end of the span to the definition of the endColumn
+       --  for a SARIF region.
+ 
+       Write_Int_Attribute (N_END_COLUMN, End_Col + 1);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Region;
+ 
+    --------------------
+    -- Print_Location --
+    --------------------
+ 
+    procedure Print_Location (Loc : Labeled_Span_Type; Msg : String_Ptr) is
+ 
+       --  Span start positions
+       Fst      : constant Source_Ptr := Loc.Span.First;
+       Line_Fst : constant Int        := Int (Get_Physical_Line_Number (Fst));
+       Col_Fst  : constant Int        := Int (Get_Column_Number (Fst));
+ 
+       --  Span end positions
+       Lst      : constant Source_Ptr := Loc.Span.Last;
+       Line_Lst : constant Int        := Int (Get_Physical_Line_Number (Lst));
+       Col_Lst  : constant Int        := Int (Get_Column_Number (Lst));
+ 
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print the message if the location has one
+ 
+       if Msg /= null then
+          Print_Message (Msg.all);
+ 
+          Write_Char (',');
+          NL_And_Indent;
+       end if;
+ 
+       Write_Str ("""" & N_PHYSICAL_LOCATION & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print artifactLocation
+ 
+       Print_Artifact_Location (Get_Source_File_Index (Loc.Span.Ptr));
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print region
+ 
+       Print_Region
+         (Start_Line => Line_Fst,
+          Start_Col  => Col_Fst,
+          End_Line   => Line_Lst,
+          End_Col    => Col_Lst);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Location;
+ 
+    ---------------------
+    -- Print_Locations --
+    ---------------------
+ 
+    procedure Print_Locations (E_Msg : Error_Msg_Object) is
+       Loc : Labeled_Span_Type;
+       It  : Labeled_Span_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_LOCATIONS & """" & ": " & "[");
+       Begin_Block;
+ 
+       It := E_Msg.Locations;
+       while It /= No_Labeled_Span loop
+          Loc := Locations.Table (It);
+ 
+          --  Only the primary span is considered as the main location other
+          --  spans are considered related locations
+ 
+          if Loc.Is_Primary then
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+             Print_Location (Loc, Loc.Label);
+          end if;
+ 
+          It := Loc.Next;
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Locations;
+ 
+    -------------------
+    -- Print_Message --
+    -------------------
+ 
+    procedure Print_Message (Text : String; Name : String := N_MESSAGE) is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+       Write_String_Attribute (N_TEXT, Text);
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Message;
+ 
+    ---------------------------------
+    -- Print_Original_Uri_Base_Ids --
+    ---------------------------------
+ 
+    procedure Print_Original_Uri_Base_Ids is
+    begin
+       Write_Str ("""" & N_ORIGINAL_URI_BASE_IDS & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & URI_Base_Id_Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_URI, To_File_Uri (Current_Dir));
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Original_Uri_Base_Ids;
+ 
+    -----------------------------
+    -- Print_Related_Locations --
+    -----------------------------
+ 
+    procedure Print_Related_Locations (E_Msg : Error_Msg_Object) is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Id;
+ 
+       Sub    : Error_Msg_Object;
+       Sub_It : Error_Msg_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_RELATED_LOCATIONS & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Related locations are the non-primary spans of the diagnostic
+ 
+       Loc_It := E_Msg.Locations;
+       while Loc_It /= No_Labeled_Span loop
+          Loc := Locations.Table (Loc_It);
+ 
+          --  Non-primary spans are considered related locations
+ 
+          if not Loc.Is_Primary then
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+ 
+             NL_And_Indent;
+             Print_Location (Loc, Loc.Label);
+          end if;
+          Loc_It := Loc.Next;
+       end loop;
+ 
+       --  And the sub-diagnostic locations
+ 
+       Sub_It := E_Msg.Next;
+       while Sub_It /= No_Error_Msg and then Errors.Table (Sub_It).Msg_Cont loop
+          Sub := Errors.Table (Sub_It);
+ 
+          declare
+             Found : Boolean := False;
+ 
+             Prim_Loc_Id : Labeled_Span_Id;
+          begin
+             Prim_Loc_Id := Primary_Location (Sub);
+ 
+             if Prim_Loc_Id /= No_Labeled_Span then
+                Found := True;
+             else
+                Prim_Loc_Id := Primary_Location (E_Msg);
+                Found       := True;
+             end if;
+ 
+             --  For mapping sub-diagnostics to related locations we have to
+             --  make some compromises in details.
+             --
+             --  Firstly we only make one entry that is for the primary span
+             --  of the sub-diagnostic.
+             --
+             --  Secondly this span can also have a label. However this
+             --  pattern is not advised and by default we include the message
+             --  of the sub-diagnostic as the message in location node since
+             --  it should have more information.
+ 
+             if Found then
+                if First then
+                   First := False;
+                else
+                   Write_Char (',');
+                end if;
+                NL_And_Indent;
+                Print_Location (Locations.Table (Prim_Loc_Id), Sub.Text);
+             end if;
+          end;
+ 
+          Next_Continuation_Msg (Sub_It);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Related_Locations;
+ 
+    ------------------
+    -- Print_Result --
+    ------------------
+ 
+    procedure Print_Result (E_Msg : Error_Msg_Object) is
+ 
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print ruleId
+ 
+       Write_String_Attribute (N_RULE_ID, "[" & To_String (E_Msg.Id) & "]");
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print level
+ 
+       Write_String_Attribute (N_LEVEL, Kind_To_String (E_Msg));
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print message
+ 
+       Print_Message (E_Msg.Text.all);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print locations
+ 
+       Print_Locations (E_Msg);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print related locations
+ 
+       Print_Related_Locations (E_Msg);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print fixes
+ 
+       Print_Fixes (E_Msg);
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+    end Print_Result;
+ 
+    -------------------
+    -- Print_Results --
+    -------------------
+ 
+    procedure Print_Results is
+       E : Error_Msg_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_RESULTS & """" & ": " & "[");
+       Begin_Block;
+ 
+       E := First_Error_Msg;
+       while E /= No_Error_Msg loop
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+ 
+          Print_Result (Errors.Table (E));
+ 
+          Next_Error_Msg (E);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Results;
+ 
+    ----------------
+    -- Print_Rule --
+    ----------------
+ 
+    procedure Print_Rule (E : Error_Msg_Object) is
+       Human_Id : constant String_Ptr := Get_Human_Id (E);
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_ID, "[" & To_String (E.Id) & "]");
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       if Human_Id = null then
+          Write_String_Attribute (N_NAME, "Uncategorized_Diagnostic");
+       else
+          Write_String_Attribute (N_NAME, Human_Id.all);
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Rule;
+ 
+    -----------------
+    -- Print_Rules --
+    -----------------
+ 
+    procedure Print_Rules is
+       use Error_Msg_Lists;
+       R     : Error_Msg_Object;
+       Rules : Error_Msg_List := Get_Unique_Rules;
+       It    : Iterator       := Iterate (Rules);
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_RULES & """" & ": " & "[");
+       Begin_Block;
+ 
+       while Has_Next (It) loop
+          Next (It, R);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Rule (R);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       Error_Msg_Lists.Destroy (Rules);
+    end Print_Rules;
+ 
+    ----------------
+    -- Print_Tool --
+    ----------------
+ 
+    procedure Print_Tool is
+ 
+    begin
+       Write_Str ("""" & N_TOOL & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  --  Attributes of tool
+ 
+       Write_Str ("""" & N_DRIVER & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Attributes of tool.driver
+ 
+       Write_String_Attribute (N_NAME, "GNAT");
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_VERSION, Gnat_Version_String);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Rules;
+ 
+       --  End of tool.driver
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+ 
+       --  End of tool
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+    end Print_Tool;
+ 
+    ----------------
+    -- Print_Runs --
+    ----------------
+ 
+    procedure Print_Runs is
+ 
+    begin
+       Write_Str ("""" & N_RUNS & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Runs can consist of multiple "run"-s. However the GNAT SARIF report
+       --  only has one.
+ 
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  A run consists of a tool
+ 
+       Print_Tool;
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  A run consists of an invocation
+       Print_Invocations;
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Original_Uri_Base_Ids;
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  A run consists of results
+ 
+       Print_Results;
+ 
+       --  End of run
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       --  End of runs
+ 
+       Write_Char (']');
+    end Print_Runs;
+ 
+    ------------------------
+    -- Print_SARIF_Report --
+    ------------------------
+ 
+    procedure Print_SARIF_Report is
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_SCHEMA, SARIF_Schema);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_VERSION, SARIF_Version);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Runs;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_SARIF_Report;
+ 
+ end Erroutc.SARIF_Emitter;
diff -Nrcpad gcc-16-20250601/gcc/ada/erroutc-sarif_emitter.ads gcc-16-20250608/gcc/ada/erroutc-sarif_emitter.ads
*** gcc-16-20250601/gcc/ada/erroutc-sarif_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/erroutc-sarif_emitter.ads	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,29 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --              D I A G N O S T I C S . S A R I F _ E M I T T E R           --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package Erroutc.SARIF_Emitter is
+ 
+    procedure Print_SARIF_Report;
+ end Erroutc.SARIF_Emitter;
diff -Nrcpad gcc-16-20250601/gcc/ada/erroutc.adb gcc-16-20250608/gcc/ada/erroutc.adb
*** gcc-16-20250601/gcc/ada/erroutc.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/erroutc.adb	Sun Jun  8 22:32:15 2025
*************** package body Erroutc is
*** 491,496 ****
--- 491,624 ----
          E_Msg.Kind in Warning | Info | Style and then E_Msg.Warn_Chr /= "  ";
     end Has_Switch_Tag;
  
+    --------------------
+    -- Next_Error_Msg --
+    --------------------
+ 
+    procedure Next_Error_Msg (E : in out Error_Msg_Id) is
+    begin
+       loop
+          E := Errors.Table (E).Next;
+          exit when E = No_Error_Msg;
+          exit when not Errors.Table (E).Deleted
+            and then not Errors.Table (E).Msg_Cont;
+       end loop;
+    end Next_Error_Msg;
+ 
+    ---------------------------
+    -- Next_Continuation_Msg --
+    ---------------------------
+ 
+    procedure Next_Continuation_Msg (E : in out Error_Msg_Id) is
+    begin
+       E := Errors.Table (E).Next;
+ 
+       if E = No_Error_Msg or else not Errors.Table (E).Msg_Cont then
+          E := No_Error_Msg;
+       end if;
+    end Next_Continuation_Msg;
+ 
+    ----------------------
+    -- Primary_Location --
+    ----------------------
+ 
+    function Primary_Location (E : Error_Msg_Object) return Labeled_Span_Id is
+       L : Labeled_Span_Id;
+    begin
+       L := E.Locations;
+       while L /= No_Labeled_Span loop
+          if Locations.Table (L).Is_Primary then
+             return L;
+          end if;
+ 
+          L := Locations.Table (L).Next;
+       end loop;
+ 
+       return No_Labeled_Span;
+    end Primary_Location;
+ 
+    ------------------
+    -- Get_Human_Id --
+    ------------------
+ 
+    function Get_Human_Id (E : Error_Msg_Object) return String_Ptr is
+    begin
+       if E.Switch = No_Switch_Id then
+          return Diagnostic_Entries (E.Id).Human_Id;
+       else
+          return Get_Switch (E).Human_Id;
+       end if;
+    end Get_Human_Id;
+ 
+    --------------------
+    -- Get_Doc_Switch --
+    --------------------
+ 
+    function Get_Doc_Switch (E : Error_Msg_Object) return String is
+    begin
+       if Warning_Doc_Switch
+         and then E.Warn_Chr /= "  "
+         and then E.Kind in Info
+           | Style
+           | Warning
+       then
+          if E.Switch = No_Switch_Id then
+             if E.Warn_Chr = "* " then
+                return "[restriction warning]";
+ 
+                --  Info messages can have a switch tag but they should not have
+                --  a default switch tag.
+ 
+             elsif E.Kind /= Info then
+ 
+                --  For Default_Warning
+ 
+                return "[enabled by default]";
+             end if;
+          else
+             declare
+                S : constant Switch_Type := Get_Switch (E);
+             begin
+                return "[-" & S.Short_Name.all & "]";
+             end;
+          end if;
+       end if;
+ 
+       return "";
+    end Get_Doc_Switch;
+ 
+    ----------------
+    -- Get_Switch --
+    ----------------
+ 
+    function Get_Switch (E : Error_Msg_Object) return Switch_Type is
+    begin
+       return Get_Switch (E.Switch);
+    end Get_Switch;
+ 
+    -------------------
+    -- Get_Switch_Id --
+    -------------------
+ 
+    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id is
+    begin
+       return Get_Switch_Id (E.Kind, E.Warn_Chr);
+    end Get_Switch_Id;
+ 
+    function Get_Switch_Id
+      (Kind : Error_Msg_Type; Warn_Chr : String) return Switch_Id is
+    begin
+       if Warn_Chr = "$ " then
+          return Get_Switch_Id ("gnatel");
+       elsif Kind in Warning | Info then
+          return Get_Switch_Id ("gnatw" & Warn_Chr);
+       elsif Kind = Style then
+          return Get_Switch_Id ("gnaty" & Warn_Chr);
+       else
+          return No_Switch_Id;
+       end if;
+    end Get_Switch_Id;
+ 
     -------------
     -- Matches --
     -------------
*************** package body Erroutc is
*** 752,758 ****
     -- Output_Text_Within --
     ------------------------
  
!    procedure Output_Text_Within (Txt : String_Ptr; Line_Length : Nat) is
        Offs : constant Nat := Column - 1;
        --  Offset to start of message, used for continuations
  
--- 880,886 ----
     -- Output_Text_Within --
     ------------------------
  
!    procedure Output_Text_Within (Txt : String; Line_Length : Nat) is
        Offs : constant Nat := Column - 1;
        --  Offset to start of message, used for continuations
  
*************** package body Erroutc is
*** 869,966 ****
  
     procedure Output_Msg_Text (E : Error_Msg_Id) is
  
!       E_Msg : Error_Msg_Object renames Errors.Table (E);
!       Text  : constant String_Ptr := E_Msg.Text;
!       Tag   : constant String := Get_Warning_Tag (E);
!       Txt   : String_Ptr;
! 
!       Line_Length : constant Nat :=
          (if Error_Msg_Line_Length = 0 then Nat'Last
           else Error_Msg_Line_Length);
  
     begin
!       --  Postfix warning tag to message if needed
! 
!       if Tag /= "" and then Warning_Doc_Switch then
!          Txt := new String'(Text.all & ' ' & Tag);
!       else
!          Txt := Text;
!       end if;
! 
!       --  If -gnatdF is used, continuation messages follow the main message
!       --  with only an indentation of two space characters, without repeating
!       --  any prefix.
! 
!       if Debug_Flag_FF and then E_Msg.Msg_Cont then
!          null;
! 
!       --  For info messages, prefix message with "info: "
! 
!       elsif E_Msg.Kind = Info then
!          Txt := new String'(SGR_Note & "info: " & SGR_Reset & Txt.all);
! 
!       --  Warning treated as error
! 
!       elsif E_Msg.Warn_Err then
  
!       --  We prefix with "error:" rather than warning: and postfix
!       --  [warning-as-error] at the end.
  
           Warnings_Treated_As_Errors := Warnings_Treated_As_Errors + 1;
-          Txt := new String'(SGR_Error & "error: " & SGR_Reset
-                             & Txt.all & " [warning-as-error]");
- 
-       --  Normal warning, prefix with "warning: "
- 
-       elsif E_Msg.Kind = Warning then
-          Txt := new String'(SGR_Warning & "warning: " & SGR_Reset & Txt.all);
- 
-       --  No prefix needed for style message, "(style)" is there already
- 
-       elsif E_Msg.Kind = Style then
-          if Txt (Txt'First .. Txt'First + 6) = "(style)" then
-             Txt := new String'(SGR_Warning & "(style)" & SGR_Reset
-                                & Txt (Txt'First + 7 .. Txt'Last));
-          end if;
- 
-       --  No prefix needed for check message, severity is there already
  
!       elsif E_Msg.Kind in High_Check | Medium_Check | Low_Check then
  
!          --  The message format is "severity: ..."
!          --
!          --  Enclose the severity with an SGR control string if requested
  
!          if Use_SGR_Control then
!             declare
!                Msg   : String renames Text.all;
!                Colon : Natural := 0;
!             begin
!                --  Find first colon
  
!                for J in Msg'Range loop
!                   if Msg (J) = ':' then
!                      Colon := J;
!                      exit;
!                   end if;
!                end loop;
  
!                pragma Assert (Colon > 0);
  
!                Txt := new String'(SGR_Error
!                                   & Msg (Msg'First .. Colon)
!                                   & SGR_Reset
!                                   & Msg (Colon + 1 .. Msg'Last));
!             end;
!          end if;
  
!       --  All other cases, add "error: " if unique error tag set
  
!       elsif Opt.Unique_Error_Tag then
!          Txt := new String'(SGR_Error & "error: " & SGR_Reset & Txt.all);
        end if;
  
!       Output_Text_Within (Txt, Line_Length);
     end Output_Msg_Text;
  
     ---------------------
--- 997,1058 ----
  
     procedure Output_Msg_Text (E : Error_Msg_Id) is
  
!       E_Msg       : Error_Msg_Object renames Errors.Table (E);
!       Text        : constant String_Ptr := E_Msg.Text;
!       Tag         : constant String     := Get_Warning_Tag (E);
!       SGR_Code    : constant String     := Get_SGR_Code (E_Msg);
!       Kind_Prefix : constant String     :=
!         (if E_Msg.Kind = Style then Style_Prefix
!          else Kind_To_String (E_Msg) & ": ");
!       Buf         : Bounded_String (Max_Msg_Length);
!       Line_Length : constant Nat        :=
          (if Error_Msg_Line_Length = 0 then Nat'Last
           else Error_Msg_Line_Length);
  
     begin
!       --  Prefix with "error:" rather than warning.
!       --  Additionally include the style suffix when needed.
  
!       if E_Msg.Warn_Err then
  
           Warnings_Treated_As_Errors := Warnings_Treated_As_Errors + 1;
  
!          Append
!            (Buf,
!             SGR_Error & "error: " & SGR_Reset &
!             (if E_Msg.Kind = Style then Style_Prefix else ""));
  
!       --  Print the message kind prefix
!       --  * Info/Style/Warning messages
!       --  * Check messages that are not continuations in the pretty printer
!       --  * Error messages when error tags are allowed
  
!       elsif E_Msg.Kind in Info | Style | Warning
!         or else
!         (E_Msg.Kind in High_Check | Medium_Check | Low_Check
!          and then not (E_Msg.Msg_Cont and then Debug_Flag_FF))
!         or else
!         (E_Msg.Kind in Error | Non_Serious_Error
!          and then Opt.Unique_Error_Tag)
!       then
!          Append (Buf, SGR_Code & Kind_Prefix & SGR_Reset);
!       end if;
  
!       Append (Buf, Text.all);
  
!       --  Postfix warning tag to message if needed
  
!       if Tag /= "" and then Warning_Doc_Switch then
!          Append (Buf, ' ' & Tag);
!       end if;
  
!       --  Postfix [warning-as-error] at the end
  
!       if E_Msg.Warn_Err then
!          Append (Buf, " [warning-as-error]");
        end if;
  
!       Output_Text_Within (To_String (Buf), Line_Length);
     end Output_Msg_Text;
  
     ---------------------
*************** package body Erroutc is
*** 1056,1091 ****
  
           --  Check style message
  
!          if Msg'Length > 7
!            and then Msg (Msg'First .. Msg'First + 6) = "(style)"
           then
              Error_Msg_Kind := Style;
  
              --  Check info message
  
!          elsif Msg'Length > 6
!            and then Msg (Msg'First .. Msg'First + 5) = "info: "
           then
              Error_Msg_Kind := Info;
  
              --  Check high check message
  
!          elsif Msg'Length > 6
!            and then Msg (Msg'First .. Msg'First + 5) = "high: "
           then
              Error_Msg_Kind := High_Check;
  
              --  Check medium check message
  
!          elsif Msg'Length > 8
!            and then Msg (Msg'First .. Msg'First + 7) = "medium: "
           then
              Error_Msg_Kind := Medium_Check;
  
              --  Check low check message
  
!          elsif Msg'Length > 5
!            and then Msg (Msg'First .. Msg'First + 4) = "low: "
           then
              Error_Msg_Kind := Low_Check;
           end if;
--- 1148,1193 ----
  
           --  Check style message
  
!          if Msg'Length > Style_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Style_Prefix'Length - 1) =
!              Style_Prefix
           then
              Error_Msg_Kind := Style;
  
              --  Check info message
  
!          elsif Msg'Length > Info_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Info_Prefix'Length - 1) =
!              Info_Prefix
           then
              Error_Msg_Kind := Info;
  
              --  Check high check message
  
!          elsif Msg'Length > High_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + High_Prefix'Length - 1) =
!              High_Prefix
           then
              Error_Msg_Kind := High_Check;
  
              --  Check medium check message
  
!          elsif Msg'Length > Medium_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Medium_Prefix'Length - 1) =
!              Medium_Prefix
           then
              Error_Msg_Kind := Medium_Check;
  
              --  Check low check message
  
!          elsif Msg'Length > Low_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Low_Prefix'Length - 1) =
!              Low_Prefix
           then
              Error_Msg_Kind := Low_Check;
           end if;
diff -Nrcpad gcc-16-20250601/gcc/ada/erroutc.ads gcc-16-20250608/gcc/ada/erroutc.ads
*** gcc-16-20250601/gcc/ada/erroutc.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/erroutc.ads	Sun Jun  8 22:32:15 2025
***************
*** 27,32 ****
--- 27,34 ----
  --  reporting packages, including Errout and Prj.Err.
  
  with Table;
+ with Errsw; use Errsw;
+ with Errid; use Errid;
  with Types; use Types;
  
  package Erroutc is
*************** package Erroutc is
*** 177,182 ****
--- 179,262 ----
     --  The following record type and table are used to represent error
     --  messages, with one entry in the table being allocated for each message.
  
+    type Labeled_Span_Id is new Int;
+    No_Labeled_Span : constant Labeled_Span_Id := 0;
+ 
+    type Labeled_Span_Type is record
+       Label : String_Ptr := null;
+       --  Text associated with the span
+ 
+       Span : Source_Span := (others => No_Location);
+       --  Textual region in the source code
+ 
+       Is_Primary : Boolean := True;
+       --  Primary spans are used to indicate the primary location of the
+       --  diagnostic. Typically there should just be one primary span per
+       --  diagnostic.
+       --  Non-primary spans are used to indicate secondary locations and
+       --  typically are formatted in a different way or omitted in some
+       --  contexts.
+ 
+       Is_Region : Boolean := False;
+       --  Regional spans are multiline spans that have a unique way of being
+       --  displayed in the pretty output.
+ 
+       Next : Labeled_Span_Id := No_Labeled_Span;
+ 
+    end record;
+ 
+    No_Labeled_Span_Object : Labeled_Span_Type := (others => <>);
+ 
+    package Locations is new Table.Table (
+      Table_Component_Type => Labeled_Span_Type,
+      Table_Index_Type     => Labeled_Span_Id,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 200,
+      Table_Increment      => 200,
+      Table_Name           => "Location");
+ 
+    type Edit_Id is new Int;
+    No_Edit : constant Edit_Id := 0;
+ 
+    type Edit_Type is record
+       Span : Source_Span;
+       --  Region of the file to be removed
+ 
+       Text : String_Ptr;
+       --  Text to be inserted at the start location of the span
+ 
+       Next : Edit_Id := No_Edit;
+    end record;
+ 
+    package Edits is new Table.Table (
+      Table_Component_Type => Edit_Type,
+      Table_Index_Type     => Edit_Id,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 200,
+      Table_Increment      => 200,
+      Table_Name           => "Edit");
+ 
+    type Fix_Id is new Int;
+    No_Fix : constant Fix_Id := 0;
+ 
+    type Fix_Type is record
+       Description : String_Ptr := null;
+       --  Message describing the fix that will be displayed to the user.
+ 
+       Edits : Edit_Id := No_Edit;
+       --   File changes for the fix.
+ 
+       Next : Fix_Id := No_Fix;
+    end record;
+ 
+    package Fixes is new Table.Table (
+      Table_Component_Type => Fix_Type,
+      Table_Index_Type     => Fix_Id,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 200,
+      Table_Increment      => 200,
+      Table_Name           => "Fix");
+ 
     type Error_Msg_Object is record
        Text : String_Ptr;
        --  Text of error message, fully expanded with all insertions
*************** package Erroutc is
*** 248,253 ****
--- 328,354 ----
        --  in the circuit for deleting duplicate/redundant error messages.
  
        Kind : Error_Msg_Type;
+       --  The kind of the error message. This determines how the message
+       --  should be handled and what kind of prefix should be added before the
+       --  message text.
+ 
+       Switch : Switch_Id := No_Switch_Id;
+       --  Identifier for a given switch that enabled the diagnostic
+ 
+       Id : Diagnostic_Id := No_Diagnostic_Id;
+       --  Unique error code for the given message
+ 
+       Locations : Labeled_Span_Id := No_Labeled_Span;
+       --  Identifier to the first location identified by the error message.
+       --  These locations are marked with an underlying span line and
+       --  optionally given a short label.
+ 
+       Fixes : Fix_Id := No_Fix;
+       --  Identifier to the first fix object for the error message. The fix
+       --  contains a suggestion to prevent the error from being triggered.
+       --  This includes edits that can be made to the source code. An edit
+       --  contians a region of the code that needs to be changed and the new
+       --  text that should be inserted to that region.
     end record;
  
     package Errors is new Table.Table (
*************** package Erroutc is
*** 268,273 ****
--- 369,424 ----
     --  as the physically last entry in the error message table, since messages
     --  are not always inserted in sequence.
  
+    procedure Next_Error_Msg (E : in out Error_Msg_Id);
+    --  Update E to point to the next error message in the list of error
+    --  messages. Skip deleted and continuation messages.
+ 
+    procedure Next_Continuation_Msg (E : in out Error_Msg_Id);
+    --  Update E to point to the next continuation message
+ 
+    function Kind_To_String (E : Error_Msg_Object) return String is
+      (if E.Warn_Err then "error"
+       else
+         (case E.Kind is
+            when Error | Non_Serious_Error => "error",
+            when Warning                   => "warning",
+            when Style                     => "style",
+            when Info                      => "info",
+            when Low_Check                 => "low",
+            when Medium_Check              => "medium",
+            when High_Check                => "high"));
+    --  Returns the name of the error message kind. If it is a warning that has
+    --  been turned to an error then it returns "error".
+ 
+    function Get_Doc_Switch (E : Error_Msg_Object) return String;
+    --  Returns the documentation switch for a given Error_Msg_Object.
+    --
+    --  This either the name of the switch encased in brackets. E.g [-gnatwx].
+    --
+    --  If the Warn_Char is "* " is then it will return [restriction warning].
+    --
+    --  Otherwise for messages without a switch it will return
+    --  [enabled by default] .
+ 
+    function Primary_Location (E : Error_Msg_Object) return Labeled_Span_Id;
+    --  Returns the first Primary Labeled_Span associated with the error
+    --  message. Otherwise it returns No_Labeled_Span.
+ 
+    function Get_Human_Id (E : Error_Msg_Object) return String_Ptr;
+    --  Returns a longer human readable name for the switch associated with the
+    --  error message.
+ 
+    function Get_Switch (E : Error_Msg_Object) return Switch_Type;
+    --  Returns the Switch information for the given error message
+ 
+    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id;
+    --  Returns the Switch information identifier for the given error message
+ 
+    function Get_Switch_Id
+      (Kind : Error_Msg_Type; Warn_Chr : String) return Switch_Id;
+    --  Returns the Switch information identifier based on the error kind and
+    --  the warning character.
+ 
     --------------------------
     -- Warning Mode Control --
     --------------------------
*************** package Erroutc is
*** 422,427 ****
--- 573,586 ----
     function SGR_Locus return String is
       (SGR_Seq (Color_Bold));
  
+    function Get_SGR_Code (E_Msg : Error_Msg_Object) return String is
+      (if E_Msg.Warn_Err then SGR_Error
+       else
+         (case E_Msg.Kind is
+            when Warning | Style => SGR_Warning,
+            when Info => SGR_Note,
+            when others => SGR_Error));
+ 
     -----------------
     -- Subprograms --
     -----------------
*************** package Erroutc is
*** 513,519 ****
     --  splits the line generating multiple lines of output, and in this case
     --  the last line has no terminating end of line character.
  
!    procedure Output_Text_Within (Txt : String_Ptr; Line_Length : Nat);
     --  Output the text in Txt, splitting it into lines of at most the size of
     --  Line_Length.
  
--- 672,678 ----
     --  splits the line generating multiple lines of output, and in this case
     --  the last line has no terminating end of line character.
  
!    procedure Output_Text_Within (Txt : String; Line_Length : Nat);
     --  Output the text in Txt, splitting it into lines of at most the size of
     --  Line_Length.
  
*************** package Erroutc is
*** 549,554 ****
--- 708,721 ----
     --  Note that the call has no effect for continuation messages (those whose
     --  first character is '\') except for the Has_Insertion_Line setting.
  
+    --  Definitions for valid message kind prefixes within error messages.
+ 
+    Info_Prefix   : constant String := "info: ";
+    Low_Prefix    : constant String := "low: ";
+    Medium_Prefix : constant String := "medium: ";
+    High_Prefix   : constant String := "high: ";
+    Style_Prefix  : constant String := "(style) ";
+ 
     procedure Purge_Messages (From : Source_Ptr; To : Source_Ptr);
     --  All error messages whose location is in the range From .. To (not
     --  including the end points) will be deleted from the error listing.
diff -Nrcpad gcc-16-20250601/gcc/ada/errsw.adb gcc-16-20250608/gcc/ada/errsw.adb
*** gcc-16-20250601/gcc/ada/errsw.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/errsw.adb	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,665 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --  D I A G N O S T I C S . D I A G N O S T I C S _ R E P O S I T O R Y     --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with JSON_Utils; use JSON_Utils;
+ with Output;     use Output;
+ 
+ package body Errsw is
+ 
+    Switches : constant array (Switch_Id)
+      of Switch_Type :=
+      (No_Switch_Id            =>
+         (others => <>),
+       gnatwb                  =>
+         (Human_Id          => new String'("Warn_On_Bad_Fixed_Value"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwb"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwc                  =>
+         (Human_Id          => new String'("Constant_Condition_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwc"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwd                  =>
+         --  TODO: is this a subcheck of general gnatwu?
+         (Human_Id          => new String'("Warn_On_Dereference"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwd"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwf                       =>
+         (Human_Id          => new String'("Check_Unreferenced_Formals"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwf"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwg                       =>
+         (Human_Id          => new String'("Warn_On_Unrecognized_Pragma"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwg"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwh                       =>
+         (Human_Id          => new String'("Warn_On_Hiding"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwh"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwi                       =>
+         (Human_Id          => new String'("Implementation_Unit_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwi"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwj                      =>
+         (Human_Id          => new String'("Warn_On_Obsolescent_Feature"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwj"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwk                      =>
+         (Human_Id          => new String'("Warn_On_Constant"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwk"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwl                      =>
+         (Human_Id          => new String'("Elab_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwl"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwm                      =>
+         (Human_Id          => new String'("Warn_On_Modified_Unread"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwm"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwo                      =>
+         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwo"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwp                      =>
+         (Human_Id          => new String'("Ineffective_Inline_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwp"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwq                      =>
+         (Human_Id => new String'("Warn_On_Questionable_Missing_Parens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwq"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwr                      =>
+         (Human_Id          => new String'("Warn_On_Redundant_Constructs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwr"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwt                      =>
+         (Human_Id          => new String'("Warn_On_Deleted_Code"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwt"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwu                      =>
+         (Human_Id          => new String'("Warn_On_Unused_Entities"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwu"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwv                      =>
+         (Human_Id          => new String'("Warn_On_No_Value_Assigned"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwv"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatww                      =>
+         (Human_Id          => new String'("Warn_On_Assumed_Low_Bound"),
+          Status            => Active,
+          Short_Name        => new String'("gnatww"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwx                      =>
+         (Human_Id          => new String'("Warn_On_Export_Import"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwx"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwy                      =>
+         (Human_Id          => new String'("Warn_On_Ada_Compatibility_Issues"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwy"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatwz                      =>
+         (Human_Id          => new String'("Warn_On_Unchecked_Conversion"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwz"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_a                      =>
+         (Human_Id          => new String'("Warn_On_Assertion_Failure"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.a"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_b                      =>
+         (Human_Id          => new String'("Warn_On_Biased_Representation"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.b"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_c                      =>
+         (Human_Id          => new String'("Warn_On_Unrepped_Components"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.c"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_f                      =>
+         (Human_Id          => new String'("Warn_On_Elab_Access"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.f"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_h                      =>
+         (Human_Id          => new String'("Warn_On_Record_Holes"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.h"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_i                      =>
+         (Human_Id          => new String'("Warn_On_Overlap"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.i"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_j                      =>
+         (Human_Id          => new String'("Warn_On_Late_Primitives"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.j"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_k                      =>
+         (Human_Id          => new String'("Warn_On_Standard_Redefinition"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.k"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_l                      =>
+         (Human_Id          => new String'("List_Inherited_Aspects"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.l"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_m                      =>
+         (Human_Id          => new String'("Warn_On_Suspicious_Modulus_Value"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.m"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_n                      =>
+         (Human_Id          => new String'("Warn_On_Atomic_Synchronization"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.n"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_o                      =>
+         (Human_Id          => new String'("Warn_On_All_Unread_Out_Parameters"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.o"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_p                      =>
+         (Human_Id          => new String'("Warn_On_Parameter_Order"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.p"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_q                      =>
+         (Human_Id          => new String'("Warn_On_Questionable_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.q"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_r                      =>
+         (Human_Id          => new String'("Warn_On_Object_Renames_Function"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.r"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_s                      =>
+         (Human_Id          => new String'("Warn_On_Overridden_Size"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.s"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_t                      =>
+         (Human_Id          => new String'("Warn_On_Suspicious_Contract"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.t"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_u                      =>
+         (Human_Id => new String'("Warn_On_Unordered_Enumeration_Type"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.u"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_v                      =>
+         (Human_Id          => new String'("Warn_On_Reverse_Bit_Order"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.v"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_w                      =>
+         (Human_Id          => new String'("Warn_On_Warnings_Off"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.w"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_x                      =>
+         (Human_Id          =>
+           new String'("Warn_No_Exception_Propagation_Active"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.x"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_y                      =>
+         (Human_Id          => new String'("List_Body_Required_Info"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.y"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_dot_z                      =>
+         (Human_Id          => new String'("Warn_On_Size_Alignment"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.z"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_a                      =>
+         (Human_Id          => new String'("Warn_On_Anonymous_Allocators"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_a"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_c                      =>
+         (Human_Id => new String'("Warn_On_Unknown_Compile_Time_Warning"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_c"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_j                      =>
+         (Human_Id => new String'("Warn_On_Non_Dispatching_Primitives"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_j"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_l                      =>
+         (Human_Id => new String'("Warn_On_Inherently_Limited_Types"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_l"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_p                      =>
+         (Human_Id          => new String'("Warn_On_Pedantic_Checks"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_p"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_q                      =>
+         (Human_Id          => new String'("Warn_On_Ignored_Equality"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_q"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_r                      =>
+         (Human_Id          => new String'("Warn_On_Component_Order"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_r"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatw_underscore_s                      =>
+         (Human_Id => new String'("Warn_On_Ineffective_Predicate_Test"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw_s"),
+          Description       => null,
+          Documentation_Url => null),
+       --  NOTE: this flag is usually followed by a number specfifying the
+       --  indentation level. We encode all of these warnings as -gnaty0
+       --  irregardless of the actual numeric value.
+       gnaty      =>
+         (Human_Id          => new String'("Style_Check_Indentation_Level"),
+          Status            => Active,
+          Short_Name        => new String'("gnaty0"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatya  =>
+         (Human_Id          => new String'("Style_Check_Attribute_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatya"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyaa  =>
+         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyA"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyb  =>
+         (Human_Id          => new String'("Style_Check_Blanks_At_End"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyb"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatybb  =>
+         --  NOTE: in live documentation it is called "Check Boolean operators"
+         (Human_Id          => new String'("Style_Check_Boolean_And_Or"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyB"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyc  =>
+         (Human_Id          => new String'("Style_Check_Comments_Double_Space"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyc"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatycc  =>
+         (Human_Id          => new String'("Style_Check_Comments_Single_Space"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyC"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyd  =>
+         (Human_Id          => new String'("Style_Check_DOS_Line_Terminator"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyd"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatydd  =>
+         (Human_Id          => new String'("Style_Check_Mixed_Case_Decls"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyD"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatye  =>
+         (Human_Id          => new String'("Style_Check_End_Labels"),
+          Status            => Active,
+          Short_Name        => new String'("gnatye"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyf =>
+         (Human_Id          => new String'("Style_Check_Form_Feeds"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyf"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyh =>
+         (Human_Id          => new String'("Style_Check_Horizontal_Tabs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyh"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyi =>
+         (Human_Id          => new String'("Style_Check_If_Then_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyi"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyii =>
+         (Human_Id          => new String'("Style_Check_Mode_In"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyI"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyk =>
+         (Human_Id          => new String'("Style_Check_Keyword_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyk"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyl =>
+         (Human_Id          => new String'("Style_Check_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyl"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyll =>
+         (Human_Id          => new String'("Style_Check_Max_Nesting_Level"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyL"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatym =>
+         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
+          Status            => Active,
+          Short_Name        => new String'("gnatym"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatymm =>
+         --  TODO: May contain line length
+         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyM"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyn =>
+         (Human_Id          => new String'("Style_Check_Standard"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyn"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyo =>
+         (Human_Id          => new String'("Style_Check_Order_Subprograms"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyo"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyoo =>
+         (Human_Id          => new String'("Style_Check_Missing_Overriding"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyO"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyp =>
+         (Human_Id          => new String'("Style_Check_Pragma_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyp"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyr =>
+         (Human_Id          => new String'("Style_Check_References"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyr"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatys =>
+         (Human_Id          => new String'("Style_Check_Specs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatys"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyss =>
+         (Human_Id          => new String'("Style_Check_Separate_Stmt_Lines"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyS"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatytt =>
+         (Human_Id          => new String'("Style_Check_Tokens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyt"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyu =>
+         (Human_Id          => new String'("Style_Check_Blank_Lines"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyu"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyx =>
+         (Human_Id          => new String'("Style_Check_Xtra_Parens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyx"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatyz =>
+         (Human_Id => new String'("Style_Check_Xtra_Parens_Precedence"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyz"),
+          Description       => null,
+          Documentation_Url => null),
+       gnatel =>
+         (Human_Id => new String'("Display_Elaboration_Messages"),
+          Status            => Active,
+          Short_Name        => new String'("gnatel"),
+          Description       => null,
+          Documentation_Url => null)
+       );
+ 
+    ----------------
+    -- Get_Switch --
+    ----------------
+ 
+    function Get_Switch (Id : Switch_Id) return Switch_Type is
+ 
+    begin
+       return Switches (Id);
+    end Get_Switch;
+ 
+    -------------------
+    -- Get_Switch_Id --
+    -------------------
+ 
+    function Get_Switch_Id (Name : String) return Switch_Id is
+       Trimmed_Name : constant String :=
+         (if Name (Name'Last) = ' ' then Name (Name'First .. Name'Last - 1)
+          else Name);
+    begin
+       for I in Active_Switch_Id loop
+          if Switches (I).Short_Name.all = Trimmed_Name then
+             return I;
+          end if;
+       end loop;
+ 
+       return No_Switch_Id;
+    end Get_Switch_Id;
+ 
+    -----------------------------
+    -- Print_Switch_Repository --
+    -----------------------------
+ 
+    procedure Print_Switch_Repository is
+       First : Boolean := True;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & "Switches" & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Avoid printing the first switch, which is a placeholder
+ 
+       for I in Active_Switch_Id loop
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+ 
+          Write_Char ('{');
+          Begin_Block;
+          NL_And_Indent;
+ 
+          if Switches (I).Human_Id /= null then
+             Write_String_Attribute ("Human_Id", Switches (I).Human_Id.all);
+          else
+             Write_String_Attribute ("Human_Id", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Short_Name /= null then
+             Write_String_Attribute ("Short_Name", Switches (I).Short_Name.all);
+          else
+             Write_String_Attribute ("Short_Name", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Status = Active then
+             Write_String_Attribute ("Status", "Active");
+          else
+             Write_String_Attribute ("Status", "Deprecated");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Description /= null then
+             Write_String_Attribute ("Description",
+                                      Switches (I).Description.all);
+          else
+             Write_String_Attribute ("Description", "null");
+          end if;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          if Switches (I).Description /= null then
+             Write_String_Attribute ("Documentation_Url",
+                                     Switches (I).Description.all);
+          else
+             Write_String_Attribute ("Documentation_Url", "null");
+          end if;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char ('}');
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_Switch_Repository;
+ 
+ end Errsw;
diff -Nrcpad gcc-16-20250601/gcc/ada/errsw.ads gcc-16-20250608/gcc/ada/errsw.ads
*** gcc-16-20250601/gcc/ada/errsw.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/errsw.ads	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,154 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --  D I A G N O S T I C S . D I A G N O S T I C S _ R E P O S I T O R Y     --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Types; use Types;
+ 
+ package Errsw is
+ 
+    type Status_Type is
+      (Active,
+       Deprecated);
+ 
+    type Switch_Id is (
+       No_Switch_Id,
+       gnatwb,
+       gnatwc,
+       gnatwd,
+       gnatwf,
+       gnatwg,
+       gnatwh,
+       gnatwi,
+       gnatwj,
+       gnatwk,
+       gnatwl,
+       gnatwm,
+       gnatwo,
+       gnatwp,
+       gnatwq,
+       gnatwr,
+       gnatwt,
+       gnatwu,
+       gnatwv,
+       gnatww,
+       gnatwx,
+       gnatwy,
+       gnatwz,
+       gnatw_dot_a,
+       gnatw_dot_b,
+       gnatw_dot_c,
+       gnatw_dot_f,
+       gnatw_dot_h,
+       gnatw_dot_i,
+       gnatw_dot_j,
+       gnatw_dot_k,
+       gnatw_dot_l,
+       gnatw_dot_m,
+       gnatw_dot_n,
+       gnatw_dot_o,
+       gnatw_dot_p,
+       gnatw_dot_q,
+       gnatw_dot_r,
+       gnatw_dot_s,
+       gnatw_dot_t,
+       gnatw_dot_u,
+       gnatw_dot_v,
+       gnatw_dot_w,
+       gnatw_dot_x,
+       gnatw_dot_y,
+       gnatw_dot_z,
+       gnatw_underscore_a,
+       gnatw_underscore_c,
+       gnatw_underscore_j,
+       gnatw_underscore_l,
+       gnatw_underscore_p,
+       gnatw_underscore_q,
+       gnatw_underscore_r,
+       gnatw_underscore_s,
+       gnaty,
+       gnatya,
+       gnatyb,
+       gnatyc,
+       gnatyd,
+       gnatye,
+       gnatyf,
+       gnatyh,
+       gnatyi,
+       gnatyk,
+       gnatyl,
+       gnatym,
+       gnatyn,
+       gnatyo,
+       gnatyp,
+       gnatyr,
+       gnatys,
+       gnatyu,
+       gnatyx,
+       gnatyz,
+       gnatyaa,
+       gnatybb,
+       gnatycc,
+       gnatydd,
+       gnatyii,
+       gnatyll,
+       gnatymm,
+       gnatyoo,
+       gnatyss,
+       gnatytt,
+       gnatel
+    );
+ 
+    subtype Active_Switch_Id is Switch_Id range gnatwb .. gnatel;
+ 
+    type Switch_Type is record
+ 
+       Status : Status_Type := Active;
+       --  The status will indicate whether the switch is currently active,
+       --  or has been deprecated. A deprecated switch will not control
+       --  diagnostics, and will not be emitted by the GNAT usage.
+ 
+       Human_Id : String_Ptr := null;
+       --  The Human_Id will be a unique and stable string-based ID which
+       --  identifies the content of the switch within the switch registry.
+       --  This ID will appear in SARIF readers.
+ 
+       Short_Name : String_Ptr := null;
+       --  The Short_Name will denote the -gnatXX name of the switch.
+ 
+       Description : String_Ptr := null;
+       --  The description will contain the description of the switch, as it is
+       --  currently emitted by the GNAT usage.
+ 
+       Documentation_Url : String_Ptr := null;
+       --  The documentation_url will point to the AdaCore documentation site
+       --  for the switch.
+ 
+    end record;
+ 
+    function Get_Switch (Id : Switch_Id) return Switch_Type;
+ 
+    function Get_Switch_Id (Name : String) return Switch_Id;
+ 
+    procedure Print_Switch_Repository;
+ 
+ end Errsw;
diff -Nrcpad gcc-16-20250601/gcc/ada/errutil.adb gcc-16-20250608/gcc/ada/errutil.adb
*** gcc-16-20250601/gcc/ada/errutil.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/errutil.adb	Sun Jun  8 22:32:15 2025
***************
*** 25,31 ****
--- 25,33 ----
  
  with Atree;    use Atree;
  with Err_Vars; use Err_Vars;
+ with Errid;    use Errid;
  with Erroutc;  use Erroutc;
+ with Errsw;    use Errsw;
  with Namet;    use Namet;
  with Opt;      use Opt;
  with Output;   use Output;
*************** package body Errutil is
*** 211,217 ****
              Uncond              => Is_Unconditional_Msg,
              Msg_Cont            => Continuation,
              Deleted             => False,
!             Kind                => Error_Msg_Kind));
  
        Cur_Msg := Errors.Last;
        Prev_Msg := No_Error_Msg;
--- 213,223 ----
              Uncond              => Is_Unconditional_Msg,
              Msg_Cont            => Continuation,
              Deleted             => False,
!             Kind                => Error_Msg_Kind,
!             Id                  => No_Diagnostic_Id,
!             Switch              => No_Switch_Id,
!             Locations           => No_Labeled_Span,
!             Fixes               => No_Fix));
  
        Cur_Msg := Errors.Last;
        Prev_Msg := No_Error_Msg;
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_aggr.adb gcc-16-20250608/gcc/ada/exp_aggr.adb
*** gcc-16-20250601/gcc/ada/exp_aggr.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_aggr.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Aggr is
*** 4327,4332 ****
--- 4327,4333 ----
        Typ                  : constant Entity_Id := Etype (N);
        Dims                 : constant Nat := Number_Dimensions (Typ);
        Max_Others_Replicate : constant Nat := Max_Aggregate_Size (N);
+       Ctyp                 : constant Entity_Id := Component_Type (Typ);
  
        Static_Components : Boolean   := True;
  
*************** package body Exp_Aggr is
*** 4803,4809 ****
        --  components because in this case will need to call the corresponding
        --  IP procedure.
  
!       if Has_Default_Init_Comps (N) then
           return;
        end if;
  
--- 4804,4816 ----
        --  components because in this case will need to call the corresponding
        --  IP procedure.
  
!       if Has_Default_Init_Comps (N)
!         or else Present (Constructor_Name (Ctyp))
!         or else (Is_Access_Type (Ctyp)
!                   and then Present
!                              (Constructor_Name
!                                (Directly_Designated_Type (Ctyp))))
!       then
           return;
        end if;
  
*************** package body Exp_Aggr is
*** 4956,4961 ****
--- 4963,4976 ----
        --  type using the computable sizes of the aggregate and its sub-
        --  aggregates.
  
+       function Build_Two_Pass_Aggr_Code
+         (Lhs      : Node_Id;
+          Aggr_Typ : out Entity_Id) return List_Id;
+       --  The aggregate consists only of iterated associations and Lhs is an
+       --  expression containing the location of the anonymous object, which
+       --  may be built in place. Returns the dynamic subtype of the aggregate
+       --  in Aggr_Typ and the list of statements needed to build it.
+ 
        procedure Check_Bounds (Aggr_Bounds_Node, Index_Bounds_Node : Node_Id);
        --  Checks that the bounds of Aggr_Bounds are within the bounds defined
        --  by Index_Bounds. For null array aggregate (Ada 2022) check that the
*************** package body Exp_Aggr is
*** 4983,4989 ****
        --  built directly into the target of an assignment, the target must
        --  be free of side effects. N is the target of the assignment.
  
!       procedure Two_Pass_Aggregate_Expansion (N : Node_Id);
        --  If the aggregate consists only of iterated associations then the
        --  aggregate is constructed in two steps:
        --  a) Build an expression to compute the number of elements
--- 4998,5004 ----
        --  built directly into the target of an assignment, the target must
        --  be free of side effects. N is the target of the assignment.
  
!       procedure Two_Pass_Aggregate_Expansion;
        --  If the aggregate consists only of iterated associations then the
        --  aggregate is constructed in two steps:
        --  a) Build an expression to compute the number of elements
*************** package body Exp_Aggr is
*** 5053,5058 ****
--- 5068,5288 ----
           Freeze_Itype (Agg_Type, N);
        end Build_Constrained_Type;
  
+       ------------------------------
+       -- Build_Two_Pass_Aggr_Code --
+       ------------------------------
+ 
+       function Build_Two_Pass_Aggr_Code
+         (Lhs      : Node_Id;
+          Aggr_Typ : out Entity_Id) return List_Id
+       is
+          Index_Id   : constant Entity_Id := Make_Temporary (Loc, 'I', N);
+          Index_Type : constant Entity_Id := Etype (First_Index (Typ));
+          Index_Base : constant Entity_Id := Base_Type (Index_Type);
+          Size_Id    : constant Entity_Id := Make_Temporary (Loc, 'I', N);
+          Size_Type  : constant Entity_Id :=
+                         Integer_Type_For
+                           (Esize (Index_Base), Is_Unsigned_Type (Index_Base));
+ 
+          Assoc    : Node_Id;
+          Incr     : Node_Id;
+          Iter     : Node_Id;
+          New_Comp : Node_Id;
+          One_Loop : Node_Id;
+          Iter_Id  : Entity_Id;
+ 
+          Aggr_Code      : List_Id;
+          Size_Expr_Code : List_Id;
+ 
+       begin
+          Size_Expr_Code := New_List (
+            Make_Object_Declaration (Loc,
+              Defining_Identifier => Size_Id,
+              Object_Definition   => New_Occurrence_Of (Size_Type, Loc),
+              Expression          => Make_Integer_Literal (Loc, 0)));
+ 
+          --  First pass: execute the iterators to count the number of elements
+          --  that will be generated.
+ 
+          Assoc := First (Component_Associations (N));
+          while Present (Assoc) loop
+             Iter    := Iterator_Specification (Assoc);
+             Iter_Id := Defining_Identifier (Iter);
+             Incr    :=
+               Make_Assignment_Statement (Loc,
+                 Name       => New_Occurrence_Of (Size_Id, Loc),
+                 Expression =>
+                   Make_Op_Add (Loc,
+                     Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
+                     Right_Opnd => Make_Integer_Literal (Loc, 1)));
+ 
+             --  Avoid using the same iterator definition in both loops by
+             --  creating a new iterator for each loop and mapping it over the
+             --  original iterator references.
+ 
+             One_Loop :=
+               Make_Implicit_Loop_Statement (N,
+                 Iteration_Scheme =>
+                   Make_Iteration_Scheme (Loc,
+                     Iterator_Specification =>
+                       New_Copy_Tree (Iter,
+                         Map => New_Elmt_List (Iter_Id, New_Copy (Iter_Id)))),
+                 Statements       => New_List (Incr));
+ 
+             Append (One_Loop, Size_Expr_Code);
+             Next (Assoc);
+          end loop;
+ 
+          Insert_Actions (N, Size_Expr_Code);
+ 
+          --  Build a constrained subtype with the bounds deduced from
+          --  the size computed above and declare the aggregate object.
+          --  The index type is some discrete type, so the bounds of the
+          --  constrained subtype are computed as T'Val (integer bounds).
+ 
+          declare
+             --  Pos_Lo := Index_Type'Pos (Index_Type'First)
+ 
+             Pos_Lo : constant Node_Id :=
+               Make_Attribute_Reference (Loc,
+                 Prefix         => New_Occurrence_Of (Index_Type, Loc),
+                 Attribute_Name => Name_Pos,
+                 Expressions    => New_List (
+                   Make_Attribute_Reference (Loc,
+                     Prefix => New_Occurrence_Of (Index_Type, Loc),
+                     Attribute_Name => Name_First)));
+ 
+             --  Corresponding index value, i.e. Index_Type'First
+ 
+             Aggr_Lo : constant Node_Id :=
+                Make_Attribute_Reference (Loc,
+                  Prefix         => New_Occurrence_Of (Index_Type, Loc),
+                  Attribute_Name => Name_First);
+ 
+             --  Pos_Hi := Pos_Lo + Size - 1
+ 
+             Pos_Hi : constant Node_Id :=
+                Make_Op_Add (Loc,
+                  Left_Opnd  => Pos_Lo,
+                  Right_Opnd =>
+                    Make_Op_Subtract (Loc,
+                      Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
+                      Right_Opnd => Make_Integer_Literal (Loc, 1)));
+ 
+             --  Corresponding index value
+ 
+             Aggr_Hi : constant Node_Id :=
+                Make_Attribute_Reference (Loc,
+                  Prefix => New_Occurrence_Of (Index_Type, Loc),
+                  Attribute_Name => Name_Val,
+                  Expressions    => New_List (Pos_Hi));
+ 
+          begin
+             Aggr_Typ := Make_Temporary (Loc, 'T');
+ 
+             Insert_Action (N,
+               Make_Subtype_Declaration (Loc,
+                 Defining_Identifier => Aggr_Typ,
+                 Subtype_Indication  =>
+                   Make_Subtype_Indication (Loc,
+                     Subtype_Mark =>
+                       New_Occurrence_Of (Base_Type (Typ), Loc),
+                     Constraint =>
+                       Make_Index_Or_Discriminant_Constraint
+                         (Loc,
+                          Constraints =>
+                            New_List (Make_Range (Loc, Aggr_Lo, Aggr_Hi))))));
+          end;
+ 
+          --  Second pass: use the iterators to generate the elements of the
+          --  aggregate. We assume that the second evaluation of each iterator
+          --  generates the same number of elements as the first pass, and thus
+          --  consider that the execution is erroneous (even if the RM does not
+          --  state this explicitly) if the number of elements generated differs
+          --  between first and second pass.
+ 
+          Assoc := First (Component_Associations (N));
+ 
+          --  Initialize insertion position to first array component
+ 
+          Aggr_Code := New_List (
+            Make_Object_Declaration (Loc,
+              Defining_Identifier => Index_Id,
+              Object_Definition   =>
+                New_Occurrence_Of (Index_Type, Loc),
+              Expression =>
+                Make_Attribute_Reference (Loc,
+                  Prefix => New_Copy_Tree (Lhs),
+                  Attribute_Name => Name_First)));
+ 
+          while Present (Assoc) loop
+             Iter     := Iterator_Specification (Assoc);
+             Iter_Id  := Defining_Identifier (Iter);
+             New_Comp :=
+               Make_OK_Assignment_Statement (Loc,
+                 Name       =>
+                   Make_Indexed_Component (Loc,
+                     Prefix => New_Copy_Tree (Lhs),
+                     Expressions =>
+                       New_List (New_Occurrence_Of (Index_Id, Loc))),
+                 Expression => Copy_Separate_Tree (Expression (Assoc)));
+ 
+             --  Arrange for the component to be adjusted if need be (the call
+             --  will be generated by Make_Tag_Ctrl_Assignment).
+ 
+             if Needs_Finalization (Ctyp)
+               and then not Is_Inherently_Limited_Type (Ctyp)
+             then
+                Set_No_Finalize_Actions (New_Comp);
+             else
+                Set_No_Ctrl_Actions (New_Comp);
+             end if;
+ 
+             --  Advance index position for insertion
+ 
+             Incr :=
+               Make_Assignment_Statement (Loc,
+                 Name       => New_Occurrence_Of (Index_Id, Loc),
+                 Expression =>
+                   Make_Attribute_Reference (Loc,
+                     Prefix         => New_Occurrence_Of (Index_Type, Loc),
+                     Attribute_Name => Name_Succ,
+                     Expressions    =>
+                       New_List (New_Occurrence_Of (Index_Id, Loc))));
+ 
+             --  Add guard to skip last increment when upper bound is reached
+ 
+             Incr :=
+               Make_If_Statement (Loc,
+                 Condition       =>
+                   Make_Op_Ne (Loc,
+                   Left_Opnd  => New_Occurrence_Of (Index_Id, Loc),
+                   Right_Opnd =>
+                     Make_Attribute_Reference (Loc,
+                       Prefix         => New_Occurrence_Of (Index_Type, Loc),
+                       Attribute_Name => Name_Last)),
+                 Then_Statements => New_List (Incr));
+ 
+             --  Avoid using the same iterator definition in both loops by
+             --  creating a new iterator for each loop and mapping it over
+             --  the original iterator references.
+ 
+             One_Loop :=
+               Make_Implicit_Loop_Statement (N,
+                 Iteration_Scheme =>
+                   Make_Iteration_Scheme (Loc,
+                     Iterator_Specification =>
+                       New_Copy_Tree (Iter,
+                         Map => New_Elmt_List (Iter_Id, New_Copy (Iter_Id)))),
+                 Statements       => New_List (New_Comp, Incr));
+ 
+             Append (One_Loop, Aggr_Code);
+             Next (Assoc);
+          end loop;
+ 
+          return Aggr_Code;
+       end Build_Two_Pass_Aggr_Code;
+ 
        ------------------
        -- Check_Bounds --
        ------------------
*************** package body Exp_Aggr is
*** 5596,5809 ****
        -- Two_Pass_Aggregate_Expansion --
        ----------------------------------
  
!       procedure Two_Pass_Aggregate_Expansion (N : Node_Id) is
!          Loc        : constant Source_Ptr := Sloc (N);
!          Comp_Type  : constant Entity_Id := Etype (N);
!          Index_Id   : constant Entity_Id := Make_Temporary (Loc, 'I', N);
!          Index_Type : constant Entity_Id := Etype (First_Index (Etype (N)));
!          Index_Base : constant Entity_Id := Base_Type (Index_Type);
!          Size_Id    : constant Entity_Id := Make_Temporary (Loc, 'I', N);
!          Size_Type  : constant Entity_Id :=
!                         Integer_Type_For
!                           (Esize (Index_Base), Is_Unsigned_Type (Index_Base));
!          TmpE       : constant Entity_Id := Make_Temporary (Loc, 'A', N);
! 
!          Assoc    : Node_Id := First (Component_Associations (N));
!          Incr     : Node_Id;
!          Iter     : Node_Id;
!          New_Comp : Node_Id;
!          One_Loop : Node_Id;
!          Iter_Id  : Entity_Id;
! 
!          Size_Expr_Code : List_Id;
!          Insertion_Code : List_Id := New_List;
  
        begin
!          Size_Expr_Code := New_List (
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Size_Id,
!              Object_Definition   => New_Occurrence_Of (Size_Type, Loc),
!              Expression          => Make_Integer_Literal (Loc, 0)));
! 
!          --  First pass: execute the iterators to count the number of elements
!          --  that will be generated.
! 
!          while Present (Assoc) loop
!             Iter := Iterator_Specification (Assoc);
!             Iter_Id := Defining_Identifier (Iter);
!             Incr := Make_Assignment_Statement (Loc,
!                       Name => New_Occurrence_Of (Size_Id, Loc),
!                       Expression =>
!                         Make_Op_Add (Loc,
!                          Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
!                          Right_Opnd => Make_Integer_Literal (Loc, 1)));
! 
!             --  Avoid using the same iterator definition in both loops by
!             --  creating a new iterator for each loop and mapping it over the
!             --  original iterator references.
! 
!             One_Loop := Make_Implicit_Loop_Statement (N,
!               Iteration_Scheme =>
!                 Make_Iteration_Scheme (Loc,
!                   Iterator_Specification =>
!                      New_Copy_Tree (Iter,
!                         Map => New_Elmt_List (Iter_Id, New_Copy (Iter_Id)))),
!                 Statements => New_List (Incr));
! 
!             Append (One_Loop, Size_Expr_Code);
!             Next (Assoc);
           end loop;
  
!          Insert_Actions (N, Size_Expr_Code);
! 
!          --  Build a constrained subtype with the bounds deduced from
!          --  the size computed above and declare the aggregate object.
!          --  The index type is some discrete type, so the bounds of the
!          --  constrained subtype are computed as T'Val (integer bounds).
! 
!          declare
!             --  Pos_Lo := Index_Type'Pos (Index_Type'First)
! 
!             Pos_Lo : constant Node_Id :=
!               Make_Attribute_Reference (Loc,
!                 Prefix         => New_Occurrence_Of (Index_Type, Loc),
!                 Attribute_Name => Name_Pos,
!                 Expressions    => New_List (
!                   Make_Attribute_Reference (Loc,
!                     Prefix => New_Occurrence_Of (Index_Type, Loc),
!                     Attribute_Name => Name_First)));
! 
!             --  Corresponding index value, i.e. Index_Type'First
! 
!             Aggr_Lo : constant Node_Id :=
!                Make_Attribute_Reference (Loc,
!                  Prefix         => New_Occurrence_Of (Index_Type, Loc),
!                  Attribute_Name => Name_First);
! 
!             --  Pos_Hi := Pos_Lo + Size - 1
! 
!             Pos_Hi : constant Node_Id :=
!                Make_Op_Add (Loc,
!                  Left_Opnd  => Pos_Lo,
!                  Right_Opnd =>
!                    Make_Op_Subtract (Loc,
!                      Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
!                      Right_Opnd => Make_Integer_Literal (Loc, 1)));
! 
!             --  Corresponding index value
! 
!             Aggr_Hi : constant Node_Id :=
!                Make_Attribute_Reference (Loc,
!                  Prefix => New_Occurrence_Of (Index_Type, Loc),
!                  Attribute_Name => Name_Val,
!                  Expressions    => New_List (Pos_Hi));
! 
!             SubE : constant Entity_Id := Make_Temporary (Loc, 'T');
!             SubD : constant Node_Id :=
!               Make_Subtype_Declaration (Loc,
!                 Defining_Identifier => SubE,
!                 Subtype_Indication  =>
!                   Make_Subtype_Indication (Loc,
!                     Subtype_Mark =>
!                       New_Occurrence_Of (Etype (Comp_Type), Loc),
!                     Constraint =>
!                       Make_Index_Or_Discriminant_Constraint
!                         (Loc,
!                          Constraints =>
!                            New_List (Make_Range (Loc, Aggr_Lo, Aggr_Hi)))));
! 
!             --  Create a temporary array of the above subtype which
!             --  will be used to capture the aggregate assignments.
! 
!             TmpD : constant Node_Id :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => TmpE,
!                 Object_Definition   => New_Occurrence_Of (SubE, Loc));
! 
!          begin
!             Insert_Actions (N, New_List (SubD, TmpD));
!          end;
! 
!          --  Second pass: use the iterators to generate the elements of the
!          --  aggregate. Insertion index starts at Index_Type'First. We
!          --  assume that the second evaluation of each iterator generates
!          --  the same number of elements as the first pass, and consider
!          --  that the execution is erroneous (even if the RM does not state
!          --  this explicitly) if the number of elements generated differs
!          --  between first and second pass.
  
!          Assoc := First (Component_Associations (N));
  
!          --  Initialize insertion position to first array component.
  
!          Insertion_Code := New_List (
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Index_Id,
!              Object_Definition   =>
!                New_Occurrence_Of (Index_Type, Loc),
!              Expression =>
!                Make_Attribute_Reference (Loc,
!                  Prefix => New_Occurrence_Of (Index_Type, Loc),
!                  Attribute_Name => Name_First)));
  
!          while Present (Assoc) loop
!             Iter := Iterator_Specification (Assoc);
!             Iter_Id := Defining_Identifier (Iter);
!             New_Comp := Make_Assignment_Statement (Loc,
!                Name =>
!                  Make_Indexed_Component (Loc,
!                     Prefix => New_Occurrence_Of (TmpE, Loc),
!                     Expressions =>
!                       New_List (New_Occurrence_Of (Index_Id, Loc))),
!                Expression => Copy_Separate_Tree (Expression (Assoc)));
  
!             --  Advance index position for insertion.
  
!             Incr := Make_Assignment_Statement (Loc,
!                       Name => New_Occurrence_Of (Index_Id, Loc),
!                       Expression =>
!                         Make_Attribute_Reference (Loc,
!                           Prefix =>
!                             New_Occurrence_Of (Index_Type, Loc),
!                           Attribute_Name => Name_Succ,
!                           Expressions =>
!                             New_List (New_Occurrence_Of (Index_Id, Loc))));
  
!             --  Add guard to skip last increment when upper bound is reached.
  
!             Incr := Make_If_Statement (Loc,
!                Condition =>
!                   Make_Op_Ne (Loc,
!                   Left_Opnd  => New_Occurrence_Of (Index_Id, Loc),
!                   Right_Opnd =>
!                     Make_Attribute_Reference (Loc,
!                       Prefix => New_Occurrence_Of (Index_Type, Loc),
!                       Attribute_Name => Name_Last)),
!                Then_Statements => New_List (Incr));
  
!             --  Avoid using the same iterator definition in both loops by
!             --  creating a new iterator for each loop and mapping it over the
!             --  original iterator references.
  
!             One_Loop := Make_Implicit_Loop_Statement (N,
!               Iteration_Scheme =>
!                 Make_Iteration_Scheme (Loc,
!                   Iterator_Specification =>
!                      New_Copy_Tree (Iter,
!                         Map => New_Elmt_List (Iter_Id, New_Copy (Iter_Id)))),
!                 Statements => New_List (New_Comp, Incr));
  
!             Append (One_Loop, Insertion_Code);
!             Next (Assoc);
!          end loop;
  
!          Insert_Actions (N, Insertion_Code);
  
!          --  Depending on context this may not work for build-in-place
!          --  arrays ???
  
!          Rewrite (N, New_Occurrence_Of (TmpE, Loc));
  
        end Two_Pass_Aggregate_Expansion;
  
        --  Local variables
--- 5826,5923 ----
        -- Two_Pass_Aggregate_Expansion --
        ----------------------------------
  
!       procedure Two_Pass_Aggregate_Expansion is
!          Aggr_Code : List_Id;
!          Aggr_Typ  : Entity_Id;
!          Lhs       : Node_Id;
!          Obj_Id    : Entity_Id;
!          Par       : Node_Id;
  
        begin
!          Par := Parent (N);
!          while Nkind (Par) = N_Qualified_Expression loop
!             Par := Parent (Par);
           end loop;
  
!          --  If the aggregate is the initialization expression of an object
!          --  declaration, we always build the aggregate in place, although
!          --  this is required only for immutably limited types and types
!          --  that need finalization, see RM 7.6(17.2/3-17.3/3).
  
!          if Nkind (Par) = N_Object_Declaration then
!             Obj_Id := Defining_Identifier (Par);
!             Lhs := New_Occurrence_Of (Obj_Id, Loc);
!             Set_Assignment_OK (Lhs);
!             Aggr_Code := Build_Two_Pass_Aggr_Code (Lhs, Aggr_Typ);
  
!             --  Save the last assignment statement associated with the
!             --  aggregate when building a controlled object. This last
!             --  assignment is used by the finalization machinery when
!             --  marking an object as successfully initialized.
  
!             if Needs_Finalization (Typ) then
!                Mutate_Ekind (Obj_Id, E_Variable);
!                Set_Last_Aggregate_Assignment (Obj_Id, Last (Aggr_Code));
!             end if;
  
!             --  If a transient scope has been created around the declaration,
!             --  we need to attach the code to it so that finalization actions
!             --  of the declaration will be inserted after it; otherwise, we
!             --  directly insert it after the declaration. In both cases, the
!             --  code will be analyzed after the declaration is processed, i.e.
!             --  once the actual subtype of the object is established.
  
!             if Scope_Is_Transient and then Par = Node_To_Be_Wrapped then
!                Store_After_Actions_In_Scope_Without_Analysis (Aggr_Code);
!             else
!                Insert_List_After (Par, Aggr_Code);
!             end if;
  
!             Set_Etype (N, Aggr_Typ);
!             Set_No_Initialization (Par);
  
!          --  Likewise if it is the qualified expression of an allocator but,
!          --  in this case, we wait until after Expand_Allocator_Expression
!          --  rewrites the allocator as the initialization expression of an
!          --  object declaration, so that we have the left-hand side.
  
!          elsif Nkind (Par) = N_Allocator then
!             if Nkind (Parent (Par)) = N_Object_Declaration
!               and then
!                 not Comes_From_Source (Defining_Identifier (Parent (Par)))
!             then
!                Obj_Id := Defining_Identifier (Parent (Par));
!                Lhs :=
!                  Make_Explicit_Dereference (Loc,
!                    Prefix => New_Occurrence_Of (Obj_Id, Loc));
!                Set_Assignment_OK (Lhs);
!                Aggr_Code := Build_Two_Pass_Aggr_Code (Lhs, Aggr_Typ);
  
!                Insert_Actions_After (Parent (Par), Aggr_Code);
  
!                Set_Expression (Par, New_Occurrence_Of (Aggr_Typ, Loc));
!                Set_No_Initialization (Par);
!             end if;
  
!          --  Otherwise we create a temporary for the anonymous object and
!          --  replace the aggregate with the temporary.
  
!          else
!             Obj_Id := Make_Temporary (Loc, 'A', N);
!             Lhs := New_Occurrence_Of (Obj_Id, Loc);
!             Set_Assignment_OK (Lhs);
  
!             Aggr_Code := Build_Two_Pass_Aggr_Code (Lhs, Aggr_Typ);
!             Prepend_To (Aggr_Code,
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Obj_Id,
!                 Object_Definition   => New_Occurrence_Of (Aggr_Typ, Loc)));
  
!             Insert_Actions (N, Aggr_Code);
  
+             Rewrite (N, Lhs);
+             Analyze_And_Resolve (N, Aggr_Typ);
+          end if;
        end Two_Pass_Aggregate_Expansion;
  
        --  Local variables
*************** package body Exp_Aggr is
*** 5829,5835 ****
        --  Aggregates that require a two-pass expansion are handled separately
  
        elsif Is_Two_Pass_Aggregate (N) then
!          Two_Pass_Aggregate_Expansion (N);
           return;
  
        --  Do not attempt expansion if error already detected. We may reach this
--- 5943,5949 ----
        --  Aggregates that require a two-pass expansion are handled separately
  
        elsif Is_Two_Pass_Aggregate (N) then
!          Two_Pass_Aggregate_Expansion;
           return;
  
        --  Do not attempt expansion if error already detected. We may reach this
*************** package body Exp_Aggr is
*** 6002,6013 ****
           --  static type imposed by the context.
  
           declare
-             Itype      : constant Entity_Id := Etype (N);
              Index      : Node_Id;
              Needs_Type : Boolean := False;
  
           begin
!             Index := First_Index (Itype);
              while Present (Index) loop
                 if not Is_OK_Static_Subtype (Etype (Index)) then
                    Needs_Type := True;
--- 6116,6126 ----
           --  static type imposed by the context.
  
           declare
              Index      : Node_Id;
              Needs_Type : Boolean := False;
  
           begin
!             Index := First_Index (Typ);
              while Present (Index) loop
                 if not Is_OK_Static_Subtype (Etype (Index)) then
                    Needs_Type := True;
*************** package body Exp_Aggr is
*** 6019,6025 ****
  
              if Needs_Type then
                 Build_Constrained_Type (Positional => True);
!                Rewrite (N, Unchecked_Convert_To (Itype, N));
                 Analyze (N);
              end if;
           end;
--- 6132,6138 ----
  
              if Needs_Type then
                 Build_Constrained_Type (Positional => True);
!                Rewrite (N, Unchecked_Convert_To (Typ, N));
                 Analyze (N);
              end if;
           end;
*************** package body Exp_Aggr is
*** 6147,6153 ****
        then
           Tmp := Name (Parent_Node);
  
!          if Etype (Tmp) /= Etype (N) then
              Apply_Length_Check (N, Etype (Tmp));
  
              if Nkind (N) = N_Raise_Constraint_Error then
--- 6260,6266 ----
        then
           Tmp := Name (Parent_Node);
  
!          if Etype (Tmp) /= Typ then
              Apply_Length_Check (N, Etype (Tmp));
  
              if Nkind (N) = N_Raise_Constraint_Error then
*************** package body Exp_Aggr is
*** 7362,7368 ****
        --  Likewise if the aggregate is the qualified expression of an allocator
        --  but, in this case, we wait until after Expand_Allocator_Expression
        --  rewrites the allocator as the initialization expression of an object
!       --  declaration to have the left hand side.
  
        elsif Nkind (Par) = N_Allocator then
           if Nkind (Parent (Par)) = N_Object_Declaration
--- 7475,7481 ----
        --  Likewise if the aggregate is the qualified expression of an allocator
        --  but, in this case, we wait until after Expand_Allocator_Expression
        --  rewrites the allocator as the initialization expression of an object
!       --  declaration, so that we have the left-hand side.
  
        elsif Nkind (Par) = N_Allocator then
           if Nkind (Parent (Par)) = N_Object_Declaration
*************** package body Exp_Aggr is
*** 7971,7977 ****
                         Make_Selected_Component (Loc,
                           Prefix        =>
                             Unchecked_Convert_To (Typ,
!                              Duplicate_Subexpr (Parent_Expr, True)),
                           Selector_Name => New_Occurrence_Of (Comp, Loc));
  
                       Append_To (Comps,
--- 8084,8091 ----
                         Make_Selected_Component (Loc,
                           Prefix        =>
                             Unchecked_Convert_To (Typ,
!                              Duplicate_Subexpr
!                                (Parent_Expr, Name_Req => True)),
                           Selector_Name => New_Occurrence_Of (Comp, Loc));
  
                       Append_To (Comps,
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_attr.adb gcc-16-20250608/gcc/ada/exp_attr.adb
*** gcc-16-20250601/gcc/ada/exp_attr.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_attr.adb	Sun Jun  8 22:32:15 2025
***************
*** 24,29 ****
--- 24,30 ----
  ------------------------------------------------------------------------------
  
  with Accessibility;  use Accessibility;
+ with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
*************** package body Exp_Attr is
*** 88,95 ****
        function Attribute_Op_Hash (Id : Entity_Id) return Header_Num is
          (Header_Num (Id mod Map_Size));
  
!       --  Cache used to avoid building duplicate subprograms for a single
!       --  type/streaming-attribute pair.
  
        package Read_Map is new GNAT.HTable.Simple_HTable
          (Header_Num => Header_Num,
--- 89,98 ----
        function Attribute_Op_Hash (Id : Entity_Id) return Header_Num is
          (Header_Num (Id mod Map_Size));
  
!       --  Caches used to avoid building duplicate subprograms for a single
!       --  type/attribute pair (where the attribute is either Put_Image or
!       --  one of the four streaming attributes). The type used as a key in
!       --  in accessing these maps should not be the entity of a subtype.
  
        package Read_Map is new GNAT.HTable.Simple_HTable
          (Header_Num => Header_Num,
*************** package body Exp_Attr is
*** 282,289 ****
         (In_Same_Extended_Unit (Subp_Unit, Attr_Ref_Unit)
           --  If subp declared in unit body, then we don't want to refer
           --  to it from within unit spec so return False in that case.
!          and then not (Body_Required (Attr_Ref_Unit)
!                        and not Body_Required (Subp_Unit)));
     --  Returns True if it is ok to refer to a cached subprogram declared in
     --  Subp_Unit from the point of an attribute reference occurring in
     --  Attr_Ref_Unit. Both arguments are usually N_Compilation_Nodes,
--- 285,292 ----
         (In_Same_Extended_Unit (Subp_Unit, Attr_Ref_Unit)
           --  If subp declared in unit body, then we don't want to refer
           --  to it from within unit spec so return False in that case.
!          and then not (not Is_Body (Unit (Attr_Ref_Unit))
!                        and Is_Body (Unit (Subp_Unit))));
     --  Returns True if it is ok to refer to a cached subprogram declared in
     --  Subp_Unit from the point of an attribute reference occurring in
     --  Attr_Ref_Unit. Both arguments are usually N_Compilation_Nodes,
*************** package body Exp_Attr is
*** 4669,4675 ****
           end if;
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Input_Map.Set (P_Type, Fname);
           end if;
        end Input;
  
--- 4672,4678 ----
           end if;
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Input_Map.Set (U_Type, Fname);
           end if;
        end Input;
  
*************** package body Exp_Attr is
*** 4983,4988 ****
--- 4986,5301 ----
  
           Analyze_And_Resolve (N, Typ);
  
+       ----------
+       -- Make --
+       ----------
+ 
+       when Attribute_Make =>
+          declare
+             Params    : List_Id;
+             Param     : Node_Id;
+             Par       : Node_Id;
+             Construct : Entity_Id;
+             Obj       : Node_Id := Empty;
+             Make_Expr : Node_Id := N;
+ 
+             Formal       : Entity_Id;
+             Replace_Expr : Node_Id;
+             Init_Param   : Node_Id;
+             Construct_Call : Node_Id;
+             Curr_Nam : Node_Id := Empty;
+ 
+             function Replace_Formal_Ref
+               (N : Node_Id) return Traverse_Result;
+ 
+             function Replace_Formal_Ref
+               (N : Node_Id) return Traverse_Result is
+             begin
+                if Is_Entity_Name (N)
+                  and then Chars (Formal) = Chars (N)
+                then
+                   Rewrite (N,
+                     New_Copy_Tree (Replace_Expr));
+                end if;
+ 
+                return OK;
+             end Replace_Formal_Ref;
+ 
+             procedure Search_And_Replace_Formal is new
+               Traverse_Proc (Replace_Formal_Ref);
+ 
+          begin
+             --  Remove side effects for constructor call
+ 
+             Param := First (Expressions (N));
+             while Present (Param) loop
+                if Nkind (Param) = N_Parameter_Association then
+                   Remove_Side_Effects (Explicit_Actual_Parameter (Param),
+                                        Check_Side_Effects => False);
+                else
+                   Remove_Side_Effects (Param, Check_Side_Effects => False);
+                end if;
+ 
+                Next (Param);
+             end loop;
+ 
+             --  Construct the parameters list
+ 
+             Params := New_Copy_List (Expressions (N));
+             if Is_Empty_List (Params) then
+                Params := New_List;
+             end if;
+ 
+             --  Identify the enclosing parent for the non-copy cases
+ 
+             Par := Parent (N);
+             if Nkind (Par) = N_Qualified_Expression then
+                Par       := Parent (Par);
+                Make_Expr := Par;
+             end if;
+             if Nkind (Par) = N_Allocator then
+                Par := Parent (Par);
+                Curr_Nam := Make_Explicit_Dereference
+                             (Loc, Prefix => Empty);
+                Obj := Curr_Nam;
+             end if;
+ 
+             declare
+                Base_Obj : Node_Id := Empty;
+                Typ_Comp : Entity_Id;
+                Agg_Comp : Entity_Id;
+                Comp_Nam : Node_Id := Empty;
+             begin
+                while Nkind (Par) not in N_Object_Declaration
+                                       | N_Assignment_Statement
+                loop
+                   if Nkind (Par) = N_Aggregate then
+                      Typ_Comp := First_Entity (Etype (Par));
+                      Agg_Comp := First (Expressions (Par));
+                      loop
+                         if No (Agg_Comp) then
+                            return;
+                         end if;
+ 
+                         if Agg_Comp = Make_Expr then
+                            Comp_Nam :=
+                              Make_Selected_Component (Loc,
+                                Prefix => Empty,
+                                Selector_Name =>
+                                  New_Occurrence_Of (Typ_Comp, Loc));
+ 
+                            Make_Expr := Parent (Make_Expr);
+                            Par       := Parent (Par);
+                            exit;
+                         end if;
+ 
+                         Next_Entity (Typ_Comp);
+                         Next (Agg_Comp);
+                      end loop;
+                   elsif Nkind (Par) = N_Component_Association then
+                      Comp_Nam :=
+                        Make_Selected_Component (Loc,
+                          Prefix => Empty,
+                          Selector_Name =>
+                            Make_Identifier (Loc,
+                              (Chars (First (Choices (Par))))));
+ 
+                      Make_Expr := Parent (Parent (Make_Expr));
+                      Par       := Parent (Parent (Par));
+                   else
+                      declare
+                         Temp : constant Entity_Id :=
+                           Make_Temporary (Loc, 'T', N);
+                      begin
+                         Rewrite (N,
+                           Make_Expression_With_Actions (Loc,
+                             Actions => New_List (
+                               Make_Object_Declaration (Loc,
+                                 Defining_Identifier => Temp,
+                                 Object_Definition   =>
+                                   New_Occurrence_Of (Typ, Loc),
+                                 Expression          =>
+                                   New_Copy_Tree (N))),
+                             Expression => New_Occurrence_Of (Temp, Loc)));
+                         Analyze_And_Resolve (N);
+                         return;
+                      end;
+                   end if;
+ 
+                   if No (Curr_Nam) then
+                      Curr_Nam := Comp_Nam;
+                      Obj      := Curr_Nam;
+                   elsif Has_Prefix (Curr_Nam) then
+                      Set_Prefix (Curr_Nam, Comp_Nam);
+                      Curr_Nam := Comp_Nam;
+                   end if;
+                end loop;
+ 
+                Base_Obj := (case Nkind (Par) is
+                               when N_Assignment_Statement =>
+                                  New_Copy_Tree (Name (Par)),
+                               when N_Object_Declaration =>
+                                  New_Occurrence_Of
+                                    (Defining_Identifier (Par), Loc),
+                               when others => (raise Program_Error));
+ 
+                if Present (Curr_Nam) then
+                   Set_Prefix (Curr_Nam, Base_Obj);
+                else
+                   Obj := Base_Obj;
+                end if;
+             end;
+ 
+             Prepend_To (Params, Obj);
+ 
+             --  Find the constructor we are interested in by doing a
+             --  pseudo-pass to resolve the constructor call.
+ 
+             declare
+                Dummy_Params : List_Id := New_Copy_List (Expressions (N));
+                Dummy_Self   : Node_Id;
+                Dummy_Block  : Node_Id;
+                Dummy_Call   : Node_Id;
+                Dummy_Id     : Entity_Id := Make_Temporary (Loc, 'D', N);
+             begin
+                if Is_Empty_List (Dummy_Params) then
+                   Dummy_Params := New_List;
+                end if;
+ 
+                Dummy_Self := Make_Object_Declaration (Loc,
+                                Defining_Identifier => Dummy_Id,
+                                Object_Definition   =>
+                                   New_Occurrence_Of (Typ, Loc));
+                Prepend_To (Dummy_Params, New_Occurrence_Of (Dummy_Id, Loc));
+ 
+                Dummy_Call := Make_Procedure_Call_Statement (Loc,
+                                Parameter_Associations => Dummy_Params,
+                                Name                   =>
+                                  (if not Has_Prefix (Pref) then
+                                      Make_Identifier (Loc,
+                                        Chars (Constructor_Name (Typ)))
+                                   else
+                                      Make_Expanded_Name (Loc,
+                                        Chars =>
+                                          Chars (Constructor_Name (Typ)),
+                                        Prefix =>
+                                          New_Copy_Tree (Prefix (Pref)),
+                                        Selector_Name =>
+                                          Make_Identifier (Loc,
+                                           Chars (Constructor_Name (Typ))))));
+                Set_Is_Expanded_Constructor_Call (Dummy_Call, True);
+ 
+                Dummy_Block := Make_Block_Statement (Loc,
+                                 Declarations => New_List (Dummy_Self),
+                                 Handled_Statement_Sequence =>
+                                   Make_Handled_Sequence_Of_Statements (Loc,
+                                     Statements => New_List (Dummy_Call)));
+ 
+                Expander_Active := False;
+ 
+                Insert_After_And_Analyze
+                  (Enclosing_Declaration_Or_Statement (Par), Dummy_Block);
+ 
+                Expander_Active := True;
+ 
+                --  Finally, we can get the constructor based on our pseudo-pass
+ 
+                Construct := Entity (Name (Dummy_Call));
+ 
+                --  Replace the Typ'Make attribute with an aggregate featuring
+                --  then relevant aggregate from the correct constructor's
+                --  Inializeaspect if it is present - otherwise, simply use a
+                --  box.
+ 
+                if Has_Aspect (Construct, Aspect_Initialize) then
+                   Rewrite (N,
+                     New_Copy_Tree
+                       (Find_Value_Of_Aspect (Construct, Aspect_Initialize)));
+ 
+                   Param  := Next (First (Params));
+                   Formal := Next_Entity (First_Entity (Construct));
+                   while Present (Param) loop
+                      if Nkind (Param) = N_Parameter_Association then
+                         Formal := Selector_Name (Param);
+                         Replace_Expr := Explicit_Actual_Parameter (Param);
+                      else
+                         Replace_Expr := Param;
+                      end if;
+ 
+                      Init_Param := First (Component_Associations (N));
+                      while Present (Init_Param) loop
+                         Search_And_Replace_Formal (Expression (Init_Param));
+ 
+                         Next (Init_Param);
+                      end loop;
+ 
+                      if Nkind (Param) /= N_Parameter_Association then
+                         Next_Entity (Formal);
+                      end if;
+                      Next (Param);
+                   end loop;
+ 
+                   Init_Param := First (Component_Associations (N));
+                   while Present (Init_Param) loop
+                      if Nkind (Expression (Init_Param)) = N_Attribute_Reference
+                        and then Attribute_Name
+                                   (Expression (Init_Param)) = Name_Make
+                      then
+                         Insert_After (Par,
+                           Make_Assignment_Statement (Loc,
+                             Name       =>
+                               Make_Selected_Component (Loc,
+                                 Prefix =>
+                                   New_Copy_Tree (First (Params)),
+                                 Selector_Name =>
+                                   Make_Identifier (Loc,
+                                     Chars (First (Choices (Init_Param))))),
+                             Expression =>
+                               New_Copy_Tree (Expression (Init_Param))));
+ 
+                         Rewrite (Expression (Init_Param),
+                           Make_Aggregate (Loc,
+                             Expressions            => New_List,
+                             Component_Associations => New_List (
+                               Make_Component_Association (Loc,
+                                 Choices     =>
+                                   New_List (Make_Others_Choice (Loc)),
+                                 Expression  => Empty,
+                                 Box_Present => True))));
+                      end if;
+ 
+                      Next (Init_Param);
+                   end loop;
+                else
+                   Rewrite (N,
+                     Make_Aggregate (Loc,
+                       Expressions            => New_List,
+                       Component_Associations => New_List (
+                         Make_Component_Association (Loc,
+                           Choices     => New_List (Make_Others_Choice (Loc)),
+                           Expression  => Empty,
+                           Box_Present => True))));
+                end if;
+ 
+                --  Rewrite this block to be null and pretend it didn't happen
+ 
+                Rewrite (Dummy_Block, Make_Null_Statement (Loc));
+             end;
+ 
+             Analyze_And_Resolve (N, Typ);
+ 
+             --  Finally, insert the constructor call
+ 
+             Construct_Call :=
+               Make_Procedure_Call_Statement (Loc,
+                 Name                   =>
+                   New_Occurrence_Of (Construct, Loc),
+                 Parameter_Associations => Params);
+ 
+             Set_Is_Expanded_Constructor_Call (Construct_Call);
+             Insert_After (Par, Construct_Call);
+          end;
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Exp_Attr is
*** 5750,5756 ****
           Rewrite_Attribute_Proc_Call (Pname);
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Output_Map.Set (P_Type, Pname);
           end if;
        end Output;
  
--- 6063,6069 ----
           Rewrite_Attribute_Proc_Call (Pname);
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Output_Map.Set (U_Type, Pname);
           end if;
        end Output;
  
*************** package body Exp_Attr is
*** 6669,6675 ****
           Rewrite_Attribute_Proc_Call (Pname);
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Read_Map.Set (P_Type, Pname);
           end if;
        end Read;
  
--- 6982,6988 ----
           Rewrite_Attribute_Proc_Call (Pname);
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Read_Map.Set (U_Type, Pname);
           end if;
        end Read;
  
*************** package body Exp_Attr is
*** 8349,8355 ****
           Rewrite_Attribute_Proc_Call (Pname);
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Write_Map.Set (P_Type, Pname);
           end if;
        end Write;
  
--- 8662,8668 ----
           Rewrite_Attribute_Proc_Call (Pname);
  
           if not Is_Tagged_Type (P_Type) then
!             Cached_Attribute_Ops.Write_Map.Set (U_Type, Pname);
           end if;
        end Write;
  
*************** package body Exp_Attr is
*** 8600,8609 ****
              Rewrite (N,
                Make_Op_Multiply (Loc,
                  Make_Attribute_Reference (Loc,
!                   Prefix         => Duplicate_Subexpr (Pref, True),
                    Attribute_Name => Name_Length),
                  Make_Attribute_Reference (Loc,
!                   Prefix         => Duplicate_Subexpr (Pref, True),
                    Attribute_Name => Name_Component_Size)));
              Analyze_And_Resolve (N, Typ);
           end if;
--- 8913,8922 ----
              Rewrite (N,
                Make_Op_Multiply (Loc,
                  Make_Attribute_Reference (Loc,
!                   Prefix         => Duplicate_Subexpr (Pref, Name_Req => True),
                    Attribute_Name => Name_Length),
                  Make_Attribute_Reference (Loc,
!                   Prefix         => Duplicate_Subexpr (Pref, Name_Req => True),
                    Attribute_Name => Name_Component_Size)));
              Analyze_And_Resolve (N, Typ);
           end if;
*************** package body Exp_Attr is
*** 8951,8965 ****
           return Empty;
        end if;
  
!       if Nam = TSS_Stream_Read then
!          Ent := Cached_Attribute_Ops.Read_Map.Get (Typ);
!       elsif Nam = TSS_Stream_Write then
!          Ent := Cached_Attribute_Ops.Write_Map.Get (Typ);
!       elsif Nam = TSS_Stream_Input then
!          Ent := Cached_Attribute_Ops.Input_Map.Get (Typ);
!       elsif Nam = TSS_Stream_Output then
!          Ent := Cached_Attribute_Ops.Output_Map.Get (Typ);
!       end if;
  
        Cached_Attribute_Ops.Validate_Cached_Candidate
          (Subp => Ent, Attr_Ref => Attr_Ref);
--- 9264,9285 ----
           return Empty;
        end if;
  
!       declare
!          function U_Base return Entity_Id is
!            (Underlying_Type (Base_Type (Typ)));
!          --  Return the right type node for use in a C_A_O map lookup.
!          --  In particular, we do not want the entity for a subtype.
!       begin
!          if Nam = TSS_Stream_Read then
!             Ent := Cached_Attribute_Ops.Read_Map.Get (U_Base);
!          elsif Nam = TSS_Stream_Write then
!             Ent := Cached_Attribute_Ops.Write_Map.Get (U_Base);
!          elsif Nam = TSS_Stream_Input then
!             Ent := Cached_Attribute_Ops.Input_Map.Get (U_Base);
!          elsif Nam = TSS_Stream_Output then
!             Ent := Cached_Attribute_Ops.Output_Map.Get (U_Base);
!          end if;
!       end;
  
        Cached_Attribute_Ops.Validate_Cached_Candidate
          (Subp => Ent, Attr_Ref => Attr_Ref);
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch11.adb gcc-16-20250608/gcc/ada/exp_ch11.adb
*** gcc-16-20250601/gcc/ada/exp_ch11.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch11.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch11 is
*** 1194,1201 ****
                     Prefix         => New_Occurrence_Of (Id, Loc),
                     Attribute_Name => Name_Unrestricted_Access)))));
  
-          Set_Register_Exception_Call (Id, First (L));
- 
           if not Is_Library_Level_Entity (Id) then
              Flag_Id :=
                Make_Defining_Identifier (Loc,
--- 1194,1199 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch3.adb gcc-16-20250608/gcc/ada/exp_ch3.adb
*** gcc-16-20250601/gcc/ada/exp_ch3.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch3.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch3 is
*** 2652,2662 ****
                 --  may have an incomplete type. In that case, it must also be
                 --  replaced by the formal of the Init_Proc.
  
!                if Nkind (Parent (Rec_Type)) = N_Full_Type_Declaration
!                  and then Present (Incomplete_View (Parent (Rec_Type)))
!                then
                    Append_Elmt (
!                     N  => Incomplete_View (Parent (Rec_Type)),
                      To => Map);
                    Append_Elmt (
                      N  => Defining_Identifier
--- 2652,2660 ----
                 --  may have an incomplete type. In that case, it must also be
                 --  replaced by the formal of the Init_Proc.
  
!                if Present (Incomplete_View (Rec_Type)) then
                    Append_Elmt (
!                     N  => Incomplete_View (Rec_Type),
                      To => Map);
                    Append_Elmt (
                      N  => Defining_Identifier
*************** package body Exp_Ch3 is
*** 3765,3770 ****
--- 3763,3783 ----
                       Actions := Build_Assignment (Id, Expression (Decl));
                    end if;
  
+                --  Expand components with constructors to have the 'Make
+                --  attribute.
+ 
+                elsif Present (Constructor_Name (Typ))
+                  and then Present (Default_Constructor (Typ))
+                then
+                   Set_Expression (Decl,
+                     Make_Attribute_Reference (Loc,
+                       Attribute_Name => Name_Make,
+                       Prefix         =>
+                         Subtype_Indication
+                           (Component_Definition (Decl))));
+                   Analyze (Expression (Decl));
+                   Actions := Build_Assignment (Id, Expression (Decl));
+ 
                 --  CPU, Dispatching_Domain, Priority, and Secondary_Stack_Size
                 --  components are filled in with the corresponding rep-item
                 --  expression of the concurrent type (if any).
*************** package body Exp_Ch3 is
*** 5423,5440 ****
              --  with an initial value, its Init_Proc will never be called. The
              --  initial value itself may have been expanded into assignments,
              --  in which case the declaration has the No_Initialization flag.
-             --  The exception is when the initial value is a 2-pass aggregate,
-             --  because the special expansion used for it creates a temporary
-             --  that needs a fully-fledged initialization.
  
              if Is_Itype (Base)
                and then Nkind (Associated_Node_For_Itype (Base)) =
                                                      N_Object_Declaration
                and then
!                 ((Present (Expression (Associated_Node_For_Itype (Base)))
!                     and then not
!                       Is_Two_Pass_Aggregate
!                         (Expression (Associated_Node_For_Itype (Base))))
                    or else No_Initialization (Associated_Node_For_Itype (Base)))
              then
                 null;
--- 5436,5447 ----
              --  with an initial value, its Init_Proc will never be called. The
              --  initial value itself may have been expanded into assignments,
              --  in which case the declaration has the No_Initialization flag.
  
              if Is_Itype (Base)
                and then Nkind (Associated_Node_For_Itype (Base)) =
                                                      N_Object_Declaration
                and then
!                 (Present (Expression (Associated_Node_For_Itype (Base)))
                    or else No_Initialization (Associated_Node_For_Itype (Base)))
              then
                 null;
*************** package body Exp_Ch3 is
*** 6760,6771 ****
     procedure Expand_N_Object_Declaration (N : Node_Id) is
        Loc      : constant Source_Ptr := Sloc (N);
        Def_Id   : constant Entity_Id  := Defining_Identifier (N);
-       Expr     : constant Node_Id    := Expression (N);
        Obj_Def  : constant Node_Id    := Object_Definition (N);
        Typ      : constant Entity_Id  := Etype (Def_Id);
        Base_Typ : constant Entity_Id  := Base_Type (Typ);
        Next_N   : constant Node_Id    := Next (N);
  
        Special_Ret_Obj : constant Boolean := Is_Special_Return_Object (Def_Id);
        --  If this is a special return object, it will be allocated differently
        --  and ultimately rewritten as a renaming, so initialization activities
--- 6767,6779 ----
     procedure Expand_N_Object_Declaration (N : Node_Id) is
        Loc      : constant Source_Ptr := Sloc (N);
        Def_Id   : constant Entity_Id  := Defining_Identifier (N);
        Obj_Def  : constant Node_Id    := Object_Definition (N);
        Typ      : constant Entity_Id  := Etype (Def_Id);
        Base_Typ : constant Entity_Id  := Base_Type (Typ);
        Next_N   : constant Node_Id    := Next (N);
  
+       Expr : Node_Id := Expression (N);
+ 
        Special_Ret_Obj : constant Boolean := Is_Special_Return_Object (Def_Id);
        --  If this is a special return object, it will be allocated differently
        --  and ultimately rewritten as a renaming, so initialization activities
*************** package body Exp_Ch3 is
*** 7482,7488 ****
        --  Don't do anything for deferred constants. All proper actions will be
        --  expanded during the full declaration.
  
!       if No (Expr) and Constant_Present (N) then
           return;
        end if;
  
--- 7490,7500 ----
        --  Don't do anything for deferred constants. All proper actions will be
        --  expanded during the full declaration.
  
!       if No (Expr)
!         and then Constant_Present (N)
!         and then (No (Constructor_Name (Typ))
!                    or else No (Default_Constructor (Typ)))
!       then
           return;
        end if;
  
*************** package body Exp_Ch3 is
*** 7507,7512 ****
--- 7519,7539 ----
           return;
        end if;
  
+       --  Expand objects with default constructors to have the 'Make
+       --  attribute.
+ 
+       if Comes_From_Source (N)
+         and then No (Expr)
+         and then Present (Constructor_Name (Typ))
+         and then Present (Default_Constructor (Typ))
+       then
+          Expr := Make_Attribute_Reference (Loc,
+                    Attribute_Name => Name_Make,
+                    Prefix         => Object_Definition (N));
+          Set_Expression (N, Expr);
+          Analyze_And_Resolve (Expr);
+       end if;
+ 
        --  Make shared memory routines for shared passive variable
  
        if Is_Shared_Passive (Def_Id) then
*************** package body Exp_Ch3 is
*** 8293,8304 ****
--- 8320,8334 ----
              --  where the object has been initialized by a call to a function
              --  returning on the primary stack (see Expand_Ctrl_Function_Call)
              --  since no copy occurred, given that the type is by-reference.
+             --  Likewise if it is initialized by a 2-pass aggregate, since the
+             --  actual initialization will only occur during the second pass.
              --  Similarly, no adjustment is needed if we are going to rewrite
              --  the object declaration into a renaming declaration.
  
              if Needs_Finalization (Typ)
                and then not Is_Inherently_Limited_Type (Typ)
                and then Nkind (Expr_Q) /= N_Function_Call
+               and then not Is_Two_Pass_Aggregate (Expr_Q)
                and then not Rewrite_As_Renaming
              then
                 Adj_Call :=
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch4.adb gcc-16-20250608/gcc/ada/exp_ch4.adb
*** gcc-16-20250601/gcc/ada/exp_ch4.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch4.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch4 is
*** 769,775 ****
        --  Local variables
  
        Aggr_In_Place     : Boolean;
-       Container_Aggr    : Boolean;
        Delayed_Cond_Expr : Boolean;
  
        TagT : Entity_Id := Empty;
--- 769,774 ----
*************** package body Exp_Ch4 is
*** 865,877 ****
  
        Aggr_In_Place     := Is_Delayed_Aggregate (Exp);
        Delayed_Cond_Expr := Is_Delayed_Conditional_Expression (Exp);
-       Container_Aggr    := Nkind (Exp) = N_Aggregate
-                              and then Has_Aspect (T, Aspect_Aggregate);
  
!       --  An allocator with a container aggregate as qualified expression must
!       --  be rewritten into the form expected by Expand_Container_Aggregate.
  
!       if Container_Aggr then
           Temp := Make_Temporary (Loc, 'P', N);
           Set_Analyzed (Exp, False);
           Insert_Action (N,
--- 864,878 ----
  
        Aggr_In_Place     := Is_Delayed_Aggregate (Exp);
        Delayed_Cond_Expr := Is_Delayed_Conditional_Expression (Exp);
  
!       --  An allocator with a container aggregate, resp. a 2-pass aggregate,
!       --  as qualified expression must be rewritten into the form expected by
!       --  Expand_Container_Aggregate, resp. Two_Pass_Aggregate_Expansion.
  
!       if Nkind (Exp) = N_Aggregate
!         and then (Has_Aspect (T, Aspect_Aggregate)
!                    or else Is_Two_Pass_Aggregate (Exp))
!       then
           Temp := Make_Temporary (Loc, 'P', N);
           Set_Analyzed (Exp, False);
           Insert_Action (N,
*************** package body Exp_Ch4 is
*** 4490,4495 ****
--- 4491,4505 ----
           Error_Msg_N ("?_a?use of an anonymous access type allocator", N);
        end if;
  
+       --  Here we set no initialization on types with constructors since we
+       --  generate initialization for the separately.
+ 
+       if Present (Constructor_Name (Directly_Designated_Type (PtrT)))
+         and then Nkind (Expression (N)) = N_Identifier
+       then
+          Set_No_Initialization (N, False);
+       end if;
+ 
        --  RM E.2.2(17). We enforce that the expected type of an allocator
        --  shall not be a remote access-to-class-wide-limited-private type.
        --  We probably shouldn't be doing this legality check during expansion,
*************** package body Exp_Ch4 is
*** 13291,13300 ****
        Obj_Decl : constant Node_Id :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Obj_Id,
!           Aliased_Present     => Aliased_Present (Decl),
            Constant_Present    => Constant_Present (Decl),
            Object_Definition   => New_Copy_Tree (Object_Definition (Decl)),
            Expression          => Relocate_Node (Expr));
  
        Master_Node_Decl : Node_Id;
        Master_Node_Id   : Entity_Id;
--- 13301,13312 ----
        Obj_Decl : constant Node_Id :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Obj_Id,
!           Aliased_Present     => True,
            Constant_Present    => Constant_Present (Decl),
            Object_Definition   => New_Copy_Tree (Object_Definition (Decl)),
            Expression          => Relocate_Node (Expr));
+       --  We make the object unconditionally aliased to avoid dangling bound
+       --  issues when its nominal subtype is an unconstrained array type.
  
        Master_Node_Decl : Node_Id;
        Master_Node_Id   : Entity_Id;
*************** package body Exp_Ch4 is
*** 13309,13314 ****
--- 13321,13331 ----
  
        Insert_Action (Expr, Obj_Decl);
  
+       --  The object can never be local to an elaboration routine at library
+       --  level since we will take 'Unrestricted_Access of it.
+ 
+       Set_Is_Statically_Allocated (Obj_Id, Is_Library_Level_Entity (Obj_Id));
+ 
        --  If the object needs finalization, we need to insert its Master_Node
        --  manually because 1) the machinery in Exp_Ch7 will not pick it since
        --  it will be declared in the arm of a conditional statement and 2) we
*************** package body Exp_Ch4 is
*** 15035,15044 ****
  
        --  Handle entities from the limited view
  
!       Orig_Right_Type : constant Entity_Id := Available_View (Etype (Right));
  
        Full_R_Typ   : Entity_Id;
!       Left_Type    : Entity_Id := Available_View (Etype (Left));
        Right_Type   : Entity_Id := Orig_Right_Type;
        Obj_Tag      : Node_Id;
  
--- 15052,15062 ----
  
        --  Handle entities from the limited view
  
!       Orig_Right_Type : constant Entity_Id :=
!         Base_Type (Available_View (Etype (Right)));
  
        Full_R_Typ   : Entity_Id;
!       Left_Type    : Entity_Id := Base_Type (Available_View (Etype (Left)));
        Right_Type   : Entity_Id := Orig_Right_Type;
        Obj_Tag      : Node_Id;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch5.adb gcc-16-20250608/gcc/ada/exp_ch5.adb
*** gcc-16-20250601/gcc/ada/exp_ch5.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch5.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch5 is
*** 1039,1045 ****
                           Prefix =>
                             Make_Indexed_Component (Loc,
                               Prefix =>
!                                Duplicate_Subexpr_Move_Checks (Larray, True),
                               Expressions => New_List (
                                 Make_Attribute_Reference (Loc,
                                   Prefix =>
--- 1039,1046 ----
                           Prefix =>
                             Make_Indexed_Component (Loc,
                               Prefix =>
!                                Duplicate_Subexpr_Move_Checks
!                                  (Larray, Name_Req => True),
                               Expressions => New_List (
                                 Make_Attribute_Reference (Loc,
                                   Prefix =>
*************** package body Exp_Ch5 is
*** 1054,1060 ****
                           Prefix =>
                             Make_Indexed_Component (Loc,
                               Prefix =>
!                                Duplicate_Subexpr_Move_Checks (Rarray, True),
                               Expressions => New_List (
                                 Make_Attribute_Reference (Loc,
                                   Prefix =>
--- 1055,1062 ----
                           Prefix =>
                             Make_Indexed_Component (Loc,
                               Prefix =>
!                                Duplicate_Subexpr_Move_Checks
!                                  (Rarray, Name_Req => True),
                               Expressions => New_List (
                                 Make_Attribute_Reference (Loc,
                                   Prefix =>
*************** package body Exp_Ch5 is
*** 1396,1402 ****
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Larray, True),
                Expressions => New_List (New_Copy_Tree (Left_Lo))),
            Attribute_Name => Name_Address);
  
--- 1398,1404 ----
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Larray, Name_Req => True),
                Expressions => New_List (New_Copy_Tree (Left_Lo))),
            Attribute_Name => Name_Address);
  
*************** package body Exp_Ch5 is
*** 1405,1411 ****
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Larray, True),
                Expressions => New_List (New_Copy_Tree (Left_Lo))),
            Attribute_Name => Name_Bit);
  
--- 1407,1413 ----
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Larray, Name_Req => True),
                Expressions => New_List (New_Copy_Tree (Left_Lo))),
            Attribute_Name => Name_Bit);
  
*************** package body Exp_Ch5 is
*** 1414,1420 ****
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Rarray, True),
                Expressions => New_List (New_Copy_Tree (Right_Lo))),
            Attribute_Name => Name_Address);
  
--- 1416,1422 ----
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Rarray, Name_Req => True),
                Expressions => New_List (New_Copy_Tree (Right_Lo))),
            Attribute_Name => Name_Address);
  
*************** package body Exp_Ch5 is
*** 1423,1429 ****
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Rarray, True),
                Expressions => New_List (New_Copy_Tree (Right_Lo))),
            Attribute_Name => Name_Bit);
  
--- 1425,1431 ----
            Prefix =>
              Make_Indexed_Component (Loc,
                Prefix =>
!                 Duplicate_Subexpr (Rarray, Name_Req => True),
                Expressions => New_List (New_Copy_Tree (Right_Lo))),
            Attribute_Name => Name_Bit);
  
*************** package body Exp_Ch5 is
*** 1439,1449 ****
          Make_Op_Multiply (Loc,
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Name (N), True),
              Attribute_Name => Name_Length),
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Name (N), True),
              Attribute_Name => Name_Component_Size));
  
     begin
--- 1441,1451 ----
          Make_Op_Multiply (Loc,
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Name (N), Name_Req => True),
              Attribute_Name => Name_Length),
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Name (N), Name_Req => True),
              Attribute_Name => Name_Component_Size));
  
     begin
*************** package body Exp_Ch5 is
*** 1527,1537 ****
          Make_Op_Multiply (Loc,
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Name (N), True),
              Attribute_Name => Name_Length),
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Larray, True),
              Attribute_Name => Name_Component_Size));
  
        L_Arg, R_Arg, Call : Node_Id;
--- 1529,1539 ----
          Make_Op_Multiply (Loc,
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Name (N), Name_Req => True),
              Attribute_Name => Name_Length),
            Make_Attribute_Reference (Loc,
              Prefix =>
!               Duplicate_Subexpr (Larray, Name_Req => True),
              Attribute_Name => Name_Component_Size));
  
        L_Arg, R_Arg, Call : Node_Id;
*************** package body Exp_Ch5 is
*** 1582,1588 ****
        end if;
  
        return Make_Assignment_Statement (Loc,
!         Name => Duplicate_Subexpr (Larray, True),
          Expression => Unchecked_Convert_To (L_Typ, Call));
     end Expand_Assign_Array_Bitfield_Fast;
  
--- 1584,1590 ----
        end if;
  
        return Make_Assignment_Statement (Loc,
!         Name => Duplicate_Subexpr (Larray, Name_Req => True),
          Expression => Unchecked_Convert_To (L_Typ, Call));
     end Expand_Assign_Array_Bitfield_Fast;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch6.adb gcc-16-20250608/gcc/ada/exp_ch6.adb
*** gcc-16-20250601/gcc/ada/exp_ch6.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch6.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch6 is
*** 2470,2480 ****
              --  (and ensure that we have an activation chain defined for tasks
              --  and a Master variable).
  
-             --  Currently we limit such functions to those with inherently
-             --  limited result subtypes, but eventually we plan to expand the
-             --  functions that are treated as build-in-place to include other
-             --  composite result types.
- 
              --  But do not do it here for intrinsic subprograms since this will
              --  be done properly after the subprogram is expanded.
  
--- 2470,2475 ----
*************** package body Exp_Ch6 is
*** 8562,8573 ****
     procedure Make_Build_In_Place_Call_In_Anonymous_Context
       (Function_Call : Node_Id)
     is
!       Loc             : constant Source_Ptr := Sloc (Function_Call);
!       Func_Call       : constant Node_Id := Unqual_Conv (Function_Call);
!       Function_Id     : Entity_Id;
!       Result_Subt     : Entity_Id;
!       Return_Obj_Id   : Entity_Id;
!       Return_Obj_Decl : Entity_Id;
  
     begin
        --  If the call has already been processed to add build-in-place actuals
--- 8557,8566 ----
     procedure Make_Build_In_Place_Call_In_Anonymous_Context
       (Function_Call : Node_Id)
     is
!       Loc         : constant Source_Ptr := Sloc (Function_Call);
!       Func_Call   : constant Node_Id    := Unqual_Conv (Function_Call);
!       Function_Id : Entity_Id;
!       Result_Subt : Entity_Id;
  
     begin
        --  If the call has already been processed to add build-in-place actuals
*************** package body Exp_Ch6 is
*** 8580,8589 ****
           return;
        end if;
  
-       --  Mark the call as processed as a build-in-place call
- 
-       Set_Is_Expanded_Build_In_Place_Call (Func_Call);
- 
        if Is_Entity_Name (Name (Func_Call)) then
           Function_Id := Entity (Name (Func_Call));
  
--- 8573,8578 ----
*************** package body Exp_Ch6 is
*** 8601,8608 ****
        --  If the build-in-place function returns a controlled object, then the
        --  object needs to be finalized immediately after the context. Since
        --  this case produces a transient scope, the servicing finalizer needs
!       --  to name the returned object. Create a temporary which is initialized
!       --  with the function call:
        --
        --    Temp_Id : Func_Type := BIP_Func_Call;
        --
--- 8590,8602 ----
        --  If the build-in-place function returns a controlled object, then the
        --  object needs to be finalized immediately after the context. Since
        --  this case produces a transient scope, the servicing finalizer needs
!       --  to name the returned object.
! 
!       --  If the build-in-place function returns a definite subtype, then an
!       --  object also needs to be created and an access value designating it
!       --  passed as an actual.
! 
!       --  Create a temporary which is initialized with the function call:
        --
        --    Temp_Id : Func_Type := BIP_Func_Call;
        --
*************** package body Exp_Ch6 is
*** 8610,8684 ****
        --  the expander using the appropriate mechanism in Make_Build_In_Place_
        --  Call_In_Object_Declaration.
  
!       if Needs_Finalization (Result_Subt) then
           declare
              Temp_Id   : constant Entity_Id := Make_Temporary (Loc, 'R');
!             Temp_Decl : Node_Id;
! 
!          begin
!             --  Reset the guard on the function call since the following does
!             --  not perform actual call expansion.
! 
!             Set_Is_Expanded_Build_In_Place_Call (Func_Call, False);
! 
!             Temp_Decl :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Temp_Id,
!                 Object_Definition =>
!                   New_Occurrence_Of (Result_Subt, Loc),
!                 Expression =>
!                   New_Copy_Tree (Function_Call));
  
              Insert_Action (Function_Call, Temp_Decl);
- 
              Rewrite (Function_Call, New_Occurrence_Of (Temp_Id, Loc));
              Analyze (Function_Call);
           end;
  
-       --  When the result subtype is definite, an object of the subtype is
-       --  declared and an access value designating it is passed as an actual.
- 
-       elsif Caller_Known_Size (Func_Call, Result_Subt) then
- 
-          --  Create a temporary object to hold the function result
- 
-          Return_Obj_Id := Make_Temporary (Loc, 'R');
-          Set_Etype (Return_Obj_Id, Result_Subt);
- 
-          Return_Obj_Decl :=
-            Make_Object_Declaration (Loc,
-              Defining_Identifier => Return_Obj_Id,
-              Aliased_Present     => True,
-              Object_Definition   => New_Occurrence_Of (Result_Subt, Loc));
- 
-          Set_No_Initialization (Return_Obj_Decl);
- 
-          Insert_Action (Func_Call, Return_Obj_Decl);
- 
-          --  When the function has a controlling result, an allocation-form
-          --  parameter must be passed indicating that the caller is allocating
-          --  the result object. This is needed because such a function can be
-          --  called as a dispatching operation and must be treated similarly
-          --  to functions with unconstrained result subtypes.
- 
-          Add_Unconstrained_Actuals_To_Build_In_Place_Call
-            (Func_Call, Function_Id, Alloc_Form => Caller_Allocation);
- 
-          Add_Collection_Actual_To_Build_In_Place_Call
-            (Func_Call, Function_Id);
- 
-          Add_Task_Actuals_To_Build_In_Place_Call
-            (Func_Call, Function_Id, Make_Identifier (Loc, Name_uMaster));
- 
-          --  Add an implicit actual to the function call that provides access
-          --  to the caller's return object.
- 
-          Add_Access_Actual_To_Build_In_Place_Call
-            (Func_Call, Function_Id, New_Occurrence_Of (Return_Obj_Id, Loc));
- 
-          pragma Assert (Check_Number_Of_Actuals (Func_Call, Function_Id));
-          pragma Assert (Check_BIP_Actuals (Func_Call, Function_Id));
- 
        --  When the result subtype is unconstrained, the function must allocate
        --  the return object in the secondary stack, so appropriate implicit
        --  parameters are added to the call to indicate that. A transient
--- 8604,8628 ----
        --  the expander using the appropriate mechanism in Make_Build_In_Place_
        --  Call_In_Object_Declaration.
  
!       if Needs_Finalization (Result_Subt)
!         or else Caller_Known_Size (Func_Call, Result_Subt)
!       then
           declare
              Temp_Id   : constant Entity_Id := Make_Temporary (Loc, 'R');
!             Temp_Decl : constant Node_Id   :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Temp_Id,
!                 Aliased_Present     => True,
!                 Object_Definition   => New_Occurrence_Of (Result_Subt, Loc),
!                 Expression          => Relocate_Node (Function_Call));
  
+          begin
+             Set_Assignment_OK (Temp_Decl);
              Insert_Action (Function_Call, Temp_Decl);
              Rewrite (Function_Call, New_Occurrence_Of (Temp_Id, Loc));
              Analyze (Function_Call);
           end;
  
        --  When the result subtype is unconstrained, the function must allocate
        --  the return object in the secondary stack, so appropriate implicit
        --  parameters are added to the call to indicate that. A transient
*************** package body Exp_Ch6 is
*** 8703,8708 ****
--- 8647,8656 ----
           Add_Access_Actual_To_Build_In_Place_Call
             (Func_Call, Function_Id, Empty);
  
+          --  Mark the call as processed as a build-in-place call
+ 
+          Set_Is_Expanded_Build_In_Place_Call (Func_Call);
+ 
           pragma Assert (Check_Number_Of_Actuals (Func_Call, Function_Id));
           pragma Assert (Check_BIP_Actuals (Func_Call, Function_Id));
        end if;
*************** package body Exp_Ch6 is
*** 9909,9914 ****
--- 9857,9869 ----
                    return Skip;
                 end if;
  
+             --  Skip calls placed in unexpanded initialization expressions
+ 
+             when N_Object_Declaration =>
+                if No_Initialization (Nod) then
+                   return Skip;
+                end if;
+ 
              --  Skip calls placed in subprogram specifications since function
              --  calls initializing default parameter values will be processed
              --  when the call to the subprogram is found (if the default actual
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch7.adb gcc-16-20250608/gcc/ada/exp_ch7.adb
*** gcc-16-20250601/gcc/ada/exp_ch7.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch7.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch7 is
*** 2783,2798 ****
--- 2783,2813 ----
              Master_Node_Id :=
                Make_Defining_Identifier (Master_Node_Loc,
                  Chars => New_External_Name (Chars (Obj_Id), Suffix => "MN"));
+ 
              Master_Node_Decl :=
                Make_Master_Node_Declaration (Master_Node_Loc,
                  Master_Node_Id, Obj_Id);
  
              Push_Scope (Scope (Obj_Id));
+ 
+             --  Avoid generating duplicate names for master nodes
+ 
+             if Ekind (Obj_Id) = E_Loop_Parameter
+               and then
+                 Present (Current_Entity_In_Scope (Chars (Master_Node_Id)))
+             then
+                Set_Chars (Master_Node_Id,
+                  New_External_Name (Chars (Obj_Id),
+                    Suffix => "MN",
+                    Suffix_Index => -1));
+             end if;
+ 
              if not Has_Strict_Ctrl_Objs or else Count = 1 then
                 Prepend_To (Decls, Master_Node_Decl);
              else
                 Insert_Before (Decl, Master_Node_Decl);
              end if;
+ 
              Analyze (Master_Node_Decl);
              Pop_Scope;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_ch9.adb gcc-16-20250608/gcc/ada/exp_ch9.adb
*** gcc-16-20250601/gcc/ada/exp_ch9.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_ch9.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Ch9 is
*** 4273,4278 ****
--- 4273,4279 ----
                     Defining_Identifier => Obj,
                     Object_Definition   => New_Occurrence_Of (Conctyp, Loc),
                     Expression          => ExpR);
+                Mutate_Ekind (Obj, E_Variable);
                 Set_Etype (Obj, Conctyp);
                 Decls := New_List (Decl);
                 Rewrite (Concval, New_Occurrence_Of (Obj, Loc));
*************** package body Exp_Ch9 is
*** 5747,5753 ****
        Insert_Before_And_Analyze (N, Decl1);
  
        --  Associate the access to subprogram with its original access to
!       --  protected subprogram type. Needed by the backend to know that this
        --  type corresponds with an access to protected subprogram type.
  
        Set_Original_Access_Type (D_T2, T);
--- 5748,5754 ----
        Insert_Before_And_Analyze (N, Decl1);
  
        --  Associate the access to subprogram with its original access to
!       --  protected subprogram type. Needed by CodePeer to know that this
        --  type corresponds with an access to protected subprogram type.
  
        Set_Original_Access_Type (D_T2, T);
*************** package body Exp_Ch9 is
*** 9877,9883 ****
           --      (T        => To_Tag_Ptr (Obj'Address).all,
           --       Position =>
           --         Ada.Tags.Get_Offset_Index
!          --           (Ada.Tags.Tag (Concval),
           --            <interface dispatch table position of Ename>));
  
           --  Note that Obj'Address is recursively expanded into a call to
--- 9878,9884 ----
           --      (T        => To_Tag_Ptr (Obj'Address).all,
           --       Position =>
           --         Ada.Tags.Get_Offset_Index
!          --           (Concval._Tag,
           --            <interface dispatch table position of Ename>));
  
           --  Note that Obj'Address is recursively expanded into a call to
*************** package body Exp_Ch9 is
*** 9898,9904 ****
                    Make_Function_Call (Loc,
                      Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
                      Parameter_Associations => New_List (
!                       Unchecked_Convert_To (RTE (RE_Tag), Concval),
                        Make_Integer_Literal (Loc,
                          DT_Position (Entity (Ename))))))));
  
--- 9899,9907 ----
                    Make_Function_Call (Loc,
                      Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
                      Parameter_Associations => New_List (
!                       Make_Attribute_Reference (Loc,
!                         Prefix         => Concval,
!                         Attribute_Name => Name_Tag),
                        Make_Integer_Literal (Loc,
                          DT_Position (Entity (Ename))))))));
  
*************** package body Exp_Ch9 is
*** 10593,10606 ****
                    Build_Accept_Body (Accept_Statement (Alt)));
  
              Reset_Scopes_To (Proc_Body, PB_Ent);
- 
-             --  During the analysis of the body of the accept statement, any
-             --  zero cost exception handler records were collected in the
-             --  Accept_Handler_Records field of the N_Accept_Alternative node.
-             --  This is where we move them to where they belong, namely the
-             --  newly created procedure.
- 
-             Set_Handler_Records (PB_Ent, Accept_Handler_Records (Alt));
              Append (Proc_Body, Body_List);
  
           else
--- 10596,10601 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_dist.adb gcc-16-20250608/gcc/ada/exp_dist.adb
*** gcc-16-20250601/gcc/ada/exp_dist.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_dist.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Dist is
*** 10980,10985 ****
--- 10980,10986 ----
              if not Constrained or else Depth > 1 then
                 Inner_Any := Make_Defining_Identifier (Loc,
                                New_External_Name ('A', Depth));
+                Mutate_Ekind (Inner_Any, E_Variable);
                 Set_Etype (Inner_Any, RTE (RE_Any));
              else
                 Inner_Any := Empty;
*************** package body Exp_Dist is
*** 10988,10993 ****
--- 10989,10995 ----
              if Present (Counter) then
                 Inner_Counter := Make_Defining_Identifier (Loc,
                                    New_External_Name ('J', Depth));
+                Mutate_Ekind (Inner_Counter, E_Variable);
              else
                 Inner_Counter := Empty;
              end if;
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_fixd.adb gcc-16-20250608/gcc/ada/exp_fixd.adb
*** gcc-16-20250601/gcc/ada/exp_fixd.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_fixd.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Fixd is
*** 570,581 ****
--- 570,585 ----
        --  Case where we can compute the denominator in Max_Integer_Size bits
  
        if QR_Id = RE_Null then
+          Mutate_Ekind (Qnn, E_Constant);
+          Mutate_Ekind (Rnn, E_Constant);
  
           --  Create temporaries for numerator and denominator and set Etypes,
           --  so that New_Occurrence_Of picks them up for Build_xxx calls.
  
           Nnn := Make_Temporary (Loc, 'N');
+          Mutate_Ekind (Nnn, E_Constant);
           Dnn := Make_Temporary (Loc, 'D');
+          Mutate_Ekind (Dnn, E_Constant);
  
           Set_Etype (Nnn, QR_Typ);
           Set_Etype (Dnn, QR_Typ);
*************** package body Exp_Fixd is
*** 621,626 ****
--- 625,632 ----
        --  to call the runtime routine to compute the quotient and remainder.
  
        else
+          Mutate_Ekind (Qnn, E_Variable);
+          Mutate_Ekind (Rnn, E_Variable);
           Rnd := Boolean_Literals (Rounded_Result_Set (N));
  
           Code := New_List (
*************** package body Exp_Fixd is
*** 935,942 ****
--- 941,953 ----
        --  Case where we can compute the numerator in Max_Integer_Size bits
  
        if QR_Id = RE_Null then
+          Mutate_Ekind (Qnn, E_Constant);
+          Mutate_Ekind (Rnn, E_Constant);
+ 
           Nnn := Make_Temporary (Loc, 'N');
+          Mutate_Ekind (Nnn, E_Constant);
           Dnn := Make_Temporary (Loc, 'D');
+          Mutate_Ekind (Dnn, E_Constant);
  
           --  Set Etypes, so that they can be picked up by New_Occurrence_Of
  
*************** package body Exp_Fixd is
*** 982,987 ****
--- 993,1001 ----
        --  to call the runtime routine to compute the quotient and remainder.
  
        else
+          Mutate_Ekind (Qnn, E_Variable);
+          Mutate_Ekind (Rnn, E_Variable);
+ 
           Rnd := Boolean_Literals (Rounded_Result_Set (N));
  
           Code := New_List (
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_pakd.adb gcc-16-20250608/gcc/ada/exp_pakd.adb
*** gcc-16-20250601/gcc/ada/exp_pakd.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_pakd.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Pakd is
*** 904,910 ****
           --  discriminants, so we treat it as a default/per-object expression.
  
           Set_Parent (Len_Expr, Typ);
!          Preanalyze_Spec_Expression (Len_Expr, Standard_Long_Long_Integer);
  
           --  Use a modular type if possible. We can do this if we have
           --  static bounds, and the length is small enough, and the length
--- 904,911 ----
           --  discriminants, so we treat it as a default/per-object expression.
  
           Set_Parent (Len_Expr, Typ);
!          Preanalyze_And_Resolve_Spec_Expression
!            (Len_Expr, Standard_Long_Long_Integer);
  
           --  Use a modular type if possible. We can do this if we have
           --  static bounds, and the length is small enough, and the length
*************** package body Exp_Pakd is
*** 1525,1545 ****
  
        Get_Base_And_Bit_Offset (Prefix (N), Base, Offset);
  
!       Rewrite (N,
!         Unchecked_Convert_To (RTE (RE_Address),
!           Make_Op_Add (Loc,
!             Left_Opnd =>
!               Unchecked_Convert_To (RTE (RE_Integer_Address),
!                 Make_Attribute_Reference (Loc,
!                   Prefix         => Base,
!                   Attribute_Name => Name_Address)),
  
!             Right_Opnd =>
!               Unchecked_Convert_To (RTE (RE_Integer_Address),
!                 Make_Op_Divide (Loc,
!                   Left_Opnd => Offset,
!                   Right_Opnd =>
!                     Make_Integer_Literal (Loc, System_Storage_Unit))))));
  
        Analyze_And_Resolve (N, RTE (RE_Address));
     end Expand_Packed_Address_Reference;
--- 1526,1549 ----
  
        Get_Base_And_Bit_Offset (Prefix (N), Base, Offset);
  
!       Offset := Unchecked_Convert_To (RTE (RE_Storage_Offset), Offset);
  
!       Rewrite (N,
!         Make_Function_Call (Loc,
!           Name =>
!             Make_Expanded_Name (Loc,
!               Chars         => Name_Op_Add,
!               Prefix        =>
!                 New_Occurrence_Of (RTU_Entity (System_Storage_Elements), Loc),
!               Selector_Name => Make_Identifier (Loc, Name_Op_Add)),
!           Parameter_Associations => New_List (
!             Make_Attribute_Reference (Loc,
!               Prefix         => Base,
!               Attribute_Name => Name_Address),
!             Make_Op_Divide (Loc,
!               Left_Opnd  => Offset,
!               Right_Opnd =>
!                 Make_Integer_Literal (Loc, System_Storage_Unit)))));
  
        Analyze_And_Resolve (N, RTE (RE_Address));
     end Expand_Packed_Address_Reference;
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_prag.adb gcc-16-20250608/gcc/ada/exp_prag.adb
*** gcc-16-20250601/gcc/ada/exp_prag.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_prag.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Prag is
*** 3083,3088 ****
--- 3083,3098 ----
     end Expand_Pragma_Loop_Variant;
  
     --------------------------------
+    -- Expand_Pragma_Program_Exit --
+    --------------------------------
+ 
+    procedure Expand_Pragma_Program_Exit (Prag : Node_Id) is
+       pragma Unreferenced (Prag);
+    begin
+       null;
+    end Expand_Pragma_Program_Exit;
+ 
+    --------------------------------
     -- Expand_Pragma_Psect_Object --
     --------------------------------
  
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_prag.ads gcc-16-20250608/gcc/ada/exp_prag.ads
*** gcc-16-20250601/gcc/ada/exp_prag.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_prag.ads	Sun Jun  8 22:32:15 2025
*************** package Exp_Prag is
*** 72,75 ****
--- 72,79 ----
     --  of Prag is replaced with a reference to procedure with checks for the
     --  variant expressions.
  
+    procedure Expand_Pragma_Program_Exit (Prag : Node_Id);
+    --  This routine only exists for consistency with other pragmas, since
+    --  Program_Exit has no meaningful expansion.
+ 
  end Exp_Prag;
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_util.adb gcc-16-20250608/gcc/ada/exp_util.adb
*** gcc-16-20250601/gcc/ada/exp_util.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_util.adb	Sun Jun  8 22:32:15 2025
*************** package body Exp_Util is
*** 1081,1090 ****
                  Make_Attribute_Reference (Loc,
                    Prefix         =>
                      (if Is_Allocate then
!                        Duplicate_Subexpr_No_Checks (Expression (Alloc_Expr))
                       else
                         Make_Explicit_Dereference (Loc,
!                          Duplicate_Subexpr_No_Checks (Expr))),
                    Attribute_Name => Name_Alignment)));
           end if;
  
--- 1081,1092 ----
                  Make_Attribute_Reference (Loc,
                    Prefix         =>
                      (if Is_Allocate then
!                        Duplicate_Subexpr_No_Checks
!                          (Expression (Alloc_Expr), New_Scope => Proc_Id)
                       else
                         Make_Explicit_Dereference (Loc,
!                          Duplicate_Subexpr_No_Checks
!                            (Expr, New_Scope => Proc_Id))),
                    Attribute_Name => Name_Alignment)));
           end if;
  
*************** package body Exp_Util is
*** 1137,1143 ****
                    if Is_RTE (Etype (Temp), RE_Tag_Ptr) then
                       Param :=
                         Make_Explicit_Dereference (Loc,
!                          Prefix => Duplicate_Subexpr_No_Checks (Temp));
  
                    --  In the default case, obtain the tag of the object about
                    --  to be allocated / deallocated. Generate:
--- 1139,1147 ----
                    if Is_RTE (Etype (Temp), RE_Tag_Ptr) then
                       Param :=
                         Make_Explicit_Dereference (Loc,
!                          Prefix =>
!                            Duplicate_Subexpr_No_Checks
!                              (Temp, New_Scope => Proc_Id));
  
                    --  In the default case, obtain the tag of the object about
                    --  to be allocated / deallocated. Generate:
*************** package body Exp_Util is
*** 1157,1163 ****
  
                       Param :=
                         Make_Attribute_Reference (Loc,
!                          Prefix         => Duplicate_Subexpr_No_Checks (Temp),
                           Attribute_Name => Name_Tag);
                    end if;
  
--- 1161,1169 ----
  
                       Param :=
                         Make_Attribute_Reference (Loc,
!                          Prefix         =>
!                            Duplicate_Subexpr_No_Checks
!                              (Temp, New_Scope => Proc_Id),
                           Attribute_Name => Name_Tag);
                    end if;
  
*************** package body Exp_Util is
*** 1956,1962 ****
           --  time capture the visibility of the proper package part.
  
           Set_Parent (Expr, Typ_Decl);
!          Preanalyze_Assert_Expression (Expr, Any_Boolean);
  
           --  Save a copy of the expression with all replacements and analysis
           --  already taken place in case a derived type inherits the pragma.
--- 1962,1968 ----
           --  time capture the visibility of the proper package part.
  
           Set_Parent (Expr, Typ_Decl);
!          Preanalyze_And_Resolve_Assert_Expression (Expr, Any_Boolean);
  
           --  Save a copy of the expression with all replacements and analysis
           --  already taken place in case a derived type inherits the pragma.
*************** package body Exp_Util is
*** 1969,1976 ****
  
           --  If the pragma comes from an aspect specification, replace the
           --  saved expression because all type references must be substituted
!          --  for the call to Preanalyze_Spec_Expression in Check_Aspect_At_xxx
!          --  routines.
  
           if Present (DIC_Asp) then
              Set_Expression_Copy (DIC_Asp, New_Copy_Tree (Expr));
--- 1975,1982 ----
  
           --  If the pragma comes from an aspect specification, replace the
           --  saved expression because all type references must be substituted
!          --  for the call to Preanalyze_And_Resolve_Spec_Expression in
!          --  Check_Aspect_At_xxx routines.
  
           if Present (DIC_Asp) then
              Set_Expression_Copy (DIC_Asp, New_Copy_Tree (Expr));
*************** package body Exp_Util is
*** 3217,3223 ****
                 --  part.
  
                 Set_Parent (Expr, Parent (Prag_Expr));
!                Preanalyze_Assert_Expression (Expr, Any_Boolean);
  
                 --  Save a copy of the expression when T is tagged to detect
                 --  errors and capture the visibility of the proper package part
--- 3223,3229 ----
                 --  part.
  
                 Set_Parent (Expr, Parent (Prag_Expr));
!                Preanalyze_And_Resolve_Assert_Expression (Expr, Any_Boolean);
  
                 --  Save a copy of the expression when T is tagged to detect
                 --  errors and capture the visibility of the proper package part
*************** package body Exp_Util is
*** 3229,3236 ****
  
                 --  If the pragma comes from an aspect specification, replace
                 --  the saved expression because all type references must be
!                --  substituted for the call to Preanalyze_Spec_Expression in
!                --  Check_Aspect_At_xxx routines.
  
                 if Present (Prag_Asp) then
                    Set_Expression_Copy (Prag_Asp, New_Copy_Tree (Expr));
--- 3235,3242 ----
  
                 --  If the pragma comes from an aspect specification, replace
                 --  the saved expression because all type references must be
!                --  substituted for the call to Preanalyze_And_Resolve_Spec_
!                --  Expression in Check_Aspect_At_xxx routines.
  
                 if Present (Prag_Asp) then
                    Set_Expression_Copy (Prag_Asp, New_Copy_Tree (Expr));
*************** package body Exp_Util is
*** 5062,5073 ****
  
     function Duplicate_Subexpr
       (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id
     is
     begin
        Remove_Side_Effects (Exp, Name_Req, Renaming_Req);
!       return New_Copy_Tree (Exp);
     end Duplicate_Subexpr;
  
     ---------------------------------
--- 5068,5080 ----
  
     function Duplicate_Subexpr
       (Exp          : Node_Id;
!       New_Scope    : Entity_Id := Empty;
!       Name_Req     : Boolean   := False;
!       Renaming_Req : Boolean   := False) return Node_Id
     is
     begin
        Remove_Side_Effects (Exp, Name_Req, Renaming_Req);
!       return New_Copy_Tree (Exp, New_Scope => New_Scope);
     end Duplicate_Subexpr;
  
     ---------------------------------
*************** package body Exp_Util is
*** 5076,5083 ****
  
     function Duplicate_Subexpr_No_Checks
       (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id
     is
        New_Exp : Node_Id;
  
--- 5083,5091 ----
  
     function Duplicate_Subexpr_No_Checks
       (Exp          : Node_Id;
!       New_Scope    : Entity_Id := Empty;
!       Name_Req     : Boolean   := False;
!       Renaming_Req : Boolean   := False) return Node_Id
     is
        New_Exp : Node_Id;
  
*************** package body Exp_Util is
*** 5087,5093 ****
           Name_Req     => Name_Req,
           Renaming_Req => Renaming_Req);
  
!       New_Exp := New_Copy_Tree (Exp);
        Remove_Checks (New_Exp);
        return New_Exp;
     end Duplicate_Subexpr_No_Checks;
--- 5095,5101 ----
           Name_Req     => Name_Req,
           Renaming_Req => Renaming_Req);
  
!       New_Exp := New_Copy_Tree (Exp, New_Scope => New_Scope);
        Remove_Checks (New_Exp);
        return New_Exp;
     end Duplicate_Subexpr_No_Checks;
*************** package body Exp_Util is
*** 5098,5111 ****
  
     function Duplicate_Subexpr_Move_Checks
       (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id
     is
        New_Exp : Node_Id;
  
     begin
        Remove_Side_Effects (Exp, Name_Req, Renaming_Req);
!       New_Exp := New_Copy_Tree (Exp);
        Remove_Checks (Exp);
        return New_Exp;
     end Duplicate_Subexpr_Move_Checks;
--- 5106,5120 ----
  
     function Duplicate_Subexpr_Move_Checks
       (Exp          : Node_Id;
!       New_Scope    : Entity_Id := Empty;
!       Name_Req     : Boolean   := False;
!       Renaming_Req : Boolean   := False) return Node_Id
     is
        New_Exp : Node_Id;
  
     begin
        Remove_Side_Effects (Exp, Name_Req, Renaming_Req);
!       New_Exp := New_Copy_Tree (Exp, New_Scope => New_Scope);
        Remove_Checks (Exp);
        return New_Exp;
     end Duplicate_Subexpr_Move_Checks;
*************** package body Exp_Util is
*** 10871,10881 ****
           --  operator on private type might not be visible and won't be
           --  resolved.
  
!          else pragma Assert (Is_RTE (Base_Type (Typ), RE_Big_Integer)
!                                or else
!                              Is_RTE (Base_Type (Typ), RO_GH_Big_Integer)
!                                or else
!                              Is_RTE (Base_Type (Typ), RO_SP_Big_Integer));
              return
                Make_Function_Call (Loc,
                  Name                   =>
--- 10880,10889 ----
           --  operator on private type might not be visible and won't be
           --  resolved.
  
!          else
!             pragma Assert
!               (Is_RTE (Base_Type (Typ), RE_Big_Integer)
!                or else Is_RTE (Base_Type (Typ), RO_SP_Big_Integer));
              return
                Make_Function_Call (Loc,
                  Name                   =>
*************** package body Exp_Util is
*** 14466,14472 ****
        else
           N := First (L);
           while Present (N) loop
!             if not Side_Effect_Free (N, Name_Req, Variable_Ref) then
                 return False;
              else
                 Next (N);
--- 14474,14489 ----
        else
           N := First (L);
           while Present (N) loop
!             if Nkind (N) = N_Parameter_Association then
!                if not
!                  Side_Effect_Free
!                   (Explicit_Actual_Parameter (N), Name_Req, Variable_Ref)
!                then
!                   return False;
!                end if;
! 
!                Next (N);
!             elsif not Side_Effect_Free (N, Name_Req, Variable_Ref) then
                 return False;
              else
                 Next (N);
diff -Nrcpad gcc-16-20250601/gcc/ada/exp_util.ads gcc-16-20250608/gcc/ada/exp_util.ads
*** gcc-16-20250601/gcc/ada/exp_util.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/exp_util.ads	Sun Jun  8 22:32:15 2025
*************** package Exp_Util is
*** 479,486 ****
  
     function Duplicate_Subexpr
       (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id;
     --  Given the node for a subexpression, this function makes a logical copy
     --  of the subexpression, and returns it. This is intended for use when the
     --  expansion of an expression needs to repeat part of it. For example,
--- 479,487 ----
  
     function Duplicate_Subexpr
       (Exp          : Node_Id;
!       New_Scope    : Entity_Id := Empty;
!       Name_Req     : Boolean   := False;
!       Renaming_Req : Boolean   := False) return Node_Id;
     --  Given the node for a subexpression, this function makes a logical copy
     --  of the subexpression, and returns it. This is intended for use when the
     --  expansion of an expression needs to repeat part of it. For example,
*************** package Exp_Util is
*** 494,499 ****
--- 495,503 ----
     --  the caller is responsible for analyzing the returned copy after it is
     --  attached to the tree.
     --
+    --  The New_Scope entity may be used to specify a new scope for all copied
+    --  entities and itypes.
+    --
     --  The Name_Req flag is set to ensure that the result is suitable for use
     --  in a context requiring a name (for example, the prefix of an attribute
     --  reference).
*************** package Exp_Util is
*** 509,516 ****
  
     function Duplicate_Subexpr_No_Checks
       (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id;
     --  Identical in effect to Duplicate_Subexpr, except that Remove_Checks is
     --  called on the result, so that the duplicated expression does not include
     --  checks. This is appropriate for use when Exp, the original expression is
--- 513,521 ----
  
     function Duplicate_Subexpr_No_Checks
       (Exp          : Node_Id;
!       New_Scope    : Entity_Id := Empty;
!       Name_Req     : Boolean   := False;
!       Renaming_Req : Boolean   := False) return Node_Id;
     --  Identical in effect to Duplicate_Subexpr, except that Remove_Checks is
     --  called on the result, so that the duplicated expression does not include
     --  checks. This is appropriate for use when Exp, the original expression is
*************** package Exp_Util is
*** 519,526 ****
  
     function Duplicate_Subexpr_Move_Checks
       (Exp          : Node_Id;
!       Name_Req     : Boolean := False;
!       Renaming_Req : Boolean := False) return Node_Id;
     --  Identical in effect to Duplicate_Subexpr, except that Remove_Checks is
     --  called on Exp after the duplication is complete, so that the original
     --  expression does not include checks. In this case the result returned
--- 524,532 ----
  
     function Duplicate_Subexpr_Move_Checks
       (Exp          : Node_Id;
!       New_Scope    : Entity_Id := Empty;
!       Name_Req     : Boolean   := False;
!       Renaming_Req : Boolean   := False) return Node_Id;
     --  Identical in effect to Duplicate_Subexpr, except that Remove_Checks is
     --  called on Exp after the duplication is complete, so that the original
     --  expression does not include checks. In this case the result returned
diff -Nrcpad gcc-16-20250601/gcc/ada/fe.h gcc-16-20250608/gcc/ada/fe.h
*** gcc-16-20250601/gcc/ada/fe.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/fe.h	Sun Jun  8 22:32:15 2025
*************** extern Node_Id Get_Attribute_Definition_
*** 110,117 ****
  
  /* errout: */
  
! #define Error_Msg_N		errout__error_msg_n
! #define Error_Msg_NE		errout__error_msg_ne
  #define Set_Identifier_Casing	errout__set_identifier_casing
  
  extern void Error_Msg_N			(String_Pointer, Node_Id);
--- 110,117 ----
  
  /* errout: */
  
! #define Error_Msg_N		errout__error_msg_n_gigi
! #define Error_Msg_NE		errout__error_msg_ne_gigi
  #define Set_Identifier_Casing	errout__set_identifier_casing
  
  extern void Error_Msg_N			(String_Pointer, Node_Id);
diff -Nrcpad gcc-16-20250601/gcc/ada/fname-uf.adb gcc-16-20250608/gcc/ada/fname-uf.adb
*** gcc-16-20250601/gcc/ada/fname-uf.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/fname-uf.adb	Sun Jun  8 22:32:15 2025
*************** package body Fname.UF is
*** 90,97 ****
       Table_Initial        => 10,
       Table_Increment      => 100,
       Table_Name           => "SFN_Patterns");
!    --  Table recording calls to Set_File_Name_Pattern. Note that the first two
!    --  entries are set to represent the standard GNAT rules for file naming.
  
     procedure Instantiate_SFN_Pattern
       (Pattern   : SFN_Pattern_Entry;
--- 90,98 ----
       Table_Initial        => 10,
       Table_Increment      => 100,
       Table_Name           => "SFN_Patterns");
!    --  Table recording calls to Set_File_Name_Pattern. Note that the last two
!    --  entries are set to represent the standard GNAT rules for file naming;
!    --  that invariant is maintained by Set_File_Name_Pattern.
  
     procedure Instantiate_SFN_Pattern
       (Pattern   : SFN_Pattern_Entry;
*************** package body Fname.UF is
*** 178,183 ****
--- 179,186 ----
     ---------------------------
  
     function Get_Default_File_Name (Uname : Unit_Name_Type) return String is
+       L : constant Int := SFN_Patterns.Last;
+ 
        Buf : Bounded_String;
  
        Pattern : SFN_Pattern_Entry;
*************** package body Fname.UF is
*** 185,194 ****
        Get_Unit_Name_String (Buf, Uname, False);
  
        if Is_Spec_Name (Uname) then
!          Pattern := SFN_Patterns.Table (1);
        else
           pragma Assert (Is_Body_Name (Uname));
!          Pattern := SFN_Patterns.Table (2);
        end if;
  
        Instantiate_SFN_Pattern (Pattern, Buf);
--- 188,197 ----
        Get_Unit_Name_String (Buf, Uname, False);
  
        if Is_Spec_Name (Uname) then
!          Pattern := SFN_Patterns.Table (L - 1);
        else
           pragma Assert (Is_Body_Name (Uname));
!          Pattern := SFN_Patterns.Table (L);
        end if;
  
        Instantiate_SFN_Pattern (Pattern, Buf);
diff -Nrcpad gcc-16-20250601/gcc/ada/freeze.adb gcc-16-20250608/gcc/ada/freeze.adb
*** gcc-16-20250601/gcc/ada/freeze.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/freeze.adb	Sun Jun  8 22:32:15 2025
*************** package body Freeze is
*** 9389,9404 ****
        --  pre/postconditions during expansion of the subprogram body, the
        --  subprogram is already installed.
  
!       --  Call Preanalyze_Spec_Expression instead of Preanalyze_And_Resolve
!       --  for the sake of consistency with Analyze_Expression_Function.
  
        if Def_Id /= Current_Scope then
           Push_Scope (Def_Id);
           Install_Formals (Def_Id);
!          Preanalyze_Spec_Expression (Dup_Expr, Typ);
           End_Scope;
        else
!          Preanalyze_Spec_Expression (Dup_Expr, Typ);
        end if;
  
        --  Restore certain attributes of Def_Id since the preanalysis may
--- 9389,9405 ----
        --  pre/postconditions during expansion of the subprogram body, the
        --  subprogram is already installed.
  
!       --  Call Preanalyze_And_Resolve_Spec_Expression instead of Preanalyze_
!       --  And_Resolve for the sake of consistency with Analyze_Expression_
!       --  Function.
  
        if Def_Id /= Current_Scope then
           Push_Scope (Def_Id);
           Install_Formals (Def_Id);
!          Preanalyze_And_Resolve_Spec_Expression (Dup_Expr, Typ);
           End_Scope;
        else
!          Preanalyze_And_Resolve_Spec_Expression (Dup_Expr, Typ);
        end if;
  
        --  Restore certain attributes of Def_Id since the preanalysis may
diff -Nrcpad gcc-16-20250601/gcc/ada/gcc-interface/Make-lang.in gcc-16-20250608/gcc/ada/gcc-interface/Make-lang.in
*** gcc-16-20250601/gcc/ada/gcc-interface/Make-lang.in	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gcc-interface/Make-lang.in	Sun Jun  8 22:32:15 2025
*************** GNAT_ADA_OBJS =	\
*** 315,337 ****
   ada/cstand.o	\
   ada/debug.o	\
   ada/debug_a.o	\
-  ada/diagnostics-brief_emitter.o      \
-  ada/diagnostics-constructors.o      \
-  ada/diagnostics-converter.o      \
-  ada/diagnostics-json_utils.o      \
-  ada/diagnostics-pretty_emitter.o      \
-  ada/diagnostics-repository.o      \
-  ada/diagnostics-sarif_emitter.o      \
-  ada/diagnostics-switch_repository.o      \
-  ada/diagnostics-utils.o      \
-  ada/diagnostics.o      \
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o	\
   ada/elists.o	\
   ada/err_vars.o	\
   ada/errout.o	\
   ada/erroutc.o	\
   ada/eval_fat.o	\
   ada/exp_aggr.o	\
   ada/exp_spark.o	\
--- 315,331 ----
   ada/cstand.o	\
   ada/debug.o	\
   ada/debug_a.o	\
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o	\
   ada/elists.o	\
   ada/err_vars.o	\
+  ada/errid.o \
   ada/errout.o	\
   ada/erroutc.o	\
+  ada/erroutc-pretty_emitter.o \
+  ada/erroutc-sarif_emitter.o \
+  ada/errsw.o \
   ada/eval_fat.o	\
   ada/exp_aggr.o	\
   ada/exp_spark.o	\
*************** GNAT_ADA_OBJS =	\
*** 380,385 ****
--- 374,380 ----
   ada/impunit.o	\
   ada/inline.o	\
   ada/itypes.o	\
+  ada/json_utils.o \
   ada/krunch.o	\
   ada/layout.o	\
   ada/lib-load.o	\
*************** GNAT_ADA_OBJS+= \
*** 562,569 ****
   ada/libgnat/s-secsta.o	\
   ada/libgnat/s-soflin.o	\
   ada/libgnat/s-soliin.o	\
-  ada/libgnat/s-spark.o	\
-  ada/libgnat/s-spcuop.o	\
   ada/libgnat/s-stache.o	\
   ada/libgnat/s-stalib.o	\
   ada/libgnat/s-stoele.o	\
--- 557,562 ----
*************** GNAT_ADA_OBJS+= \
*** 575,585 ****
   ada/libgnat/s-trasym.o \
   ada/libgnat/s-unstyp.o	\
   ada/libgnat/s-valint.o	\
-  ada/libgnat/s-valspe.o	\
   ada/libgnat/s-valuns.o	\
   ada/libgnat/s-valuti.o	\
-  ada/libgnat/s-vs_int.o \
-  ada/libgnat/s-vs_uns.o \
   ada/libgnat/s-wchcnv.o	\
   ada/libgnat/s-wchcon.o	\
   ada/libgnat/s-wchjis.o	\
--- 568,575 ----
*************** GNATBIND_OBJS = \
*** 615,637 ****
   ada/casing.o     \
   ada/csets.o      \
   ada/debug.o      \
-  ada/diagnostics-brief_emitter.o      \
-  ada/diagnostics-constructors.o      \
-  ada/diagnostics-converter.o      \
-  ada/diagnostics-json_utils.o      \
-  ada/diagnostics-pretty_emitter.o      \
-  ada/diagnostics-repository.o      \
-  ada/diagnostics-sarif_emitter.o      \
-  ada/diagnostics-switch_repository.o      \
-  ada/diagnostics-utils.o      \
-  ada/diagnostics.o      \
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o      \
   ada/elists.o     \
   ada/err_vars.o   \
   ada/errout.o     \
   ada/erroutc.o    \
   ada/exit.o       \
   ada/final.o      \
   ada/fmap.o       \
--- 605,621 ----
   ada/casing.o     \
   ada/csets.o      \
   ada/debug.o      \
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o      \
   ada/elists.o     \
   ada/err_vars.o   \
+  ada/errid.o      \
   ada/errout.o     \
   ada/erroutc.o    \
+  ada/erroutc-sarif_emitter.o \
+  ada/erroutc-pretty_emitter.o \
+  ada/errsw.o      \
   ada/exit.o       \
   ada/final.o      \
   ada/fmap.o       \
*************** GNATBIND_OBJS = \
*** 639,644 ****
--- 623,629 ----
   ada/gnatbind.o   \
   ada/gnatvsn.o    \
   ada/hostparm.o   \
+  ada/json_utils.o \
   ada/lib.o        \
   ada/link.o       \
   ada/namet.o      \
diff -Nrcpad gcc-16-20250601/gcc/ada/gcc-interface/Makefile.in gcc-16-20250608/gcc/ada/gcc-interface/Makefile.in
*** gcc-16-20250601/gcc/ada/gcc-interface/Makefile.in	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gcc-interface/Makefile.in	Sun Jun  8 22:32:15 2025
*************** GNATMAKE_OBJS = a-except.o ali.o ali-uti
*** 328,343 ****
   switch.o switch-m.o table.o targparm.o tempdir.o types.o uintp.o \
   uname.o urealp.o usage.o widechar.o warnsw.o \
   seinfo.o einfo-entities.o einfo-utils.o sinfo-nodes.o sinfo-utils.o \
!  diagnostics-brief_emitter.o  \
!  diagnostics-constructors.o  \
!  diagnostics-converter.o  \
!  diagnostics-json_utils.o  \
!  diagnostics-pretty_emitter.o  \
!  diagnostics-repository.o  \
!  diagnostics-sarif_emitter.o  \
!  diagnostics-switch_repository.o  \
!  diagnostics-utils.o  \
!  diagnostics.o  \
   $(EXTRA_GNATMAKE_OBJS)
  
  # Make arch match the current multilib so that the RTS selection code
--- 328,338 ----
   switch.o switch-m.o table.o targparm.o tempdir.o types.o uintp.o \
   uname.o urealp.o usage.o widechar.o warnsw.o \
   seinfo.o einfo-entities.o einfo-utils.o sinfo-nodes.o sinfo-utils.o \
!  errid.o \
!  errsw.o \
!  erroutc-pretty_emitter.o \
!  erroutc-sarif_emitter.o \
!  json_utils.o
   $(EXTRA_GNATMAKE_OBJS)
  
  # Make arch match the current multilib so that the RTS selection code
diff -Nrcpad gcc-16-20250601/gcc/ada/gen_il-fields.ads gcc-16-20250608/gcc/ada/gen_il-fields.ads
*** gcc-16-20250601/gcc/ada/gen_il-fields.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gen_il-fields.ads	Sun Jun  8 22:32:15 2025
*************** package Gen_IL.Fields is
*** 56,62 ****
        Abort_Present,
        Abortable_Part,
        Abstract_Present,
-       Accept_Handler_Records,
        Accept_Statement,
        Access_Definition,
        Access_To_Subprogram_Definition,
--- 56,61 ----
*************** package Gen_IL.Fields is
*** 230,236 ****
        Import_Interface_Present,
        In_Present,
        Includes_Infinities,
-       Incomplete_View,
        Inherited_Discriminant,
        Instance_Spec,
        Intval,
--- 229,234 ----
*************** package Gen_IL.Fields is
*** 256,261 ****
--- 254,260 ----
        Is_Elsif,
        Is_Entry_Barrier_Function,
        Is_Expanded_Build_In_Place_Call,
+       Is_Expanded_Constructor_Call,
        Is_Expanded_Prefixed_Call,
        Is_Folded_In_Parser,
        Is_Generic_Contract_Pragma,
*************** package Gen_IL.Fields is
*** 472,477 ****
--- 471,478 ----
        Component_Clause,
        Component_Size,
        Component_Type,
+       Constructor_List,
+       Constructor_Name,
        Contract,
        Contract_Wrapper,
        Corresponding_Concurrent_Type,
*************** package Gen_IL.Fields is
*** 487,498 ****
        Debug_Renaming_Link,
        Default_Aspect_Component_Value,
        Default_Aspect_Value,
-       Default_Expr_Function,
        Default_Expressions_Processed,
        Default_Value,
        Delay_Cleanups,
        Delta_Value,
-       Dependent_Instances,
        Depends_On_Private,
        Derived_Type_Link,
        Digits_Value,
--- 488,497 ----
*************** package Gen_IL.Fields is
*** 553,559 ****
        Full_View,
        Generic_Homonym,
        Generic_Renamings,
-       Handler_Records,
        Has_Aliased_Components,
        Has_Alignment_Clause,
        Has_All_Calls_Remote,
--- 552,557 ----
*************** package Gen_IL.Fields is
*** 659,664 ****
--- 657,663 ----
        Ignore_SPARK_Mode_Pragmas,
        Import_Pragma,
        Incomplete_Actuals,
+       Incomplete_View,
        Indirect_Call_Wrapper,
        In_Package_Body,
        In_Private_Part,
*************** package Gen_IL.Fields is
*** 744,749 ****
--- 743,749 ----
        Is_Known_Non_Null,
        Is_Known_Null,
        Is_Known_Valid,
+       Is_Large_Unconstrained_Definite,
        Is_Limited_Composite,
        Is_Limited_Interface,
        Is_Limited_Record,
*************** package Gen_IL.Fields is
*** 822,828 ****
        Modulus,
        Must_Be_On_Byte_Boundary,
        Must_Have_Preelab_Init,
!       Needs_Activation_Record,
        Needs_Debug_Info,
        Needs_No_Actuals,
        Never_Set_In_Source,
--- 822,828 ----
        Modulus,
        Must_Be_On_Byte_Boundary,
        Must_Have_Preelab_Init,
!       Needs_Construction,
        Needs_Debug_Info,
        Needs_No_Actuals,
        Never_Set_In_Source,
*************** package Gen_IL.Fields is
*** 870,876 ****
        Referenced_As_LHS,
        Referenced_As_Out_Parameter,
        Refinement_Constituents,
-       Register_Exception_Call,
        Related_Array_Object,
        Related_Expression,
        Related_Instance,
--- 870,875 ----
*************** package Gen_IL.Fields is
*** 892,898 ****
        Scope_Depth_Value,
        Sec_Stack_Needed_For_Return,
        Shared_Var_Procs_Instance,
-       Size_Check_Code,
        Size_Depends_On_Discriminant,
        Size_Known_At_Compile_Time,
        Small_Value,
--- 891,896 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/gen_il-gen-gen_entities.adb gcc-16-20250608/gcc/ada/gen_il-gen-gen_entities.adb
*** gcc-16-20250601/gcc/ada/gen_il-gen-gen_entities.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gen_il-gen-gen_entities.adb	Sun Jun  8 22:32:15 2025
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 114,119 ****
--- 114,120 ----
          Sm (Has_Xref_Entry, Flag),
          Sm (Has_Yield_Aspect, Flag),
          Sm (Homonym, Node_Id),
+         Sm (Incomplete_View, Node_Id),
          Sm (In_Package_Body, Flag),
          Sm (In_Private_Part, Flag),
          Sm (In_Use, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 212,218 ****
          Sm (Low_Bound_Tested, Flag),
          Sm (Materialize_Entity, Flag),
          Sm (May_Inherit_Delayed_Rep_Aspects, Flag),
-         Sm (Needs_Activation_Record, Flag),
          Sm (Needs_Debug_Info, Flag),
          Sm (Never_Set_In_Source, Flag),
          Sm (Overlays_Constant, Flag),
--- 213,218 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 288,294 ****
          Sm (Extra_Formal, Node_Id),
          Sm (Generic_Homonym, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Has_Static_Discriminants, Flag),
          Sm (Inner_Instances, Elist_Id),
          Sm (Interface_Name, Node_Id),
--- 288,293 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 357,363 ****
          Sm (Prival_Link, Node_Id),
          Sm (Related_Type, Node_Id),
          Sm (Return_Statement, Node_Id),
-         Sm (Size_Check_Code, Node_Id),
          Sm (SPARK_Pragma, Node_Id),
          Sm (SPARK_Pragma_Inherited, Flag)));
  
--- 356,361 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 399,405 ****
         (Sm (Activation_Record_Component, Node_Id),
          Sm (Actual_Subtype, Node_Id),
          Sm (Alignment, Unat),
-         Sm (Default_Expr_Function, Node_Id),
          Sm (Default_Value, Node_Id),
          Sm (Entry_Component, Node_Id),
          Sm (Extra_Accessibility, Node_Id),
--- 397,402 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 458,463 ****
--- 455,462 ----
              Pre => "Ekind (Base_Type (N)) in Access_Subprogram_Kind"),
          Sm (Class_Wide_Equivalent_Type, Node_Id),
          Sm (Class_Wide_Type, Node_Id),
+         Sm (Constructor_List, Elist_Id),
+         Sm (Constructor_Name, Node_Id),
          Sm (Contract, Node_Id),
          Sm (Current_Use_Clause, Node_Id),
          Sm (Derived_Type_Link, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 516,521 ****
--- 515,521 ----
          Sm (Linker_Section_Pragma, Node_Id),
          Sm (Must_Be_On_Byte_Boundary, Flag),
          Sm (Must_Have_Preelab_Init, Flag),
+         Sm (Needs_Construction, Flag),
          Sm (No_Tagged_Streams_Pragma, Node_Id,
              Pre => "Is_Tagged_Type (N)"),
          Sm (Non_Binary_Modulus, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 576,582 ****
         --  created for the base type, and this is the first named subtype).
  
     Ab (Modular_Integer_Kind, Integer_Kind,
!        (Sm (Modulus, Uint, Base_Type_Only),
          Sm (Original_Array_Type, Node_Id)));
  
     Cc (E_Modular_Integer_Type, Modular_Integer_Kind);
--- 576,582 ----
         --  created for the base type, and this is the first named subtype).
  
     Ab (Modular_Integer_Kind, Integer_Kind,
!        (Sm (Modulus, Uint, Impl_Base_Type_Only),
          Sm (Original_Array_Type, Node_Id)));
  
     Cc (E_Modular_Integer_Type, Modular_Integer_Kind);
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 781,787 ****
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
!         Sm (Underlying_Record_View, Node_Id)));
  
     Cc (E_Record_Subtype, Aggregate_Kind,
         --  A record subtype, created by a record subtype declaration
--- 781,788 ----
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
!         Sm (Underlying_Record_View, Node_Id),
!         Sm (Is_Large_Unconstrained_Definite, Flag, Impl_Base_Type_Only)));
  
     Cc (E_Record_Subtype, Aggregate_Kind,
         --  A record subtype, created by a record subtype declaration
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1004,1010 ****
          Sm (DTC_Entity, Node_Id),
          Sm (Extra_Accessibility_Of_Result, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Has_Missing_Return, Flag),
          Sm (Inner_Instances, Elist_Id),
          Sm (Is_Called, Flag),
--- 1005,1010 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1048,1054 ****
          Sm (DTC_Entity, Node_Id),
          Sm (Entry_Parameters_Type, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Inner_Instances, Elist_Id),
          Sm (Is_Asynchronous, Flag),
          Sm (Is_Called, Flag),
--- 1048,1053 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1167,1173 ****
         (Sm (Alignment, Unat),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Raised, Flag),
-         Sm (Register_Exception_Call, Node_Id),
          Sm (Renamed_Or_Alias, Node_Id)));
  
     Ab (Generic_Unit_Kind, Entity_Kind,
--- 1166,1171 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1256,1263 ****
          Sm (Body_Needed_For_SAL, Flag),
          Sm (Contract, Node_Id),
          Sm (Current_Use_Clause, Node_Id),
-         Sm (Dependent_Instances, Elist_Id,
-             Pre => "Is_Generic_Instance (N)"),
          Sm (Elaborate_Body_Desirable, Flag),
          Sm (Elaboration_Entity, Node_Id),
          Sm (Elaboration_Entity_Required, Flag),
--- 1254,1259 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1265,1271 ****
          Sm (First_Entity, Node_Id),
          Sm (First_Private_Entity, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Has_RACW, Flag),
          Sm (Hidden_In_Formal_Instance, Elist_Id),
          Sm (Ignore_SPARK_Mode_Pragmas, Flag),
--- 1261,1266 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1297,1303 ****
         (Sm (Contract, Node_Id),
          Sm (Finalizer, Node_Id),
          Sm (First_Entity, Node_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Ignore_SPARK_Mode_Pragmas, Flag),
          Sm (Last_Entity, Node_Id),
          Sm (Related_Instance, Node_Id),
--- 1292,1297 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/gen_il-gen-gen_nodes.adb gcc-16-20250608/gcc/ada/gen_il-gen-gen_nodes.adb
*** gcc-16-20250601/gcc/ada/gen_il-gen-gen_nodes.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gen_il-gen-gen_nodes.adb	Sun Jun  8 22:32:15 2025
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 303,308 ****
--- 303,309 ----
          Sm (Is_Known_Guaranteed_ABE, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (No_Elaboration_Check, Flag),
+         Sm (Is_Expanded_Constructor_Call, Flag),
          Sm (Is_Expanded_Prefixed_Call, Flag)));
  
     Cc (N_Function_Call, N_Subprogram_Call,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 533,540 ****
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Type_Definition, Node_Id),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Discr_Check_Funcs_Built, Flag),
!         Sm (Incomplete_View, Node_Id)));
  
     Cc (N_Incomplete_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
--- 534,540 ----
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Type_Definition, Node_Id),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Discr_Check_Funcs_Built, Flag)));
  
     Cc (N_Incomplete_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1030,1037 ****
         (Sy (Accept_Statement, Node_Id),
          Sy (Condition, Node_Id, Default_Empty),
          Sy (Statements, List_Id, Default_Empty_List),
!         Sy (Pragmas_Before, List_Id, Default_No_List),
!         Sm (Accept_Handler_Records, List_Id)));
  
     Cc (N_Delay_Alternative, Node_Kind,
         (Sy (Delay_Statement, Node_Id),
--- 1030,1036 ----
         (Sy (Accept_Statement, Node_Id),
          Sy (Condition, Node_Id, Default_Empty),
          Sy (Statements, List_Id, Default_Empty_List),
!         Sy (Pragmas_Before, List_Id, Default_No_List)));
  
     Cc (N_Delay_Alternative, Node_Kind,
         (Sy (Delay_Statement, Node_Id),
diff -Nrcpad gcc-16-20250601/gcc/ada/generate_minimal_reproducer.adb gcc-16-20250608/gcc/ada/generate_minimal_reproducer.adb
*** gcc-16-20250601/gcc/ada/generate_minimal_reproducer.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/generate_minimal_reproducer.adb	Sun Jun  8 22:32:15 2025
***************
*** 23,38 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  with Fmap;
  with Fname.UF;
  with Lib;
! with Namet; use Namet;
! with Osint; use Osint;
! with Output; use Output;
! with Sinfo.Nodes;
  with System.CRTL;
  with System.OS_Lib; use System.OS_Lib;
! with Types; use Types;
  
  procedure Generate_Minimal_Reproducer is
     Reproducer_Generation_Failed : exception;
--- 23,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Atree;
  with Fmap;
  with Fname.UF;
  with Lib;
! with Namet;         use Namet;
! with Osint;         use Osint;
! with Output;        use Output;
! with Sinfo.Nodes;   use Sinfo.Nodes;
  with System.CRTL;
  with System.OS_Lib; use System.OS_Lib;
! with Types;         use Types;
! with Uname;
  
  procedure Generate_Minimal_Reproducer is
     Reproducer_Generation_Failed : exception;
*************** procedure Generate_Minimal_Reproducer is
*** 85,90 ****
--- 87,112 ----
     Oracle_Path : constant String :=
       Dirname & Directory_Separator & Executable_Name ("oracle");
  
+    Main_Library_Item : constant Node_Id := Unit (Lib.Cunit (Main_Unit));
+ 
+    --  There is a special case that we need to detect: when the main library
+    --  item is the instantiation of a generic that has a body, and the
+    --  instantiation of generic bodies has started. We start by binding whether
+    --  the main library item is an instantiation to the following constant.
+    Main_Is_Instantiation : constant Boolean :=
+      Nkind (Atree.Original_Node (Main_Library_Item))
+      in N_Generic_Instantiation;
+ 
+    --  If the main library item is an instantiation and its unit name is a body
+    --  name, it means that Make_Instance_Unit has been called. We need to use
+    --  the corresponding spec name to reconstruct the on-disk form of the
+    --  semantic closure.
+    Main_Unit_Name : constant Unit_Name_Type :=
+      (if Main_Is_Instantiation
+         and then Uname.Is_Body_Name (Lib.Unit_Name (Main_Unit))
+       then Uname.Get_Spec_Name (Lib.Unit_Name (Main_Unit))
+       else Lib.Unit_Name (Main_Unit));
+ 
     Result : Integer;
  begin
     Create_Semantic_Closure_Project :
*************** begin
*** 118,142 ****
        end if;
  
        for J in Main_Unit .. Lib.Last_Unit loop
!          declare
!             Path : File_Name_Type :=
!               Fmap.Mapped_Path_Name (Lib.Unit_File_Name (J));
  
!             Default_File_Name : constant String :=
!               Fname.UF.Get_Default_File_Name (Lib.Unit_Name (J));
  
!             File_Copy_Path : constant String :=
!               Src_Dir_Path & Directory_Separator & Default_File_Name;
  
!             --  We may have synthesized units for child subprograms without
!             --  spec files. We need to filter out those units because we would
!             --  create bogus spec files that break compilation if we didn't.
!             Is_Synthetic_Subprogram_Spec : constant Boolean :=
!               not Sinfo.Nodes.Comes_From_Source (Lib.Cunit (J));
!          begin
!             if not Lib.Is_Internal_Unit (J)
!               and then not Is_Synthetic_Subprogram_Spec
!             then
                 --  Mapped_Path_Name might have returned No_File. This has been
                 --  observed for files with a Source_File_Name pragma.
                 if Path = No_File then
--- 140,169 ----
        end if;
  
        for J in Main_Unit .. Lib.Last_Unit loop
!          --  We skip library units that fall under one of the following cases:
!          --  - Internal library units.
!          --  - Units that were synthesized for child subprograms without spec
!          --    files.
!          --  - Dummy entries that Add_Preprocessing_Dependency puts in
!          --    Lib.Units.
!          --  Those cases correspond to the conjuncts in the condition below.
!          if not Lib.Is_Internal_Unit (J)
!            and then Comes_From_Source (Lib.Cunit (J))
!            and then Lib.Unit_Name (J) /= No_Unit_Name
!          then
!             declare
!                Path : File_Name_Type :=
!                  Fmap.Mapped_Path_Name (Lib.Unit_File_Name (J));
  
!                Unit_Name : constant Unit_Name_Type :=
!                  (if J = Main_Unit then Main_Unit_Name else Lib.Unit_Name (J));
  
!                Default_File_Name : constant String :=
!                  Fname.UF.Get_Default_File_Name (Unit_Name);
  
!                File_Copy_Path : constant String :=
!                  Src_Dir_Path & Directory_Separator & Default_File_Name;
!             begin
                 --  Mapped_Path_Name might have returned No_File. This has been
                 --  observed for files with a Source_File_Name pragma.
                 if Path = No_File then
*************** begin
*** 153,160 ****
  
                    pragma Assert (Success);
                 end;
!             end if;
!          end;
        end loop;
     end Create_Semantic_Closure_Project;
  
--- 180,187 ----
  
                    pragma Assert (Success);
                 end;
!             end;
!          end if;
        end loop;
     end Create_Semantic_Closure_Project;
  
*************** begin
*** 197,203 ****
               (Fmap.Mapped_Path_Name (Lib.Unit_File_Name (Main_Unit)));
  
           Default_Main_Name : constant String :=
!            Fname.UF.Get_Default_File_Name (Lib.Unit_Name (Main_Unit));
  
           New_Main_Path : constant String :=
             Src_Dir_Path & Directory_Separator & Default_Main_Name;
--- 224,230 ----
               (Fmap.Mapped_Path_Name (Lib.Unit_File_Name (Main_Unit)));
  
           Default_Main_Name : constant String :=
!            Fname.UF.Get_Default_File_Name (Main_Unit_Name);
  
           New_Main_Path : constant String :=
             Src_Dir_Path & Directory_Separator & Default_Main_Name;
*************** begin
*** 228,234 ****
           Write_Eol;
           Write_Line ("   Args : constant GNAT.OS_Lib.Argument_List :=");
  
!          Write_Str ("     (new String'(""-gnatd_M"")");
  
           --  The following way of iterating through the command line arguments
           --  was copied from Set_Targ. TODO factorize???
--- 255,262 ----
           Write_Eol;
           Write_Line ("   Args : constant GNAT.OS_Lib.Argument_List :=");
  
!          Write_Str
!            ("     (new String'(""-quiet""), new String'(""-gnatd_M"")");
  
           --  The following way of iterating through the command line arguments
           --  was copied from Set_Targ. TODO factorize???
diff -Nrcpad gcc-16-20250601/gcc/ada/get_targ.ads gcc-16-20250608/gcc/ada/get_targ.ads
*** gcc-16-20250601/gcc/ada/get_targ.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/get_targ.ads	Sun Jun  8 22:32:15 2025
*************** package Get_Targ is
*** 113,119 ****
     type C_String is array (0 .. 255) of aliased Character;
     pragma Convention (C, C_String);
  
!    type Register_Type_Proc is access procedure
       (C_Name    : C_String;       -- Nul-terminated string with name of type
        Digs      : Natural;        -- Digits for floating point, 0 otherwise
        Complex   : Boolean;        -- True iff type has real and imaginary parts
--- 113,119 ----
     type C_String is array (0 .. 255) of aliased Character;
     pragma Convention (C, C_String);
  
!    type Register_Type_Proc is not null access procedure
       (C_Name    : C_String;       -- Nul-terminated string with name of type
        Digs      : Natural;        -- Digits for floating point, 0 otherwise
        Complex   : Boolean;        -- True iff type has real and imaginary parts
diff -Nrcpad gcc-16-20250601/gcc/ada/gnat-style.texi gcc-16-20250608/gcc/ada/gnat-style.texi
*** gcc-16-20250601/gcc/ada/gnat-style.texi	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gnat-style.texi	Sun Jun  8 22:32:15 2025
***************
*** 3,9 ****
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT Coding Style A Guide for GNAT Developers
  @defindex ge
--- 3,9 ----
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.2.3.@*
  @end ifinfo
  @settitle GNAT Coding Style A Guide for GNAT Developers
  @defindex ge
***************
*** 19,25 ****
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Jan 03, 2025
  
  AdaCore
  
--- 19,25 ----
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Jun 02, 2025
  
  AdaCore
  
diff -Nrcpad gcc-16-20250601/gcc/ada/gnat_rm.texi gcc-16-20250608/gcc/ada/gnat_rm.texi
*** gcc-16-20250601/gcc/ada/gnat_rm.texi	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gnat_rm.texi	Sun Jun  8 22:32:15 2025
***************
*** 3,9 ****
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
--- 3,9 ----
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.2.3.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
***************
*** 19,25 ****
  
  @copying
  @quotation
! GNAT Reference Manual , Jan 03, 2025
  
  AdaCore
  
--- 19,25 ----
  
  @copying
  @quotation
! GNAT Reference Manual , Jun 02, 2025
  
  AdaCore
  
*************** Implementation Defined Pragmas
*** 238,243 ****
--- 238,244 ----
  * Pragma Priority_Specific_Dispatching:: 
  * Pragma Profile:: 
  * Pragma Profile_Warnings:: 
+ * Pragma Program_Exit:: 
  * Pragma Propagate_Exceptions:: 
  * Pragma Provide_Shift_Operators:: 
  * Pragma Psect_Object:: 
*************** Implementation Defined Aspects
*** 348,353 ****
--- 349,355 ----
  * Aspect Part_Of:: 
  * Aspect Persistent_BSS:: 
  * Aspect Predicate:: 
+ * Aspect Program_Exit:: 
  * Aspect Pure_Function:: 
  * Aspect Refined_Depends:: 
  * Aspect Refined_Global:: 
*************** Deep delta Aggregates
*** 916,921 ****
--- 918,924 ----
  Experimental Language Extensions
  
  * Conditional when constructs:: 
+ * Implicit With:: 
  * Storage Model:: 
  * Attribute Super:: 
  * Simpler Accessibility Model:: 
*************** consideration, the use of these pragmas
*** 1405,1410 ****
--- 1408,1414 ----
  * Pragma Priority_Specific_Dispatching:: 
  * Pragma Profile:: 
  * Pragma Profile_Warnings:: 
+ * Pragma Program_Exit:: 
  * Pragma Propagate_Exceptions:: 
  * Pragma Provide_Shift_Operators:: 
  * Pragma Psect_Object:: 
*************** EXIT_CASE      ::= GUARD => EXIT_KIND
*** 3470,3475 ****
--- 3474,3480 ----
  EXIT_KIND      ::= Normal_Return
                   | Exception_Raised
                   | (Exception_Raised => exception_name)
+                  | Program_Exit
  GUARD          ::= Boolean_expression
  @end example
  
*************** pragma Interrupt_State
*** 4682,4689 ****
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for an @code{Ctrl-C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl-C} can be used to
  interrupt execution.  Additionally, signals such as @code{SIGSEGV},
  @code{SIGABRT}, @code{SIGFPE} and @code{SIGILL} are often mapped to specific
  Ada exceptions, or used to implement run-time functions such as the
--- 4687,4694 ----
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for an @code{Ctrl}-@code{C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl}-@code{C} can be used to
  interrupt execution.  Additionally, signals such as @code{SIGSEGV},
  @code{SIGABRT}, @code{SIGFPE} and @code{SIGILL} are often mapped to specific
  Ada exceptions, or used to implement run-time functions such as the
*************** conforming Ada constructs.  The profile
*** 6912,6918 ****
  @end itemize
  @end itemize
  
! @node Pragma Profile_Warnings,Pragma Propagate_Exceptions,Pragma Profile,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{ce}
  @section Pragma Profile_Warnings
  
--- 6917,6923 ----
  @end itemize
  @end itemize
  
! @node Pragma Profile_Warnings,Pragma Program_Exit,Pragma Profile,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{ce}
  @section Pragma Profile_Warnings
  
*************** generating @code{Restrictions} pragmas,
*** 6930,6937 ****
  violations of the profile generate warning messages instead
  of error messages.
  
! @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{cf}
  @section Pragma Propagate_Exceptions
  
  
--- 6935,6956 ----
  violations of the profile generate warning messages instead
  of error messages.
  
! @node Pragma Program_Exit,Pragma Propagate_Exceptions,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{cf}@anchor{gnat_rm/implementation_defined_pragmas pragma-program-exit}@anchor{d0}
! @section Pragma Program_Exit
! 
! 
! Syntax:
! 
! @example
! pragma Program_Exit [ (boolean_EXPRESSION) ];
! @end example
! 
! For the semantics of this pragma, see the entry for aspect @code{Program_Exit}
! in the SPARK 2014 Reference Manual, section 6.1.10.
! 
! @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Program_Exit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{d1}
  @section Pragma Propagate_Exceptions
  
  
*************** purposes. It used to be used in connecti
*** 6950,6956 ****
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{d0}
  @section Pragma Provide_Shift_Operators
  
  
--- 6969,6975 ----
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{d2}
  @section Pragma Provide_Shift_Operators
  
  
*************** including the function declarations for
*** 6970,6976 ****
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{d1}
  @section Pragma Psect_Object
  
  
--- 6989,6995 ----
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{d3}
  @section Pragma Psect_Object
  
  
*************** EXTERNAL_SYMBOL ::=
*** 6990,6996 ****
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{d2}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{d3}
  @section Pragma Pure_Function
  
  
--- 7009,7015 ----
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d4}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{d5}
  @section Pragma Pure_Function
  
  
*************** unit is not a Pure unit in the categoriz
*** 7052,7058 ****
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{d4}
  @section Pragma Rational
  
  
--- 7071,7077 ----
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{d6}
  @section Pragma Rational
  
  
*************** pragma Profile (Rational);
*** 7070,7076 ****
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d5}
  @section Pragma Ravenscar
  
  
--- 7089,7095 ----
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d7}
  @section Pragma Ravenscar
  
  
*************** pragma Profile (Ravenscar);
*** 7090,7096 ****
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d6}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{d7}
  @section Pragma Refined_Depends
  
  
--- 7109,7115 ----
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{d9}
  @section Pragma Refined_Depends
  
  
*************** For the semantics of this pragma, see th
*** 7123,7129 ****
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{d9}
  @section Pragma Refined_Global
  
  
--- 7142,7148 ----
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{da}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{db}
  @section Pragma Refined_Global
  
  
*************** For the semantics of this pragma, see th
*** 7148,7154 ****
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{da}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{db}
  @section Pragma Refined_Post
  
  
--- 7167,7173 ----
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{dd}
  @section Pragma Refined_Post
  
  
*************** For the semantics of this pragma, see th
*** 7162,7168 ****
  the SPARK 2014 Reference Manual, section 7.2.7.
  
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{dd}
  @section Pragma Refined_State
  
  
--- 7181,7187 ----
  the SPARK 2014 Reference Manual, section 7.2.7.
  
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{de}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{df}
  @section Pragma Refined_State
  
  
*************** For the semantics of this pragma, see th
*** 7188,7194 ****
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{de}
  @section Pragma Relative_Deadline
  
  
--- 7207,7213 ----
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{e0}
  @section Pragma Relative_Deadline
  
  
*************** versions of Ada as an implementation-def
*** 7203,7209 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{df}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{e0}
  @section Pragma Remote_Access_Type
  
  
--- 7222,7228 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e1}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{e2}
  @section Pragma Remote_Access_Type
  
  
*************** pertaining to remote access to class-wid
*** 7229,7235 ****
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{e1}
  @section Pragma Rename_Pragma
  
  
--- 7248,7254 ----
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{e3}
  @section Pragma Rename_Pragma
  
  
*************** Pragma Inline_Only will not necessarily
*** 7268,7274 ****
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{e2}
  @section Pragma Restricted_Run_Time
  
  
--- 7287,7293 ----
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{e4}
  @section Pragma Restricted_Run_Time
  
  
*************** which is the preferred method of setting
*** 7289,7295 ****
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{e3}
  @section Pragma Restriction_Warnings
  
  
--- 7308,7314 ----
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{e5}
  @section Pragma Restriction_Warnings
  
  
*************** generating a warning, but any other use
*** 7327,7333 ****
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{e4}
  @section Pragma Reviewable
  
  
--- 7346,7352 ----
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{e6}
  @section Pragma Reviewable
  
  
*************** comprehensive messages identifying possi
*** 7431,7437 ****
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e5}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e6}
  @section Pragma Secondary_Stack_Size
  
  
--- 7450,7456 ----
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e7}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e8}
  @section Pragma Secondary_Stack_Size
  
  
*************** Note the pragma cannot appear when the r
*** 7467,7473 ****
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{e7}
  @section Pragma Share_Generic
  
  
--- 7486,7492 ----
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{e9}
  @section Pragma Share_Generic
  
  
*************** than to check that the given names are a
*** 7485,7491 ****
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{e9}
  @section Pragma Shared
  
  
--- 7504,7510 ----
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{ea}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{eb}
  @section Pragma Shared
  
  
*************** This pragma is provided for compatibilit
*** 7493,7499 ****
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{ea}
  @section Pragma Short_Circuit_And_Or
  
  
--- 7512,7518 ----
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{ec}
  @section Pragma Short_Circuit_And_Or
  
  
*************** within the file being compiled, it appli
*** 7512,7518 ****
  There is no requirement that all units in a partition use this option.
  
  @node Pragma Short_Descriptors,Pragma Side_Effects,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{eb}
  @section Pragma Short_Descriptors
  
  
--- 7531,7537 ----
  There is no requirement that all units in a partition use this option.
  
  @node Pragma Short_Descriptors,Pragma Side_Effects,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{ed}
  @section Pragma Short_Descriptors
  
  
*************** This pragma is provided for compatibilit
*** 7526,7532 ****
  is recognized but ignored by all current versions of GNAT.
  
  @node Pragma Side_Effects,Pragma Simple_Storage_Pool_Type,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{ec}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{ed}
  @section Pragma Side_Effects
  
  
--- 7545,7551 ----
  is recognized but ignored by all current versions of GNAT.
  
  @node Pragma Side_Effects,Pragma Simple_Storage_Pool_Type,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{ee}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{ef}
  @section Pragma Side_Effects
  
  
*************** For the semantics of this pragma, see th
*** 7540,7546 ****
  @code{Side_Effects} in the SPARK Reference Manual, section 6.1.12.
  
  @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{ee}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{ef}
  @section Pragma Simple_Storage_Pool_Type
  
  
--- 7559,7565 ----
  @code{Side_Effects} in the SPARK Reference Manual, section 6.1.12.
  
  @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f0}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{f1}
  @section Pragma Simple_Storage_Pool_Type
  
  
*************** storage-management discipline).
*** 7594,7600 ****
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{f0,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
--- 7613,7619 ----
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{f2,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
*************** type Acc is access My_Data_Type;
*** 7604,7614 ****
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{f0,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f1}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{f2}
  @section Pragma Source_File_Name
  
  
--- 7623,7633 ----
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{f2,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f3}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{f4}
  @section Pragma Source_File_Name
  
  
*************** aware of these pragmas, and so other too
*** 7700,7719 ****
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{f3,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f4}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{f3}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{f2,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
--- 7719,7738 ----
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{f5,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{f6}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{f5}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{f4,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
*************** Source_File_Name or Source_File_Name_Pro
*** 7725,7731 ****
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{f5}
  @section Pragma Source_Reference
  
  
--- 7744,7750 ----
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{f7}
  @section Pragma Source_Reference
  
  
*************** string expression other than a string li
*** 7749,7755 ****
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{f6}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{f7}
  @section Pragma SPARK_Mode
  
  
--- 7768,7774 ----
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{f8}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{f9}
  @section Pragma SPARK_Mode
  
  
*************** SPARK_Mode (@code{Off}), then that pragm
*** 7831,7837 ****
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{f8}
  @section Pragma Static_Elaboration_Desired
  
  
--- 7850,7856 ----
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{fa}
  @section Pragma Static_Elaboration_Desired
  
  
*************** construction of larger aggregates with s
*** 7855,7861 ****
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{f9}
  @section Pragma Stream_Convert
  
  
--- 7874,7880 ----
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{fb}
  @section Pragma Stream_Convert
  
  
*************** the pragma is silently ignored, and the
*** 7932,7938 ****
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subprogram_Variant,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{fa}
  @section Pragma Style_Checks
  
  
--- 7951,7957 ----
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subprogram_Variant,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{fc}
  @section Pragma Style_Checks
  
  
*************** Rf2 : Integer := ARG;      -- OK, no err
*** 8078,8084 ****
  @end example
  
  @node Pragma Subprogram_Variant,Pragma Subtitle,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subprogram-variant}@anchor{fb}
  @section Pragma Subprogram_Variant
  
  
--- 8097,8103 ----
  @end example
  
  @node Pragma Subprogram_Variant,Pragma Subtitle,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subprogram-variant}@anchor{fd}
  @section Pragma Subprogram_Variant
  
  
*************** the implementation-defined @code{Subprog
*** 8110,8116 ****
  restrictions and semantics.
  
  @node Pragma Subtitle,Pragma Suppress,Pragma Subprogram_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{fc}
  @section Pragma Subtitle
  
  
--- 8129,8135 ----
  restrictions and semantics.
  
  @node Pragma Subtitle,Pragma Suppress,Pragma Subprogram_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{fe}
  @section Pragma Subtitle
  
  
*************** This pragma is recognized for compatibil
*** 8124,8130 ****
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{fd}
  @section Pragma Suppress
  
  
--- 8143,8149 ----
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{ff}
  @section Pragma Suppress
  
  
*************** Of course, run-time checks are omitted w
*** 8197,8203 ****
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{fe}
  @section Pragma Suppress_All
  
  
--- 8216,8222 ----
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{100}
  @section Pragma Suppress_All
  
  
*************** The use of the standard Ada pragma @code
*** 8216,8222 ****
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{ff}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{100}
  @section Pragma Suppress_Debug_Info
  
  
--- 8235,8241 ----
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{101}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{102}
  @section Pragma Suppress_Debug_Info
  
  
*************** for the specified entity. It is intended
*** 8231,8237 ****
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{101}
  @section Pragma Suppress_Exception_Locations
  
  
--- 8250,8256 ----
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{103}
  @section Pragma Suppress_Exception_Locations
  
  
*************** a partition, so it is fine to have some
*** 8254,8260 ****
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{102}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{103}
  @section Pragma Suppress_Initialization
  
  
--- 8273,8279 ----
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{104}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{105}
  @section Pragma Suppress_Initialization
  
  
*************** is suppressed, just as though its subtyp
*** 8299,8305 ****
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{104}
  @section Pragma Task_Name
  
  
--- 8318,8324 ----
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{106}
  @section Pragma Task_Name
  
  
*************** end;
*** 8355,8361 ****
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{105}
  @section Pragma Task_Storage
  
  
--- 8374,8380 ----
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{107}
  @section Pragma Task_Storage
  
  
*************** created, depending on the target.  This
*** 8375,8381 ****
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{106}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{107}
  @section Pragma Test_Case
  
  
--- 8394,8400 ----
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{109}
  @section Pragma Test_Case
  
  
*************** postcondition. Mode @code{Robustness} in
*** 8431,8437 ****
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{109}
  @section Pragma Thread_Local_Storage
  
  
--- 8450,8456 ----
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10a}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{10b}
  @section Pragma Thread_Local_Storage
  
  
*************** If this pragma is used on a system where
*** 8469,8475 ****
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{10a}
  @section Pragma Time_Slice
  
  
--- 8488,8494 ----
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{10c}
  @section Pragma Time_Slice
  
  
*************** It is ignored if it is used in a system
*** 8485,8491 ****
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{10b}
  @section Pragma Title
  
  
--- 8504,8510 ----
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{10d}
  @section Pragma Title
  
  
*************** notation is used, and named and position
*** 8510,8516 ****
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{10c}
  @section Pragma Type_Invariant
  
  
--- 8529,8535 ----
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{10e}
  @section Pragma Type_Invariant
  
  
*************** controlled by the assertion identifier @
*** 8531,8537 ****
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10d}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{10e}
  @section Pragma Type_Invariant_Class
  
  
--- 8550,8556 ----
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{10f}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{110}
  @section Pragma Type_Invariant_Class
  
  
*************** policy that controls this pragma is @cod
*** 8558,8564 ****
  not @code{Type_Invariant_Class}.
  
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{10f}
  @section Pragma Unchecked_Union
  
  
--- 8577,8583 ----
  not @code{Type_Invariant_Class}.
  
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{111}
  @section Pragma Unchecked_Union
  
  
*************** version in all language modes (Ada 83, A
*** 8578,8584 ****
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
  @node Pragma Unevaluated_Use_Of_Old,Pragma User_Aspect_Definition,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{110}
  @section Pragma Unevaluated_Use_Of_Old
  
  
--- 8597,8603 ----
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
  @node Pragma Unevaluated_Use_Of_Old,Pragma User_Aspect_Definition,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{112}
  @section Pragma Unevaluated_Use_Of_Old
  
  
*************** uses up to the end of the corresponding
*** 8633,8639 ****
  sequence of package declarations.
  
  @node Pragma User_Aspect_Definition,Pragma Unimplemented_Unit,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-user-aspect-definition}@anchor{111}
  @section Pragma User_Aspect_Definition
  
  
--- 8652,8658 ----
  sequence of package declarations.
  
  @node Pragma User_Aspect_Definition,Pragma Unimplemented_Unit,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-user-aspect-definition}@anchor{113}
  @section Pragma User_Aspect_Definition
  
  
*************** pragma. If multiple definitions are visi
*** 8665,8671 ****
  then the definitions must agree. A predefined aspect cannot be redefined.
  
  @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma User_Aspect_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{112}
  @section Pragma Unimplemented_Unit
  
  
--- 8684,8690 ----
  then the definitions must agree. A predefined aspect cannot be redefined.
  
  @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma User_Aspect_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{114}
  @section Pragma Unimplemented_Unit
  
  
*************** The abort only happens if code is being
*** 8685,8691 ****
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{113}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{114}
  @section Pragma Universal_Aliasing
  
  
--- 8704,8710 ----
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{115}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{116}
  @section Pragma Universal_Aliasing
  
  
*************** they need to be suppressed, see the sect
*** 8703,8709 ****
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{115}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{116}
  @section Pragma Unmodified
  
  
--- 8722,8728 ----
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{117}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{118}
  @section Pragma Unmodified
  
  
*************** Thus it is never necessary to use @code{
*** 8737,8743 ****
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{117}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{118}
  @section Pragma Unreferenced
  
  
--- 8756,8762 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{119}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{11a}
  @section Pragma Unreferenced
  
  
*************** Thus it is never necessary to use @code{
*** 8799,8805 ****
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{119}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{11a}
  @section Pragma Unreferenced_Objects
  
  
--- 8818,8824 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11b}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{11c}
  @section Pragma Unreferenced_Objects
  
  
*************** compiler will automatically suppress unw
*** 8824,8830 ****
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{11b}
  @section Pragma Unreserve_All_Interrupts
  
  
--- 8843,8849 ----
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{11d}
  @section Pragma Unreserve_All_Interrupts
  
  
*************** pragma Unreserve_All_Interrupts;
*** 8837,8851 ****
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for a @code{Ctrl-C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl-C} can be used to
  interrupt execution.
  
  If the pragma @code{Unreserve_All_Interrupts} appears anywhere in any unit in
  a program, then all such interrupts are unreserved.  This allows the
  program to handle these interrupts, but disables their standard
  functions.  For example, if this pragma is used, then pressing
! @code{Ctrl-C} will not automatically interrupt execution.  However,
  a program can then handle the @code{SIGINT} interrupt as it chooses.
  
  For a full list of the interrupts handled in a specific implementation,
--- 8856,8870 ----
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for a @code{Ctrl}-@code{C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl}-@code{C} can be used to
  interrupt execution.
  
  If the pragma @code{Unreserve_All_Interrupts} appears anywhere in any unit in
  a program, then all such interrupts are unreserved.  This allows the
  program to handle these interrupts, but disables their standard
  functions.  For example, if this pragma is used, then pressing
! @code{Ctrl}-@code{C} will not automatically interrupt execution.  However,
  a program can then handle the @code{SIGINT} interrupt as it chooses.
  
  For a full list of the interrupts handled in a specific implementation,
*************** handled, see pragma @code{Interrupt_Stat
*** 8860,8866 ****
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{11c}
  @section Pragma Unsuppress
  
  
--- 8879,8885 ----
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{11e}
  @section Pragma Unsuppress
  
  
*************** number of implementation-defined check n
*** 8896,8902 ****
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11d}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{11e}
  @section Pragma Unused
  
  
--- 8915,8921 ----
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{11f}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{120}
  @section Pragma Unused
  
  
*************** Thus it is never necessary to use @code{
*** 8930,8936 ****
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{11f}
  @section Pragma Use_VADS_Size
  
  
--- 8949,8955 ----
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{121}
  @section Pragma Use_VADS_Size
  
  
*************** as implemented in the VADS compiler.  Se
*** 8954,8960 ****
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{120}
  @section Pragma Validity_Checks
  
  
--- 8973,8979 ----
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{122}
  @section Pragma Validity_Checks
  
  
*************** A := C;                       -- C will
*** 9010,9016 ****
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{121}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{122}
  @section Pragma Volatile
  
  
--- 9029,9035 ----
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{123}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{124}
  @section Pragma Volatile
  
  
*************** implementation of pragma Volatile is upw
*** 9028,9034 ****
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{123}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{124}
  @section Pragma Volatile_Full_Access
  
  
--- 9047,9053 ----
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id59}@anchor{125}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{126}
  @section Pragma Volatile_Full_Access
  
  
*************** is not to the whole object; the compiler
*** 9054,9060 ****
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id59}@anchor{125}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{126}
  @section Pragma Volatile_Function
  
  
--- 9073,9079 ----
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id60}@anchor{127}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{128}
  @section Pragma Volatile_Function
  
  
*************** For the semantics of this pragma, see th
*** 9068,9074 ****
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{127}
  @section Pragma Warning_As_Error
  
  
--- 9087,9093 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{129}
  @section Pragma Warning_As_Error
  
  
*************** you can use multiple pragma Warning_As_E
*** 9108,9114 ****
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{128,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
--- 9127,9133 ----
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{12a,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
*************** the tag is changed from “warning:” t
*** 9158,9164 ****
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id60}@anchor{129}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{128}
  @section Pragma Warnings
  
  
--- 9177,9183 ----
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id61}@anchor{12b}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{12a}
  @section Pragma Warnings
  
  
*************** selectively for each tool, and as a cons
*** 9314,9320 ****
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{12a}
  @section Pragma Weak_External
  
  
--- 9333,9339 ----
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{12c}
  @section Pragma Weak_External
  
  
*************** end External_Module;
*** 9365,9371 ****
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{12b}
  @section Pragma Wide_Character_Encoding
  
  
--- 9384,9390 ----
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{12d}
  @section Pragma Wide_Character_Encoding
  
  
*************** encoding within that file, and does not
*** 9396,9402 ****
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{12c}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{12d}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{12e}
  @chapter Implementation Defined Aspects
  
  
--- 9415,9421 ----
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{12e}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{12f}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{130}
  @chapter Implementation Defined Aspects
  
  
*************** or attribute definition clause.
*** 9493,9498 ****
--- 9512,9518 ----
  * Aspect Part_Of:: 
  * Aspect Persistent_BSS:: 
  * Aspect Predicate:: 
+ * Aspect Program_Exit:: 
  * Aspect Pure_Function:: 
  * Aspect Refined_Depends:: 
  * Aspect Refined_Global:: 
*************** or attribute definition clause.
*** 9525,9531 ****
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{12f}
  @section Aspect Abstract_State
  
  
--- 9545,9551 ----
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{131}
  @section Aspect Abstract_State
  
  
*************** or attribute definition clause.
*** 9534,9540 ****
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
  @node Aspect Always_Terminates,Aspect Annotate,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-always-terminates}@anchor{130}
  @section Aspect Always_Terminates
  
  
--- 9554,9560 ----
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
  @node Aspect Always_Terminates,Aspect Annotate,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-always-terminates}@anchor{132}
  @section Aspect Always_Terminates
  
  
*************** This aspect is equivalent to @ref{1e,,pr
*** 9543,9549 ****
  This boolean aspect is equivalent to @ref{29,,pragma Always_Terminates}.
  
  @node Aspect Annotate,Aspect Async_Readers,Aspect Always_Terminates,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{131}
  @section Aspect Annotate
  
  
--- 9563,9569 ----
  This boolean aspect is equivalent to @ref{29,,pragma Always_Terminates}.
  
  @node Aspect Annotate,Aspect Async_Readers,Aspect Always_Terminates,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{133}
  @section Aspect Annotate
  
  
*************** Equivalent to @code{pragma Annotate (ID,
*** 9570,9576 ****
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{132}
  @section Aspect Async_Readers
  
  
--- 9590,9596 ----
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{134}
  @section Aspect Async_Readers
  
  
*************** Equivalent to @code{pragma Annotate (ID,
*** 9579,9585 ****
  This boolean aspect is equivalent to @ref{32,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{133}
  @section Aspect Async_Writers
  
  
--- 9599,9605 ----
  This boolean aspect is equivalent to @ref{32,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{135}
  @section Aspect Async_Writers
  
  
*************** This boolean aspect is equivalent to @re
*** 9588,9594 ****
  This boolean aspect is equivalent to @ref{34,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{134}
  @section Aspect Constant_After_Elaboration
  
  
--- 9608,9614 ----
  This boolean aspect is equivalent to @ref{34,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{136}
  @section Aspect Constant_After_Elaboration
  
  
*************** This boolean aspect is equivalent to @re
*** 9597,9603 ****
  This aspect is equivalent to @ref{44,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{135}
  @section Aspect Contract_Cases
  
  
--- 9617,9623 ----
  This aspect is equivalent to @ref{44,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{137}
  @section Aspect Contract_Cases
  
  
*************** of clauses being enclosed in parentheses
*** 9608,9614 ****
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{136}
  @section Aspect Depends
  
  
--- 9628,9634 ----
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{138}
  @section Aspect Depends
  
  
*************** aggregate.
*** 9617,9623 ****
  This aspect is equivalent to @ref{56,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{137}
  @section Aspect Default_Initial_Condition
  
  
--- 9637,9643 ----
  This aspect is equivalent to @ref{56,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{139}
  @section Aspect Default_Initial_Condition
  
  
*************** This aspect is equivalent to @ref{56,,pr
*** 9626,9632 ****
  This aspect is equivalent to @ref{52,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{138}
  @section Aspect Dimension
  
  
--- 9646,9652 ----
  This aspect is equivalent to @ref{52,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{13a}
  @section Aspect Dimension
  
  
*************** Note that when the dimensioned type is a
*** 9662,9668 ****
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{139}
  @section Aspect Dimension_System
  
  
--- 9682,9688 ----
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{13b}
  @section Aspect Dimension_System
  
  
*************** See section ‘Performing Dimensionality
*** 9722,9728 ****
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{13a}
  @section Aspect Disable_Controlled
  
  
--- 9742,9748 ----
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{13c}
  @section Aspect Disable_Controlled
  
  
*************** where for example you might want a recor
*** 9735,9741 ****
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{13b}
  @section Aspect Effective_Reads
  
  
--- 9755,9761 ----
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{13d}
  @section Aspect Effective_Reads
  
  
*************** whether some run-time check is enabled o
*** 9744,9750 ****
  This aspect is equivalent to @ref{5b,,pragma Effective_Reads}.
  
  @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{13c}
  @section Aspect Effective_Writes
  
  
--- 9764,9770 ----
  This aspect is equivalent to @ref{5b,,pragma Effective_Reads}.
  
  @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{13e}
  @section Aspect Effective_Writes
  
  
*************** This aspect is equivalent to @ref{5b,,pr
*** 9753,9759 ****
  This aspect is equivalent to @ref{5d,,pragma Effective_Writes}.
  
  @node Aspect Exceptional_Cases,Aspect Exit_Cases,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{13d}
  @section Aspect Exceptional_Cases
  
  
--- 9773,9779 ----
  This aspect is equivalent to @ref{5d,,pragma Effective_Writes}.
  
  @node Aspect Exceptional_Cases,Aspect Exit_Cases,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{13f}
  @section Aspect Exceptional_Cases
  
  
*************** For the syntax and semantics of this asp
*** 9768,9774 ****
  Manual, section 6.1.9.
  
  @node Aspect Exit_Cases,Aspect Extensions_Visible,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exit-cases}@anchor{13e}
  @section Aspect Exit_Cases
  
  
--- 9788,9794 ----
  Manual, section 6.1.9.
  
  @node Aspect Exit_Cases,Aspect Extensions_Visible,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exit-cases}@anchor{140}
  @section Aspect Exit_Cases
  
  
*************** For the syntax and semantics of this asp
*** 9783,9789 ****
  Manual, section 6.1.10.
  
  @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Exit_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{13f}
  @section Aspect Extensions_Visible
  
  
--- 9803,9809 ----
  Manual, section 6.1.10.
  
  @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Exit_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{141}
  @section Aspect Extensions_Visible
  
  
*************** Manual, section 6.1.10.
*** 9792,9798 ****
  This aspect is equivalent to @ref{6d,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{140}
  @section Aspect Favor_Top_Level
  
  
--- 9812,9818 ----
  This aspect is equivalent to @ref{6d,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{142}
  @section Aspect Favor_Top_Level
  
  
*************** This aspect is equivalent to @ref{6d,,pr
*** 9801,9807 ****
  This boolean aspect is equivalent to @ref{72,,pragma Favor_Top_Level}.
  
  @node Aspect Ghost,Aspect Ghost_Predicate,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{141}
  @section Aspect Ghost
  
  
--- 9821,9827 ----
  This boolean aspect is equivalent to @ref{72,,pragma Favor_Top_Level}.
  
  @node Aspect Ghost,Aspect Ghost_Predicate,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{143}
  @section Aspect Ghost
  
  
*************** This boolean aspect is equivalent to @re
*** 9810,9816 ****
  This aspect is equivalent to @ref{76,,pragma Ghost}.
  
  @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{142}
  @section Aspect Ghost_Predicate
  
  
--- 9830,9836 ----
  This aspect is equivalent to @ref{76,,pragma Ghost}.
  
  @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{144}
  @section Aspect Ghost_Predicate
  
  
*************** For the detailed semantics of this aspec
*** 9823,9829 ****
  in the SPARK Reference Manual, section 3.2.4.
  
  @node Aspect Global,Aspect Initial_Condition,Aspect Ghost_Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{143}
  @section Aspect Global
  
  
--- 9843,9849 ----
  in the SPARK Reference Manual, section 3.2.4.
  
  @node Aspect Global,Aspect Initial_Condition,Aspect Ghost_Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{145}
  @section Aspect Global
  
  
*************** in the SPARK Reference Manual, section 3
*** 9832,9838 ****
  This aspect is equivalent to @ref{78,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{144}
  @section Aspect Initial_Condition
  
  
--- 9852,9858 ----
  This aspect is equivalent to @ref{78,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{146}
  @section Aspect Initial_Condition
  
  
*************** This aspect is equivalent to @ref{78,,pr
*** 9841,9847 ****
  This aspect is equivalent to @ref{85,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{145}
  @section Aspect Initializes
  
  
--- 9861,9867 ----
  This aspect is equivalent to @ref{85,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{147}
  @section Aspect Initializes
  
  
*************** This aspect is equivalent to @ref{85,,pr
*** 9850,9856 ****
  This aspect is equivalent to @ref{88,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{146}
  @section Aspect Inline_Always
  
  
--- 9870,9876 ----
  This aspect is equivalent to @ref{88,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{148}
  @section Aspect Inline_Always
  
  
*************** This aspect is equivalent to @ref{88,,pr
*** 9859,9865 ****
  This boolean aspect is equivalent to @ref{8a,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{147}
  @section Aspect Invariant
  
  
--- 9879,9885 ----
  This boolean aspect is equivalent to @ref{8a,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{149}
  @section Aspect Invariant
  
  
*************** synonym for the language defined aspect
*** 9870,9887 ****
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{148}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{10e,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{149}
  @section Aspect Iterable
  
  
--- 9890,9907 ----
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{14a}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{110,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{14b}
  @section Aspect Iterable
  
  
*************** function Get_Element (Cont : Container;
*** 9965,9971 ****
  This aspect is used in the GNAT-defined formal container packages.
  
  @node Aspect Linker_Section,Aspect Local_Restrictions,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{14a}
  @section Aspect Linker_Section
  
  
--- 9985,9991 ----
  This aspect is used in the GNAT-defined formal container packages.
  
  @node Aspect Linker_Section,Aspect Local_Restrictions,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{14c}
  @section Aspect Linker_Section
  
  
*************** This aspect is used in the GNAT-defined
*** 9974,9980 ****
  This aspect is equivalent to @ref{9a,,pragma Linker_Section}.
  
  @node Aspect Local_Restrictions,Aspect Lock_Free,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-local-restrictions}@anchor{14b}
  @section Aspect Local_Restrictions
  
  
--- 9994,10000 ----
  This aspect is equivalent to @ref{9a,,pragma Linker_Section}.
  
  @node Aspect Local_Restrictions,Aspect Lock_Free,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-local-restrictions}@anchor{14d}
  @section Aspect Local_Restrictions
  
  
*************** case of a declaration that occurs within
*** 10028,10034 ****
  a Local_Restrictions specification).
  
  @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Local_Restrictions,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{14c}
  @section Aspect Lock_Free
  
  
--- 10048,10054 ----
  a Local_Restrictions specification).
  
  @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Local_Restrictions,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{14e}
  @section Aspect Lock_Free
  
  
*************** a Local_Restrictions specification).
*** 10037,10043 ****
  This boolean aspect is equivalent to @ref{9c,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{14d}
  @section Aspect Max_Queue_Length
  
  
--- 10057,10063 ----
  This boolean aspect is equivalent to @ref{9c,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{14f}
  @section Aspect Max_Queue_Length
  
  
*************** This boolean aspect is equivalent to @re
*** 10046,10052 ****
  This aspect is equivalent to @ref{a4,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{14e}
  @section Aspect No_Caching
  
  
--- 10066,10072 ----
  This aspect is equivalent to @ref{a4,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{150}
  @section Aspect No_Caching
  
  
*************** This aspect is equivalent to @ref{a4,,pr
*** 10055,10061 ****
  This boolean aspect is equivalent to @ref{a7,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{14f}
  @section Aspect No_Elaboration_Code_All
  
  
--- 10075,10081 ----
  This boolean aspect is equivalent to @ref{a7,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{151}
  @section Aspect No_Elaboration_Code_All
  
  
*************** This aspect is equivalent to @ref{aa,,pr
*** 10065,10071 ****
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Raise,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{150}
  @section Aspect No_Inline
  
  
--- 10085,10091 ----
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Raise,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{152}
  @section Aspect No_Inline
  
  
*************** for a program unit.
*** 10074,10080 ****
  This boolean aspect is equivalent to @ref{ad,,pragma No_Inline}.
  
  @node Aspect No_Raise,Aspect No_Tagged_Streams,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-raise}@anchor{151}
  @section Aspect No_Raise
  
  
--- 10094,10100 ----
  This boolean aspect is equivalent to @ref{ad,,pragma No_Inline}.
  
  @node Aspect No_Raise,Aspect No_Tagged_Streams,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-raise}@anchor{153}
  @section Aspect No_Raise
  
  
*************** This boolean aspect is equivalent to @re
*** 10083,10089 ****
  This boolean aspect is equivalent to @ref{af,,pragma No_Raise}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Raise,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{152}
  @section Aspect No_Tagged_Streams
  
  
--- 10103,10109 ----
  This boolean aspect is equivalent to @ref{af,,pragma No_Raise}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Raise,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{154}
  @section Aspect No_Tagged_Streams
  
  
*************** argument specifying a root tagged type (
*** 10094,10100 ****
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{153}
  @section Aspect No_Task_Parts
  
  
--- 10114,10120 ----
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{155}
  @section Aspect No_Task_Parts
  
  
*************** away certain tasking-related code that w
*** 10110,10125 ****
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{154}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{155,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{156}
  @section Aspect Obsolescent
  
  
--- 10130,10145 ----
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{156}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{157,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{158}
  @section Aspect Obsolescent
  
  
*************** evaluation of this aspect happens at the
*** 10130,10136 ****
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{157}
  @section Aspect Part_Of
  
  
--- 10150,10156 ----
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{159}
  @section Aspect Part_Of
  
  
*************** delayed until the freeze point.
*** 10139,10145 ****
  This aspect is equivalent to @ref{bc,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{158}
  @section Aspect Persistent_BSS
  
  
--- 10159,10165 ----
  This aspect is equivalent to @ref{bc,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{15a}
  @section Aspect Persistent_BSS
  
  
*************** This aspect is equivalent to @ref{bc,,pr
*** 10147,10154 ****
  
  This boolean aspect is equivalent to @ref{c0,,pragma Persistent_BSS}.
  
! @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{159}
  @section Aspect Predicate
  
  
--- 10167,10174 ----
  
  This boolean aspect is equivalent to @ref{c0,,pragma Persistent_BSS}.
  
! @node Aspect Predicate,Aspect Program_Exit,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{15b}
  @section Aspect Predicate
  
  
*************** predicate is static or dynamic is contro
*** 10161,10213 ****
  expression. It is also separately controllable using pragma
  @code{Assertion_Policy}.
  
! @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{15a}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{d3,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{15b}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{d7,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{15c}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{d9,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{15d}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{db,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{15e}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{dd,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{15f}
  @section Aspect Relaxed_Initialization
  
  
--- 10181,10242 ----
  expression. It is also separately controllable using pragma
  @code{Assertion_Policy}.
  
! @node Aspect Program_Exit,Aspect Pure_Function,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-program-exit}@anchor{15c}
! @section Aspect Program_Exit
! 
! 
! @geindex Program_Exit
! 
! This boolean aspect is equivalent to @ref{d0,,pragma Program_Exit}.
! 
! @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Program_Exit,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{15d}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{d5,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{15e}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{d9,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{15f}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{db,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{160}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{dd,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{161}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{df,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{162}
  @section Aspect Relaxed_Initialization
  
  
*************** For the syntax and semantics of this asp
*** 10217,10298 ****
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{160}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{e0,,pragma Remote_Access_Type}.
  
  @node Aspect Scalar_Storage_Order,Aspect Secondary_Stack_Size,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{161}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{162,,attribute Scalar_Storage_Order}.
  
  @node Aspect Secondary_Stack_Size,Aspect Shared,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{163}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e6,,pragma Secondary_Stack_Size}.
  
  @node Aspect Shared,Aspect Side_Effects,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{164}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{e9,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
  @node Aspect Side_Effects,Aspect Simple_Storage_Pool,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-side-effects}@anchor{165}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{ed,,pragma Side_Effects}.
  
  @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Side_Effects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{166}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{f0,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{167}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{ef,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Subprogram_Variant,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{168}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{f7,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Subprogram_Variant,Aspect Suppress_Debug_Info,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-subprogram-variant}@anchor{169}
  @section Aspect Subprogram_Variant
  
  
--- 10246,10327 ----
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{163}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{e2,,pragma Remote_Access_Type}.
  
  @node Aspect Scalar_Storage_Order,Aspect Secondary_Stack_Size,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{164}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{165,,attribute Scalar_Storage_Order}.
  
  @node Aspect Secondary_Stack_Size,Aspect Shared,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{166}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e8,,pragma Secondary_Stack_Size}.
  
  @node Aspect Shared,Aspect Side_Effects,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{167}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{eb,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
  @node Aspect Side_Effects,Aspect Simple_Storage_Pool,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-side-effects}@anchor{168}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{ef,,pragma Side_Effects}.
  
  @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Side_Effects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{169}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{f2,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{16a}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{f1,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Subprogram_Variant,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{16b}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{f9,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Subprogram_Variant,Aspect Suppress_Debug_Info,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-subprogram-variant}@anchor{16c}
  @section Aspect Subprogram_Variant
  
  
*************** For the syntax and semantics of this asp
*** 10302,10384 ****
  Manual, section 6.1.8.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect Subprogram_Variant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{16a}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{100,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{16b}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{103,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{16c}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{107,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{16d}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{109,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{16e}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{114,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{16f}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{116,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{170}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{118,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
  @node Aspect Unreferenced_Objects,Aspect User_Aspect,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{171}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{11a,,pragma Unreferenced_Objects}.
  
  @node Aspect User_Aspect,Aspect Value_Size,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-user-aspect}@anchor{172}
  @section Aspect User_Aspect
  
  
--- 10331,10413 ----
  Manual, section 6.1.8.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect Subprogram_Variant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{16d}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{102,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{16e}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{105,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{16f}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{109,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{170}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{10b,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{171}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{116,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{172}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{118,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{173}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{11a,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
  @node Aspect Unreferenced_Objects,Aspect User_Aspect,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{174}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{11c,,pragma Unreferenced_Objects}.
  
  @node Aspect User_Aspect,Aspect Value_Size,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-user-aspect}@anchor{175}
  @section Aspect User_Aspect
  
  
*************** replicating the set of aspect specificat
*** 10391,10435 ****
  pragma-defined aspect.
  
  @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect User_Aspect,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{173}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{174,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{175}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{124,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{176}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{126,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{177}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{128,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{178}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{179}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
--- 10420,10464 ----
  pragma-defined aspect.
  
  @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect User_Aspect,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{176}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{177,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{178}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{126,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{179}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{128,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{17a}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{12a,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{17b}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{17c}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
*************** consideration, you should minimize the u
*** 10535,10541 ****
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{17a}
  @section Attribute Abort_Signal
  
  
--- 10564,10570 ----
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{17d}
  @section Attribute Abort_Signal
  
  
*************** completely outside the normal semantics
*** 10549,10555 ****
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{17b}
  @section Attribute Address_Size
  
  
--- 10578,10584 ----
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{17e}
  @section Attribute Address_Size
  
  
*************** reference to System.Address’Size is no
*** 10565,10571 ****
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{17c}
  @section Attribute Asm_Input
  
  
--- 10594,10600 ----
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{17f}
  @section Attribute Asm_Input
  
  
*************** to be a static expression, and is the co
*** 10579,10588 ****
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{17d,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{17e}
  @section Attribute Asm_Output
  
  
--- 10608,10617 ----
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{180,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{181}
  @section Attribute Asm_Output
  
  
*************** result.  The possible values for constra
*** 10598,10607 ****
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{17d,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{17f}
  @section Attribute Atomic_Always_Lock_Free
  
  
--- 10627,10636 ----
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{180,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{182}
  @section Attribute Atomic_Always_Lock_Free
  
  
*************** result indicates whether atomic operatio
*** 10612,10618 ****
  for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{180}
  @section Attribute Bit
  
  
--- 10641,10647 ----
  for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{183}
  @section Attribute Bit
  
  
*************** This attribute is designed to be compati
*** 10643,10649 ****
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{181}
  @section Attribute Bit_Position
  
  
--- 10672,10678 ----
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{184}
  @section Attribute Bit_Position
  
  
*************** type `universal_integer'.  The value dep
*** 10658,10664 ****
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{182}
  @section Attribute Code_Address
  
  
--- 10687,10693 ----
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{185}
  @section Attribute Code_Address
  
  
*************** the same value as is returned by the cor
*** 10701,10707 ****
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{183}
  @section Attribute Compiler_Version
  
  
--- 10730,10736 ----
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{186}
  @section Attribute Compiler_Version
  
  
*************** prefix) yields a static string identifyi
*** 10712,10718 ****
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{184}
  @section Attribute Constrained
  
  
--- 10741,10747 ----
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{187}
  @section Attribute Constrained
  
  
*************** record type without discriminants is alw
*** 10727,10733 ****
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{185}
  @section Attribute Default_Bit_Order
  
  
--- 10756,10762 ----
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{188}
  @section Attribute Default_Bit_Order
  
  
*************** as a @code{Pos} value (0 for @code{High_
*** 10744,10750 ****
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{186}
  @section Attribute Default_Scalar_Storage_Order
  
  
--- 10773,10779 ----
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{189}
  @section Attribute Default_Scalar_Storage_Order
  
  
*************** equal to @code{Default_Bit_Order} if uns
*** 10761,10767 ****
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{187}
  @section Attribute Deref
  
  
--- 10790,10796 ----
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{18a}
  @section Attribute Deref
  
  
*************** a named access-to-@cite{typ} type, excep
*** 10774,10780 ****
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{188}
  @section Attribute Descriptor_Size
  
  
--- 10803,10809 ----
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{18b}
  @section Attribute Descriptor_Size
  
  
*************** since @code{Positive} has an alignment o
*** 10803,10809 ****
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{189}
  @section Attribute Elaborated
  
  
--- 10832,10838 ----
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{18c}
  @section Attribute Elaborated
  
  
*************** units has been completed.  An exception
*** 10818,10824 ****
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{18a}
  @section Attribute Elab_Body
  
  
--- 10847,10853 ----
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{18d}
  @section Attribute Elab_Body
  
  
*************** e.g., if it is necessary to do selective
*** 10834,10840 ****
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{18b}
  @section Attribute Elab_Spec
  
  
--- 10863,10869 ----
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{18e}
  @section Attribute Elab_Spec
  
  
*************** Ada code, e.g., if it is necessary to do
*** 10850,10856 ****
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{18c}
  @section Attribute Elab_Subp_Body
  
  
--- 10879,10885 ----
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{18f}
  @section Attribute Elab_Subp_Body
  
  
*************** elaboration procedure by the binder in C
*** 10864,10870 ****
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{18d}
  @section Attribute Emax
  
  
--- 10893,10899 ----
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{190}
  @section Attribute Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 10877,10883 ****
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{18e}
  @section Attribute Enabled
  
  
--- 10906,10912 ----
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{191}
  @section Attribute Enabled
  
  
*************** a @code{pragma Suppress} or @code{pragma
*** 10901,10907 ****
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{18f}
  @section Attribute Enum_Rep
  
  
--- 10930,10936 ----
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{192}
  @section Attribute Enum_Rep
  
  
*************** integer calculation is done at run time,
*** 10941,10947 ****
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{190}
  @section Attribute Enum_Val
  
  
--- 10970,10976 ----
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{193}
  @section Attribute Enum_Val
  
  
*************** absence of an enumeration representation
*** 10967,10973 ****
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{191}
  @section Attribute Epsilon
  
  
--- 10996,11002 ----
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{194}
  @section Attribute Epsilon
  
  
*************** the Ada 83 reference manual for an exact
*** 10980,10986 ****
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{192}
  @section Attribute Fast_Math
  
  
--- 11009,11015 ----
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{195}
  @section Attribute Fast_Math
  
  
*************** prefix) yields a static Boolean value th
*** 10991,10997 ****
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{193}
  @section Attribute Finalization_Size
  
  
--- 11020,11026 ----
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{196}
  @section Attribute Finalization_Size
  
  
*************** class-wide type whose tag denotes a type
*** 11009,11015 ****
  Note that only heap-allocated objects contain finalization data.
  
  @node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{194}
  @section Attribute Fixed_Value
  
  
--- 11038,11044 ----
  Note that only heap-allocated objects contain finalization data.
  
  @node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{197}
  @section Attribute Fixed_Value
  
  
*************** This attribute is primarily intended for
*** 11036,11042 ****
  input-output functions for fixed-point values.
  
  @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{195}
  @section Attribute From_Any
  
  
--- 11065,11071 ----
  input-output functions for fixed-point values.
  
  @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{198}
  @section Attribute From_Any
  
  
*************** This internal attribute is used for the
*** 11046,11052 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{196}
  @section Attribute Has_Access_Values
  
  
--- 11075,11081 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{199}
  @section Attribute Has_Access_Values
  
  
*************** definitions.  If the attribute is applie
*** 11064,11070 ****
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Has_Discriminants,Attribute Has_Tagged_Values,Attribute Has_Access_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{197}
  @section Attribute Has_Discriminants
  
  
--- 11093,11099 ----
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Has_Discriminants,Attribute Has_Tagged_Values,Attribute Has_Access_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{19a}
  @section Attribute Has_Discriminants
  
  
*************** definitions.  If the attribute is applie
*** 11080,11086 ****
  indicates whether or not the corresponding actual type has discriminants.
  
  @node Attribute Has_Tagged_Values,Attribute Img,Attribute Has_Discriminants,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-tagged-values}@anchor{198}
  @section Attribute Has_Tagged_Values
  
  
--- 11109,11115 ----
  indicates whether or not the corresponding actual type has discriminants.
  
  @node Attribute Has_Tagged_Values,Attribute Img,Attribute Has_Discriminants,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-tagged-values}@anchor{19b}
  @section Attribute Has_Tagged_Values
  
  
*************** definitions. If the attribute is applied
*** 11097,11103 ****
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Img,Attribute Initialized,Attribute Has_Tagged_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{199}
  @section Attribute Img
  
  
--- 11126,11132 ----
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Img,Attribute Initialized,Attribute Has_Tagged_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{19c}
  @section Attribute Img
  
  
*************** that returns the appropriate string when
*** 11127,11133 ****
  in an instantiation as a function parameter.
  
  @node Attribute Initialized,Attribute Integer_Value,Attribute Img,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-initialized}@anchor{19a}
  @section Attribute Initialized
  
  
--- 11156,11162 ----
  in an instantiation as a function parameter.
  
  @node Attribute Initialized,Attribute Integer_Value,Attribute Img,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-initialized}@anchor{19d}
  @section Attribute Initialized
  
  
*************** For the syntax and semantics of this att
*** 11137,11143 ****
  Manual, section 6.10.
  
  @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Initialized,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{19b}
  @section Attribute Integer_Value
  
  
--- 11166,11172 ----
  Manual, section 6.10.
  
  @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Initialized,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{19e}
  @section Attribute Integer_Value
  
  
*************** This attribute is primarily intended for
*** 11165,11171 ****
  standard input-output functions for fixed-point values.
  
  @node Attribute Invalid_Value,Attribute Large,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{19c}
  @section Attribute Invalid_Value
  
  
--- 11194,11200 ----
  standard input-output functions for fixed-point values.
  
  @node Attribute Invalid_Value,Attribute Large,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{19f}
  @section Attribute Invalid_Value
  
  
*************** including the ability to modify the valu
*** 11179,11185 ****
  relevant environment variables at run time.
  
  @node Attribute Large,Attribute Library_Level,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{19d}
  @section Attribute Large
  
  
--- 11208,11214 ----
  relevant environment variables at run time.
  
  @node Attribute Large,Attribute Library_Level,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{1a0}
  @section Attribute Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11192,11198 ****
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{19e}
  @section Attribute Library_Level
  
  
--- 11221,11227 ----
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{1a1}
  @section Attribute Library_Level
  
  
*************** end Gen;
*** 11218,11224 ****
  @end example
  
  @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Library_Level,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{19f}
  @section Attribute Loop_Entry
  
  
--- 11247,11253 ----
  @end example
  
  @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Library_Level,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{1a2}
  @section Attribute Loop_Entry
  
  
*************** entry. This copy is not performed if the
*** 11251,11257 ****
  corresponding pragmas are ignored or disabled.
  
  @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{1a0}
  @section Attribute Machine_Size
  
  
--- 11280,11286 ----
  corresponding pragmas are ignored or disabled.
  
  @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{1a3}
  @section Attribute Machine_Size
  
  
*************** This attribute is identical to the @code
*** 11261,11267 ****
  provided for compatibility with the DEC Ada 83 attribute of this name.
  
  @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{1a1}
  @section Attribute Mantissa
  
  
--- 11290,11296 ----
  provided for compatibility with the DEC Ada 83 attribute of this name.
  
  @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{1a4}
  @section Attribute Mantissa
  
  
*************** the Ada 83 reference manual for an exact
*** 11274,11280 ****
  this attribute.
  
  @node Attribute Maximum_Alignment,Attribute Max_Integer_Size,Attribute Mantissa,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{1a2}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{1a3}
  @section Attribute Maximum_Alignment
  
  
--- 11303,11309 ----
  this attribute.
  
  @node Attribute Maximum_Alignment,Attribute Max_Integer_Size,Attribute Mantissa,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{1a5}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{1a6}
  @section Attribute Maximum_Alignment
  
  
*************** for an object, guaranteeing that it is p
*** 11290,11296 ****
  cases.
  
  @node Attribute Max_Integer_Size,Attribute Mechanism_Code,Attribute Maximum_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-max-integer-size}@anchor{1a4}
  @section Attribute Max_Integer_Size
  
  
--- 11319,11325 ----
  cases.
  
  @node Attribute Max_Integer_Size,Attribute Mechanism_Code,Attribute Maximum_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-max-integer-size}@anchor{1a7}
  @section Attribute Max_Integer_Size
  
  
*************** prefix) provides the size of the largest
*** 11301,11307 ****
  the target. The result is a static constant.
  
  @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Max_Integer_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{1a5}
  @section Attribute Mechanism_Code
  
  
--- 11330,11336 ----
  the target. The result is a static constant.
  
  @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Max_Integer_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{1a8}
  @section Attribute Mechanism_Code
  
  
*************** by reference
*** 11332,11338 ****
  @end table
  
  @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{1a6}
  @section Attribute Null_Parameter
  
  
--- 11361,11367 ----
  @end table
  
  @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{1a9}
  @section Attribute Null_Parameter
  
  
*************** There is no way of indicating this witho
*** 11357,11363 ****
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{155}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1a7}
  @section Attribute Object_Size
  
  
--- 11386,11392 ----
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{157}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1aa}
  @section Attribute Object_Size
  
  
*************** Similar additional checks are performed
*** 11427,11433 ****
  statically matching subtypes.
  
  @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{1a8}
  @section Attribute Old
  
  
--- 11456,11462 ----
  statically matching subtypes.
  
  @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{1ab}
  @section Attribute Old
  
  
*************** definition are allowed under control of
*** 11442,11448 ****
  implementation defined pragma @code{Unevaluated_Use_Of_Old}.
  
  @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{1a9}
  @section Attribute Passed_By_Reference
  
  
--- 11471,11477 ----
  implementation defined pragma @code{Unevaluated_Use_Of_Old}.
  
  @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{1ac}
  @section Attribute Passed_By_Reference
  
  
*************** passed by copy in calls.  For scalar typ
*** 11458,11464 ****
  and is static.  For non-scalar types, the result is nonstatic.
  
  @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{1aa}
  @section Attribute Pool_Address
  
  
--- 11487,11493 ----
  and is static.  For non-scalar types, the result is nonstatic.
  
  @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{1ad}
  @section Attribute Pool_Address
  
  
*************** For an object created by @code{new}, @co
*** 11480,11486 ****
  what is passed to @code{Allocate} and returned from @code{Deallocate}.
  
  @node Attribute Range_Length,Attribute Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{1ab}
  @section Attribute Range_Length
  
  
--- 11509,11515 ----
  what is passed to @code{Allocate} and returned from @code{Deallocate}.
  
  @node Attribute Range_Length,Attribute Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{1ae}
  @section Attribute Range_Length
  
  
*************** applied to the index subtype of a one di
*** 11493,11499 ****
  same result as @code{Length} applied to the array itself.
  
  @node Attribute Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{1ac}
  @section Attribute Restriction_Set
  
  
--- 11522,11528 ----
  same result as @code{Length} applied to the array itself.
  
  @node Attribute Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{1af}
  @section Attribute Restriction_Set
  
  
*************** Restrictions pragma, they are not analyz
*** 11563,11569 ****
  so they do not have a type.
  
  @node Attribute Result,Attribute Round,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{1ad}
  @section Attribute Result
  
  
--- 11592,11598 ----
  so they do not have a type.
  
  @node Attribute Result,Attribute Round,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{1b0}
  @section Attribute Result
  
  
*************** For a further discussion of the use of t
*** 11576,11582 ****
  see the description of pragma Postcondition.
  
  @node Attribute Round,Attribute Safe_Emax,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-round}@anchor{1ae}
  @section Attribute Round
  
  
--- 11605,11611 ----
  see the description of pragma Postcondition.
  
  @node Attribute Round,Attribute Safe_Emax,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-round}@anchor{1b1}
  @section Attribute Round
  
  
*************** also permits the use of the @code{'Round
*** 11587,11593 ****
  fixed point types.
  
  @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Round,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{1af}
  @section Attribute Safe_Emax
  
  
--- 11616,11622 ----
  fixed point types.
  
  @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Round,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{1b2}
  @section Attribute Safe_Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 11600,11606 ****
  this attribute.
  
  @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{1b0}
  @section Attribute Safe_Large
  
  
--- 11629,11635 ----
  this attribute.
  
  @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{1b3}
  @section Attribute Safe_Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11613,11619 ****
  this attribute.
  
  @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{1b1}
  @section Attribute Safe_Small
  
  
--- 11642,11648 ----
  this attribute.
  
  @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{1b4}
  @section Attribute Safe_Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11626,11632 ****
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{162}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1b2}
  @section Attribute Scalar_Storage_Order
  
  
--- 11655,11661 ----
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{165}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1b5}
  @section Attribute Scalar_Storage_Order
  
  
*************** Note that debuggers may be unable to dis
*** 11789,11795 ****
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{f0}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1b3}
  @section Attribute Simple_Storage_Pool
  
  
--- 11818,11824 ----
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{f2}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1b6}
  @section Attribute Simple_Storage_Pool
  
  
*************** as defined in section 13.11.2 of the Ada
*** 11852,11858 ****
  term `simple storage pool' is substituted for `storage pool'.
  
  @node Attribute Small,Attribute Small_Denominator,Attribute Simple_Storage_Pool,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{1b4}
  @section Attribute Small
  
  
--- 11881,11887 ----
  term `simple storage pool' is substituted for `storage pool'.
  
  @node Attribute Small,Attribute Small_Denominator,Attribute Simple_Storage_Pool,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{1b7}
  @section Attribute Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11868,11874 ****
  this attribute when applied to floating-point types.
  
  @node Attribute Small_Denominator,Attribute Small_Numerator,Attribute Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-denominator}@anchor{1b5}
  @section Attribute Small_Denominator
  
  
--- 11897,11903 ----
  this attribute when applied to floating-point types.
  
  @node Attribute Small_Denominator,Attribute Small_Numerator,Attribute Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-denominator}@anchor{1b8}
  @section Attribute Small_Denominator
  
  
*************** denominator in the representation of @co
*** 11881,11887 ****
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Small_Numerator,Attribute Storage_Unit,Attribute Small_Denominator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-numerator}@anchor{1b6}
  @section Attribute Small_Numerator
  
  
--- 11910,11916 ----
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Small_Numerator,Attribute Storage_Unit,Attribute Small_Denominator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-numerator}@anchor{1b9}
  @section Attribute Small_Numerator
  
  
*************** numerator in the representation of @code
*** 11894,11900 ****
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small_Numerator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{1b7}
  @section Attribute Storage_Unit
  
  
--- 11923,11929 ----
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small_Numerator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{1ba}
  @section Attribute Storage_Unit
  
  
*************** with coprime factors (i.e. as an irreduc
*** 11904,11910 ****
  prefix) provides the same value as @code{System.Storage_Unit}.
  
  @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{1b8}
  @section Attribute Stub_Type
  
  
--- 11933,11939 ----
  prefix) provides the same value as @code{System.Storage_Unit}.
  
  @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{1bb}
  @section Attribute Stub_Type
  
  
*************** unit @code{System.Partition_Interface}.
*** 11928,11934 ****
  an implicit dependency on this unit.
  
  @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{1b9}
  @section Attribute System_Allocator_Alignment
  
  
--- 11957,11963 ----
  an implicit dependency on this unit.
  
  @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{1bc}
  @section Attribute System_Allocator_Alignment
  
  
*************** with alignment too large or to enable a
*** 11945,11951 ****
  alignment request is larger than this value.
  
  @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{1ba}
  @section Attribute Target_Name
  
  
--- 11974,11980 ----
  alignment request is larger than this value.
  
  @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{1bd}
  @section Attribute Target_Name
  
  
*************** standard gcc target name without the ter
*** 11958,11964 ****
  example, GNAT 5.0 on windows yields “i586-pc-mingw32msv”).
  
  @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{1bb}
  @section Attribute To_Address
  
  
--- 11987,11993 ----
  example, GNAT 5.0 on windows yields “i586-pc-mingw32msv”).
  
  @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{1be}
  @section Attribute To_Address
  
  
*************** modular manner (e.g., -1 means the same
*** 11981,11987 ****
  a 32 bits machine).
  
  @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{1bc}
  @section Attribute To_Any
  
  
--- 12010,12016 ----
  a 32 bits machine).
  
  @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{1bf}
  @section Attribute To_Any
  
  
*************** This internal attribute is used for the
*** 11991,11997 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{1bd}
  @section Attribute Type_Class
  
  
--- 12020,12026 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{1c0}
  @section Attribute Type_Class
  
  
*************** applies to all concurrent types.  This a
*** 12021,12027 ****
  be compatible with the DEC Ada 83 attribute of the same name.
  
  @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{1be}
  @section Attribute Type_Key
  
  
--- 12050,12056 ----
  be compatible with the DEC Ada 83 attribute of the same name.
  
  @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{1c1}
  @section Attribute Type_Key
  
  
*************** about the type or subtype. This provides
*** 12033,12039 ****
  other implementations that support this attribute.
  
  @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{1bf}
  @section Attribute TypeCode
  
  
--- 12062,12068 ----
  other implementations that support this attribute.
  
  @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{1c2}
  @section Attribute TypeCode
  
  
*************** This internal attribute is used for the
*** 12043,12049 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{1c0}
  @section Attribute Unconstrained_Array
  
  
--- 12072,12078 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{1c3}
  @section Attribute Unconstrained_Array
  
  
*************** still static, and yields the result of a
*** 12057,12063 ****
  generic actual.
  
  @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{1c1}
  @section Attribute Universal_Literal_String
  
  
--- 12086,12092 ----
  generic actual.
  
  @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{1c4}
  @section Attribute Universal_Literal_String
  
  
*************** end;
*** 12085,12091 ****
  @end example
  
  @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{1c2}
  @section Attribute Unrestricted_Access
  
  
--- 12114,12120 ----
  @end example
  
  @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{1c5}
  @section Attribute Unrestricted_Access
  
  
*************** In general this is a risky approach. It
*** 12272,12278 ****
  of GNAT to another, so are best avoided if possible.
  
  @node Attribute Update,Attribute Valid_Value,Attribute Unrestricted_Access,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1c3}
  @section Attribute Update
  
  
--- 12301,12307 ----
  of GNAT to another, so are best avoided if possible.
  
  @node Attribute Update,Attribute Valid_Value,Attribute Unrestricted_Access,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1c6}
  @section Attribute Update
  
  
*************** A := A'Update ((1, 2) => 20, (3, 4) => 3
*** 12353,12371 ****
  which changes element (1,2) to 20 and (3,4) to 30.
  
  @node Attribute Valid_Value,Attribute Valid_Scalars,Attribute Update,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-value}@anchor{1c4}
  @section Attribute Valid_Value
  
  
  @geindex Valid_Value
  
  The @code{'Valid_Value} attribute is defined for enumeration types other than
! those in package Standard. This attribute is a function that takes
! a String, and returns Boolean. @code{T'Valid_Value (S)} returns True
! if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1c5}
  @section Attribute Valid_Scalars
  
  
--- 12382,12400 ----
  which changes element (1,2) to 20 and (3,4) to 30.
  
  @node Attribute Valid_Value,Attribute Valid_Scalars,Attribute Update,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-value}@anchor{1c7}
  @section Attribute Valid_Value
  
  
  @geindex Valid_Value
  
  The @code{'Valid_Value} attribute is defined for enumeration types other than
! those in package Standard or types derived from those types. This attribute is
! a function that takes a String, and returns Boolean. @code{T'Valid_Value (S)}
! returns True if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1c8}
  @section Attribute Valid_Scalars
  
  
*************** write a function with a single use of th
*** 12399,12405 ****
  function from multiple places.
  
  @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1c6}
  @section Attribute VADS_Size
  
  
--- 12428,12434 ----
  function from multiple places.
  
  @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1c9}
  @section Attribute VADS_Size
  
  
*************** gives the result that would be obtained
*** 12419,12425 ****
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{174}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1c7}
  @section Attribute Value_Size
  
  
--- 12448,12454 ----
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{177}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1ca}
  @section Attribute Value_Size
  
  
*************** a value of the given subtype.  It is the
*** 12433,12439 ****
  but, unlike @code{Size}, may be set for non-first subtypes.
  
  @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1c8}
  @section Attribute Wchar_T_Size
  
  
--- 12462,12468 ----
  but, unlike @code{Size}, may be set for non-first subtypes.
  
  @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1cb}
  @section Attribute Wchar_T_Size
  
  
*************** primarily for constructing the definitio
*** 12445,12451 ****
  package @code{Interfaces.C}. The result is a static constant.
  
  @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1c9}
  @section Attribute Word_Size
  
  
--- 12474,12480 ----
  package @code{Interfaces.C}. The result is a static constant.
  
  @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1cc}
  @section Attribute Word_Size
  
  
*************** prefix) provides the value @code{System.
*** 12456,12462 ****
  a static constant.
  
  @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{1ca}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1cb}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
--- 12485,12491 ----
  a static constant.
  
  @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{1cd}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1ce}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
*************** language defined or GNAT-specific, are l
*** 12485,12491 ****
  @end menu
  
  @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1cc}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1cd}
  @section Partition-Wide Restrictions
  
  
--- 12514,12520 ----
  @end menu
  
  @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1cf}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1d0}
  @section Partition-Wide Restrictions
  
  
*************** then all compilation units in the partit
*** 12578,12584 ****
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1ce}
  @subsection Immediate_Reclamation
  
  
--- 12607,12613 ----
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1d1}
  @subsection Immediate_Reclamation
  
  
*************** deallocation, any storage reserved at ru
*** 12590,12596 ****
  immediately reclaimed when the object no longer exists.
  
  @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1cf}
  @subsection Max_Asynchronous_Select_Nesting
  
  
--- 12619,12625 ----
  immediately reclaimed when the object no longer exists.
  
  @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1d2}
  @subsection Max_Asynchronous_Select_Nesting
  
  
*************** detected at compile time. Violations of
*** 12602,12608 ****
  other than zero cause Storage_Error to be raised.
  
  @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1d0}
  @subsection Max_Entry_Queue_Length
  
  
--- 12631,12637 ----
  other than zero cause Storage_Error to be raised.
  
  @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1d3}
  @subsection Max_Entry_Queue_Length
  
  
*************** compatibility purposes (and a warning wi
*** 12623,12629 ****
  warnings on obsolescent features are activated).
  
  @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1d1}
  @subsection Max_Protected_Entries
  
  
--- 12652,12658 ----
  warnings on obsolescent features are activated).
  
  @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1d4}
  @subsection Max_Protected_Entries
  
  
*************** bounds of every entry family of a protec
*** 12634,12640 ****
  defined by a discriminant of a subtype whose corresponding bound is static.
  
  @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1d2}
  @subsection Max_Select_Alternatives
  
  
--- 12663,12669 ----
  defined by a discriminant of a subtype whose corresponding bound is static.
  
  @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1d5}
  @subsection Max_Select_Alternatives
  
  
*************** defined by a discriminant of a subtype w
*** 12643,12649 ****
  [RM D.7] Specifies the maximum number of alternatives in a selective accept.
  
  @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1d3}
  @subsection Max_Storage_At_Blocking
  
  
--- 12672,12678 ----
  [RM D.7] Specifies the maximum number of alternatives in a selective accept.
  
  @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1d6}
  @subsection Max_Storage_At_Blocking
  
  
*************** Storage_Size that can be retained by a b
*** 12654,12660 ****
  restriction causes Storage_Error to be raised.
  
  @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1d4}
  @subsection Max_Task_Entries
  
  
--- 12683,12689 ----
  restriction causes Storage_Error to be raised.
  
  @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1d7}
  @subsection Max_Task_Entries
  
  
*************** defined by a discriminant of a subtype w
*** 12667,12673 ****
  corresponding bound is static.
  
  @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1d5}
  @subsection Max_Tasks
  
  
--- 12696,12702 ----
  corresponding bound is static.
  
  @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1d8}
  @subsection Max_Tasks
  
  
*************** time. Violations of this restriction wit
*** 12680,12686 ****
  Storage_Error to be raised.
  
  @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1d6}
  @subsection No_Abort_Statements
  
  
--- 12709,12715 ----
  Storage_Error to be raised.
  
  @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1d9}
  @subsection No_Abort_Statements
  
  
*************** Storage_Error to be raised.
*** 12690,12696 ****
  no calls to Task_Identification.Abort_Task.
  
  @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1d7}
  @subsection No_Access_Parameter_Allocators
  
  
--- 12719,12725 ----
  no calls to Task_Identification.Abort_Task.
  
  @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1da}
  @subsection No_Access_Parameter_Allocators
  
  
*************** occurrences of an allocator as the actua
*** 12701,12707 ****
  parameter.
  
  @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1d8}
  @subsection No_Access_Subprograms
  
  
--- 12730,12736 ----
  parameter.
  
  @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1db}
  @subsection No_Access_Subprograms
  
  
*************** parameter.
*** 12711,12717 ****
  declarations of access-to-subprogram types.
  
  @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1d9}
  @subsection No_Allocators
  
  
--- 12740,12746 ----
  declarations of access-to-subprogram types.
  
  @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1dc}
  @subsection No_Allocators
  
  
*************** declarations of access-to-subprogram typ
*** 12721,12727 ****
  occurrences of an allocator.
  
  @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1da}
  @subsection No_Anonymous_Allocators
  
  
--- 12750,12756 ----
  occurrences of an allocator.
  
  @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1dd}
  @subsection No_Anonymous_Allocators
  
  
*************** occurrences of an allocator.
*** 12731,12737 ****
  occurrences of an allocator of anonymous access type.
  
  @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1db}
  @subsection No_Asynchronous_Control
  
  
--- 12760,12766 ----
  occurrences of an allocator of anonymous access type.
  
  @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1de}
  @subsection No_Asynchronous_Control
  
  
*************** occurrences of an allocator of anonymous
*** 12741,12747 ****
  dependences on the predefined package Asynchronous_Task_Control.
  
  @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1dc}
  @subsection No_Calendar
  
  
--- 12770,12776 ----
  dependences on the predefined package Asynchronous_Task_Control.
  
  @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1df}
  @subsection No_Calendar
  
  
*************** dependences on the predefined package As
*** 12751,12757 ****
  dependences on package Calendar.
  
  @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1dd}
  @subsection No_Coextensions
  
  
--- 12780,12786 ----
  dependences on package Calendar.
  
  @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1e0}
  @subsection No_Coextensions
  
  
*************** dependences on package Calendar.
*** 12761,12767 ****
  coextensions. See 3.10.2.
  
  @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1de}
  @subsection No_Default_Initialization
  
  
--- 12790,12796 ----
  coextensions. See 3.10.2.
  
  @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1e1}
  @subsection No_Default_Initialization
  
  
*************** is to prohibit all cases of variables de
*** 12778,12784 ****
  initializer (including the case of OUT scalar parameters).
  
  @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1df}
  @subsection No_Delay
  
  
--- 12807,12813 ----
  initializer (including the case of OUT scalar parameters).
  
  @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1e2}
  @subsection No_Delay
  
  
*************** initializer (including the case of OUT s
*** 12788,12794 ****
  delay statements and no semantic dependences on package Calendar.
  
  @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1e0}
  @subsection No_Dependence
  
  
--- 12817,12823 ----
  delay statements and no semantic dependences on package Calendar.
  
  @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1e3}
  @subsection No_Dependence
  
  
*************** to support specific constructs of the la
*** 12831,12837 ****
  @end itemize
  
  @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1e1}
  @subsection No_Direct_Boolean_Operators
  
  
--- 12860,12866 ----
  @end itemize
  
  @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1e4}
  @subsection No_Direct_Boolean_Operators
  
  
*************** protocol requires the use of short-circu
*** 12844,12850 ****
  composite boolean operations.
  
  @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1e2}
  @subsection No_Dispatch
  
  
--- 12873,12879 ----
  composite boolean operations.
  
  @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1e5}
  @subsection No_Dispatch
  
  
*************** composite boolean operations.
*** 12854,12860 ****
  occurrences of @code{T'Class}, for any (tagged) subtype @code{T}.
  
  @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1e3}
  @subsection No_Dispatching_Calls
  
  
--- 12883,12889 ----
  occurrences of @code{T'Class}, for any (tagged) subtype @code{T}.
  
  @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1e6}
  @subsection No_Dispatching_Calls
  
  
*************** end Example;
*** 12915,12921 ****
  @end example
  
  @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1e4}
  @subsection No_Dynamic_Attachment
  
  
--- 12944,12950 ----
  @end example
  
  @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1e7}
  @subsection No_Dynamic_Attachment
  
  
*************** compatibility purposes (and a warning wi
*** 12934,12940 ****
  warnings on obsolescent features are activated).
  
  @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1e5}
  @subsection No_Dynamic_Priorities
  
  
--- 12963,12969 ----
  warnings on obsolescent features are activated).
  
  @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1e8}
  @subsection No_Dynamic_Priorities
  
  
*************** warnings on obsolescent features are act
*** 12943,12949 ****
  [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities.
  
  @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1e6}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
--- 12972,12978 ----
  [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities.
  
  @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1e9}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
*************** restriction, the compiler can assume tha
*** 12955,12961 ****
  in a task can be executed at elaboration time.
  
  @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1e7}
  @subsection No_Enumeration_Maps
  
  
--- 12984,12990 ----
  in a task can be executed at elaboration time.
  
  @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1ea}
  @subsection No_Enumeration_Maps
  
  
*************** enumeration maps are used (that is Image
*** 12966,12972 ****
  to enumeration types).
  
  @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1e8}
  @subsection No_Exception_Handlers
  
  
--- 12995,13001 ----
  to enumeration types).
  
  @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1eb}
  @subsection No_Exception_Handlers
  
  
*************** statement generated by the compiler). Th
*** 12991,12997 ****
  represents the line number in the source program where the raise occurs.
  
  @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1e9}
  @subsection No_Exception_Propagation
  
  
--- 13020,13026 ----
  represents the line number in the source program where the raise occurs.
  
  @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1ec}
  @subsection No_Exception_Propagation
  
  
*************** the package GNAT.Current_Exception is no
*** 13008,13014 ****
  statements (raise with no operand) are not permitted.
  
  @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1ea}
  @subsection No_Exception_Registration
  
  
--- 13037,13043 ----
  statements (raise with no operand) are not permitted.
  
  @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1ed}
  @subsection No_Exception_Registration
  
  
*************** code is simplified by omitting the other
*** 13022,13028 ****
  of exceptions when they are declared.
  
  @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1eb}
  @subsection No_Exceptions
  
  
--- 13051,13057 ----
  of exceptions when they are declared.
  
  @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1ee}
  @subsection No_Exceptions
  
  
*************** raise statements and no exception handle
*** 13033,13039 ****
  generation of language-defined run-time checks.
  
  @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1ec}
  @subsection No_Finalization
  
  
--- 13062,13068 ----
  generation of language-defined run-time checks.
  
  @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1ef}
  @subsection No_Finalization
  
  
*************** object or a nested component, either dec
*** 13074,13080 ****
  deallocation of a controlled object no longer finalizes its contents.
  
  @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1ed}
  @subsection No_Fixed_Point
  
  
--- 13103,13109 ----
  deallocation of a controlled object no longer finalizes its contents.
  
  @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1f0}
  @subsection No_Fixed_Point
  
  
*************** deallocation of a controlled object no l
*** 13084,13090 ****
  occurrences of fixed point types and operations.
  
  @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1ee}
  @subsection No_Floating_Point
  
  
--- 13113,13119 ----
  occurrences of fixed point types and operations.
  
  @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1f1}
  @subsection No_Floating_Point
  
  
*************** occurrences of fixed point types and ope
*** 13094,13100 ****
  occurrences of floating point types and operations.
  
  @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1ef}
  @subsection No_Implicit_Conditionals
  
  
--- 13123,13129 ----
  occurrences of floating point types and operations.
  
  @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1f2}
  @subsection No_Implicit_Conditionals
  
  
*************** normal manner. Constructs generating imp
*** 13110,13116 ****
  of composite objects and the Max/Min attributes.
  
  @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1f0}
  @subsection No_Implicit_Dynamic_Code
  
  
--- 13139,13145 ----
  of composite objects and the Max/Min attributes.
  
  @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1f3}
  @subsection No_Implicit_Dynamic_Code
  
  
*************** foreign-language convention; primitive o
*** 13140,13146 ****
  types.
  
  @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1f1}
  @subsection No_Implicit_Heap_Allocations
  
  
--- 13169,13175 ----
  types.
  
  @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1f4}
  @subsection No_Implicit_Heap_Allocations
  
  
*************** types.
*** 13149,13155 ****
  [RM D.7] No constructs are allowed to cause implicit heap allocation.
  
  @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1f2}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
--- 13178,13184 ----
  [RM D.7] No constructs are allowed to cause implicit heap allocation.
  
  @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1f5}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
*************** types.
*** 13159,13165 ****
  protected object.
  
  @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1f3}
  @subsection No_Implicit_Task_Allocations
  
  
--- 13188,13194 ----
  protected object.
  
  @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1f6}
  @subsection No_Implicit_Task_Allocations
  
  
*************** protected object.
*** 13168,13174 ****
  [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
  
  @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1f4}
  @subsection No_Initialize_Scalars
  
  
--- 13197,13203 ----
  [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
  
  @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1f7}
  @subsection No_Initialize_Scalars
  
  
*************** code, and in particular eliminates dummy
*** 13180,13186 ****
  are otherwise generated for some record and array types.
  
  @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1f5}
  @subsection No_IO
  
  
--- 13209,13215 ----
  are otherwise generated for some record and array types.
  
  @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1f8}
  @subsection No_IO
  
  
*************** dependences on any of the library units
*** 13191,13197 ****
  Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO.
  
  @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1f6}
  @subsection No_Local_Allocators
  
  
--- 13220,13226 ----
  Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO.
  
  @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1f9}
  @subsection No_Local_Allocators
  
  
*************** occurrences of an allocator in subprogra
*** 13202,13208 ****
  and entry bodies.
  
  @node No_Local_Protected_Objects,No_Local_Tagged_Types,No_Local_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1f7}
  @subsection No_Local_Protected_Objects
  
  
--- 13231,13237 ----
  and entry bodies.
  
  @node No_Local_Protected_Objects,No_Local_Tagged_Types,No_Local_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1fa}
  @subsection No_Local_Protected_Objects
  
  
*************** and entry bodies.
*** 13212,13218 ****
  only declared at the library level.
  
  @node No_Local_Tagged_Types,No_Local_Timing_Events,No_Local_Protected_Objects,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-tagged-types}@anchor{1f8}
  @subsection No_Local_Tagged_Types
  
  
--- 13241,13247 ----
  only declared at the library level.
  
  @node No_Local_Tagged_Types,No_Local_Timing_Events,No_Local_Protected_Objects,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-tagged-types}@anchor{1fb}
  @subsection No_Local_Tagged_Types
  
  
*************** only declared at the library level.
*** 13222,13228 ****
  declared at the library level.
  
  @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Tagged_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1f9}
  @subsection No_Local_Timing_Events
  
  
--- 13251,13257 ----
  declared at the library level.
  
  @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Tagged_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1fc}
  @subsection No_Local_Timing_Events
  
  
*************** declared at the library level.
*** 13232,13238 ****
  declared at the library level.
  
  @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{1fa}
  @subsection No_Long_Long_Integers
  
  
--- 13261,13267 ----
  declared at the library level.
  
  @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{1fd}
  @subsection No_Long_Long_Integers
  
  
*************** implicit base type is Long_Long_Integer,
*** 13244,13250 ****
  Long_Integer’Size.
  
  @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{1fb}
  @subsection No_Multiple_Elaboration
  
  
--- 13273,13279 ----
  Long_Integer’Size.
  
  @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{1fe}
  @subsection No_Multiple_Elaboration
  
  
*************** possible, including non-Ada main program
*** 13260,13266 ****
  permitted and will be diagnosed by the binder.
  
  @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{1fc}
  @subsection No_Nested_Finalization
  
  
--- 13289,13295 ----
  permitted and will be diagnosed by the binder.
  
  @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{1ff}
  @subsection No_Nested_Finalization
  
  
*************** permitted and will be diagnosed by the b
*** 13269,13275 ****
  [RM D.7] All objects requiring finalization are declared at the library level.
  
  @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{1fd}
  @subsection No_Protected_Type_Allocators
  
  
--- 13298,13304 ----
  [RM D.7] All objects requiring finalization are declared at the library level.
  
  @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{200}
  @subsection No_Protected_Type_Allocators
  
  
*************** permitted and will be diagnosed by the b
*** 13279,13285 ****
  expressions that attempt to allocate protected objects.
  
  @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{1fe}
  @subsection No_Protected_Types
  
  
--- 13308,13314 ----
  expressions that attempt to allocate protected objects.
  
  @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{201}
  @subsection No_Protected_Types
  
  
*************** expressions that attempt to allocate pro
*** 13289,13295 ****
  declarations of protected types or protected objects.
  
  @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{1ff}
  @subsection No_Recursion
  
  
--- 13318,13324 ----
  declarations of protected types or protected objects.
  
  @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{202}
  @subsection No_Recursion
  
  
*************** declarations of protected types or prote
*** 13299,13305 ****
  part of its execution.
  
  @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{200}
  @subsection No_Reentrancy
  
  
--- 13328,13334 ----
  part of its execution.
  
  @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{203}
  @subsection No_Reentrancy
  
  
*************** part of its execution.
*** 13309,13315 ****
  two tasks at the same time.
  
  @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{201}
  @subsection No_Relative_Delay
  
  
--- 13338,13344 ----
  two tasks at the same time.
  
  @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{204}
  @subsection No_Relative_Delay
  
  
*************** relative statements and prevents express
*** 13320,13326 ****
  appearing in source code.
  
  @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{202}
  @subsection No_Requeue_Statements
  
  
--- 13349,13355 ----
  appearing in source code.
  
  @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{205}
  @subsection No_Requeue_Statements
  
  
*************** compatibility purposes (and a warning wi
*** 13338,13344 ****
  warnings on oNobsolescent features are activated).
  
  @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{203}
  @subsection No_Secondary_Stack
  
  
--- 13367,13373 ----
  warnings on oNobsolescent features are activated).
  
  @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{206}
  @subsection No_Secondary_Stack
  
  
*************** stack is used to implement functions ret
*** 13351,13357 ****
  secondary stacks for tasks (excluding the environment task) at run time.
  
  @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{204}
  @subsection No_Select_Statements
  
  
--- 13380,13386 ----
  secondary stacks for tasks (excluding the environment task) at run time.
  
  @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{207}
  @subsection No_Select_Statements
  
  
*************** secondary stacks for tasks (excluding th
*** 13361,13367 ****
  kind are permitted, that is the keyword @code{select} may not appear.
  
  @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{205}
  @subsection No_Specific_Termination_Handlers
  
  
--- 13390,13396 ----
  kind are permitted, that is the keyword @code{select} may not appear.
  
  @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{208}
  @subsection No_Specific_Termination_Handlers
  
  
*************** kind are permitted, that is the keyword
*** 13371,13377 ****
  or to Ada.Task_Termination.Specific_Handler.
  
  @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{206}
  @subsection No_Specification_of_Aspect
  
  
--- 13400,13406 ----
  or to Ada.Task_Termination.Specific_Handler.
  
  @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{209}
  @subsection No_Specification_of_Aspect
  
  
*************** specification, attribute definition clau
*** 13382,13388 ****
  given aspect.
  
  @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{207}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
--- 13411,13417 ----
  given aspect.
  
  @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{20a}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
*************** library items of the partition has compl
*** 13394,13400 ****
  is raised.
  
  @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{208}
  @subsection No_Standard_Storage_Pools
  
  
--- 13423,13429 ----
  is raised.
  
  @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{20b}
  @subsection No_Standard_Storage_Pools
  
  
*************** have an explicit Storage_Pool attribute
*** 13406,13412 ****
  user-defined storage pool.
  
  @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{209}
  @subsection No_Stream_Optimizations
  
  
--- 13435,13441 ----
  user-defined storage pool.
  
  @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{20c}
  @subsection No_Stream_Optimizations
  
  
*************** due to their superior performance. When
*** 13419,13425 ****
  compiler performs all IO operations on a per-character basis.
  
  @node No_Streams,No_Tagged_Type_Registration,No_Stream_Optimizations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{20a}
  @subsection No_Streams
  
  
--- 13448,13454 ----
  compiler performs all IO operations on a per-character basis.
  
  @node No_Streams,No_Tagged_Type_Registration,No_Stream_Optimizations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{20d}
  @subsection No_Streams
  
  
*************** configuration pragmas to avoid exposing
*** 13446,13452 ****
  entire partition.
  
  @node No_Tagged_Type_Registration,No_Task_Allocators,No_Streams,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tagged-type-registration}@anchor{20b}
  @subsection No_Tagged_Type_Registration
  
  
--- 13475,13481 ----
  entire partition.
  
  @node No_Tagged_Type_Registration,No_Task_Allocators,No_Streams,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tagged-type-registration}@anchor{20e}
  @subsection No_Tagged_Type_Registration
  
  
*************** are declared. This restriction may be ne
*** 13461,13467 ****
  the No_Elaboration_Code restriction.
  
  @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Tagged_Type_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{20c}
  @subsection No_Task_Allocators
  
  
--- 13490,13496 ----
  the No_Elaboration_Code restriction.
  
  @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Tagged_Type_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{20f}
  @subsection No_Task_Allocators
  
  
*************** the No_Elaboration_Code restriction.
*** 13471,13477 ****
  or types containing task subcomponents.
  
  @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{20d}
  @subsection No_Task_At_Interrupt_Priority
  
  
--- 13500,13506 ----
  or types containing task subcomponents.
  
  @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{210}
  @subsection No_Task_At_Interrupt_Priority
  
  
*************** a consequence, the tasks are always crea
*** 13483,13489 ****
  that an interrupt priority.
  
  @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{20e}
  @subsection No_Task_Attributes_Package
  
  
--- 13512,13518 ----
  that an interrupt priority.
  
  @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{211}
  @subsection No_Task_Attributes_Package
  
  
*************** compatibility purposes (and a warning wi
*** 13500,13506 ****
  warnings on obsolescent features are activated).
  
  @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{20f}
  @subsection No_Task_Hierarchy
  
  
--- 13529,13535 ----
  warnings on obsolescent features are activated).
  
  @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{212}
  @subsection No_Task_Hierarchy
  
  
*************** warnings on obsolescent features are act
*** 13510,13516 ****
  directly on the environment task of the partition.
  
  @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{210}
  @subsection No_Task_Termination
  
  
--- 13539,13545 ----
  directly on the environment task of the partition.
  
  @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{213}
  @subsection No_Task_Termination
  
  
*************** directly on the environment task of the
*** 13519,13525 ****
  [RM D.7] Tasks that terminate are erroneous.
  
  @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{211}
  @subsection No_Tasking
  
  
--- 13548,13554 ----
  [RM D.7] Tasks that terminate are erroneous.
  
  @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{214}
  @subsection No_Tasking
  
  
*************** and cause an error message to be output
*** 13532,13538 ****
  binder.
  
  @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{212}
  @subsection No_Terminate_Alternatives
  
  
--- 13561,13567 ----
  binder.
  
  @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{215}
  @subsection No_Terminate_Alternatives
  
  
*************** binder.
*** 13541,13547 ****
  [RM D.7] There are no selective accepts with terminate alternatives.
  
  @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{213}
  @subsection No_Unchecked_Access
  
  
--- 13570,13576 ----
  [RM D.7] There are no selective accepts with terminate alternatives.
  
  @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{216}
  @subsection No_Unchecked_Access
  
  
*************** binder.
*** 13551,13557 ****
  occurrences of the Unchecked_Access attribute.
  
  @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{214}
  @subsection No_Unchecked_Conversion
  
  
--- 13580,13586 ----
  occurrences of the Unchecked_Access attribute.
  
  @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{217}
  @subsection No_Unchecked_Conversion
  
  
*************** occurrences of the Unchecked_Access attr
*** 13561,13567 ****
  dependences on the predefined generic function Unchecked_Conversion.
  
  @node No_Unchecked_Deallocation,No_Use_Of_Attribute,No_Unchecked_Conversion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{215}
  @subsection No_Unchecked_Deallocation
  
  
--- 13590,13596 ----
  dependences on the predefined generic function Unchecked_Conversion.
  
  @node No_Unchecked_Deallocation,No_Use_Of_Attribute,No_Unchecked_Conversion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{218}
  @subsection No_Unchecked_Deallocation
  
  
*************** dependences on the predefined generic fu
*** 13571,13577 ****
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
  @node No_Use_Of_Attribute,No_Use_Of_Entity,No_Unchecked_Deallocation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-attribute}@anchor{216}
  @subsection No_Use_Of_Attribute
  
  
--- 13600,13606 ----
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
  @node No_Use_Of_Attribute,No_Use_Of_Entity,No_Unchecked_Deallocation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-attribute}@anchor{219}
  @subsection No_Use_Of_Attribute
  
  
*************** dependences on the predefined generic pr
*** 13581,13587 ****
  earlier versions of Ada.
  
  @node No_Use_Of_Entity,No_Use_Of_Pragma,No_Use_Of_Attribute,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{217}
  @subsection No_Use_Of_Entity
  
  
--- 13610,13616 ----
  earlier versions of Ada.
  
  @node No_Use_Of_Entity,No_Use_Of_Pragma,No_Use_Of_Attribute,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{21a}
  @subsection No_Use_Of_Entity
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13601,13607 ****
  @end example
  
  @node No_Use_Of_Pragma,Pure_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-pragma}@anchor{218}
  @subsection No_Use_Of_Pragma
  
  
--- 13630,13636 ----
  @end example
  
  @node No_Use_Of_Pragma,Pure_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-pragma}@anchor{21b}
  @subsection No_Use_Of_Pragma
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13611,13617 ****
  earlier versions of Ada.
  
  @node Pure_Barriers,Simple_Barriers,No_Use_Of_Pragma,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{219}
  @subsection Pure_Barriers
  
  
--- 13640,13646 ----
  earlier versions of Ada.
  
  @node Pure_Barriers,Simple_Barriers,No_Use_Of_Pragma,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{21c}
  @subsection Pure_Barriers
  
  
*************** but still ensures absence of side effect
*** 13662,13668 ****
  during the evaluation of the barriers.
  
  @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{21a}
  @subsection Simple_Barriers
  
  
--- 13691,13697 ----
  during the evaluation of the barriers.
  
  @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{21d}
  @subsection Simple_Barriers
  
  
*************** compatibility purposes (and a warning wi
*** 13681,13687 ****
  warnings on obsolescent features are activated).
  
  @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{21b}
  @subsection Static_Priorities
  
  
--- 13710,13716 ----
  warnings on obsolescent features are activated).
  
  @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{21e}
  @subsection Static_Priorities
  
  
*************** are static, and that there are no depend
*** 13692,13698 ****
  @code{Ada.Dynamic_Priorities}.
  
  @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{21c}
  @subsection Static_Storage_Size
  
  
--- 13721,13727 ----
  @code{Ada.Dynamic_Priorities}.
  
  @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{21f}
  @subsection Static_Storage_Size
  
  
*************** are static, and that there are no depend
*** 13702,13708 ****
  in a Storage_Size pragma or attribute definition clause is static.
  
  @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{21d}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{21e}
  @section Program Unit Level Restrictions
  
  
--- 13731,13737 ----
  in a Storage_Size pragma or attribute definition clause is static.
  
  @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{220}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{221}
  @section Program Unit Level Restrictions
  
  
*************** other compilation units in the partition
*** 13733,13739 ****
  @end menu
  
  @node No_Elaboration_Code,No_Dynamic_Accessibility_Checks,,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{21f}
  @subsection No_Elaboration_Code
  
  
--- 13762,13768 ----
  @end menu
  
  @node No_Elaboration_Code,No_Dynamic_Accessibility_Checks,,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{222}
  @subsection No_Elaboration_Code
  
  
*************** associated with the unit. This counter i
*** 13789,13795 ****
  before elaboration and to control multiple elaboration attempts.
  
  @node No_Dynamic_Accessibility_Checks,No_Dynamic_Sized_Objects,No_Elaboration_Code,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-accessibility-checks}@anchor{220}
  @subsection No_Dynamic_Accessibility_Checks
  
  
--- 13818,13824 ----
  before elaboration and to control multiple elaboration attempts.
  
  @node No_Dynamic_Accessibility_Checks,No_Dynamic_Sized_Objects,No_Elaboration_Code,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-accessibility-checks}@anchor{223}
  @subsection No_Dynamic_Accessibility_Checks
  
  
*************** In all other cases, the level of T is as
*** 13838,13844 ****
  @end itemize
  
  @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Dynamic_Accessibility_Checks,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{221}
  @subsection No_Dynamic_Sized_Objects
  
  
--- 13867,13873 ----
  @end itemize
  
  @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Dynamic_Accessibility_Checks,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{224}
  @subsection No_Dynamic_Sized_Objects
  
  
*************** access discriminants. It is often a good
*** 13856,13862 ****
  with No_Secondary_Stack.
  
  @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{222}
  @subsection No_Entry_Queue
  
  
--- 13885,13891 ----
  with No_Secondary_Stack.
  
  @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{225}
  @subsection No_Entry_Queue
  
  
*************** checked at compile time.  A program exec
*** 13869,13875 ****
  is made to queue a second task on such an entry.
  
  @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{223}
  @subsection No_Implementation_Aspect_Specifications
  
  
--- 13898,13904 ----
  is made to queue a second task on such an entry.
  
  @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{226}
  @subsection No_Implementation_Aspect_Specifications
  
  
*************** GNAT-defined aspects are present.  With
*** 13880,13886 ****
  aspects that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{224}
  @subsection No_Implementation_Attributes
  
  
--- 13909,13915 ----
  aspects that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{227}
  @subsection No_Implementation_Attributes
  
  
*************** attributes that can be used are those de
*** 13892,13898 ****
  Manual.
  
  @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{225}
  @subsection No_Implementation_Identifiers
  
  
--- 13921,13927 ----
  Manual.
  
  @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{228}
  @subsection No_Implementation_Identifiers
  
  
*************** implementation-defined identifiers (mark
*** 13903,13909 ****
  occur within language-defined packages.
  
  @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{226}
  @subsection No_Implementation_Pragmas
  
  
--- 13932,13938 ----
  occur within language-defined packages.
  
  @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{229}
  @subsection No_Implementation_Pragmas
  
  
*************** GNAT-defined pragmas are present.  With
*** 13914,13920 ****
  pragmas that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{227}
  @subsection No_Implementation_Restrictions
  
  
--- 13943,13949 ----
  pragmas that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{22a}
  @subsection No_Implementation_Restrictions
  
  
*************** are present.  With this restriction, the
*** 13926,13932 ****
  that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{228}
  @subsection No_Implementation_Units
  
  
--- 13955,13961 ----
  that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{22b}
  @subsection No_Implementation_Units
  
  
*************** mention in the context clause of any imp
*** 13937,13943 ****
  of packages Ada, Interfaces, or System.
  
  @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{229}
  @subsection No_Implicit_Aliasing
  
  
--- 13966,13972 ----
  of packages Ada, Interfaces, or System.
  
  @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{22c}
  @subsection No_Implicit_Aliasing
  
  
*************** to be aliased, and in such cases, it can
*** 13952,13958 ****
  the standard attribute Unchecked_Access which is preferable.
  
  @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{22a}
  @subsection No_Implicit_Loops
  
  
--- 13981,13987 ----
  the standard attribute Unchecked_Access which is preferable.
  
  @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{22d}
  @subsection No_Implicit_Loops
  
  
*************** arrays larger than about 5000 scalar com
*** 13969,13975 ****
  is set in the spec of a package, it will not apply to its body.
  
  @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{22b}
  @subsection No_Obsolescent_Features
  
  
--- 13998,14004 ----
  is set in the spec of a package, it will not apply to its body.
  
  @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{22e}
  @subsection No_Obsolescent_Features
  
  
*************** is set in the spec of a package, it will
*** 13979,13985 ****
  features are used, as defined in Annex J of the Ada Reference Manual.
  
  @node No_Wide_Characters,Static_Dispatch_Tables,No_Obsolescent_Features,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{22c}
  @subsection No_Wide_Characters
  
  
--- 14008,14014 ----
  features are used, as defined in Annex J of the Ada Reference Manual.
  
  @node No_Wide_Characters,Static_Dispatch_Tables,No_Obsolescent_Features,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{22f}
  @subsection No_Wide_Characters
  
  
*************** appear in the program (that is literals
*** 13993,13999 ****
  type @code{Character}).
  
  @node Static_Dispatch_Tables,SPARK_05,No_Wide_Characters,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-dispatch-tables}@anchor{22d}
  @subsection Static_Dispatch_Tables
  
  
--- 14022,14028 ----
  type @code{Character}).
  
  @node Static_Dispatch_Tables,SPARK_05,No_Wide_Characters,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-dispatch-tables}@anchor{230}
  @subsection Static_Dispatch_Tables
  
  
*************** type @code{Character}).
*** 14003,14009 ****
  associated with dispatch tables can be placed in read-only memory.
  
  @node SPARK_05,,Static_Dispatch_Tables,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{22e}
  @subsection SPARK_05
  
  
--- 14032,14038 ----
  associated with dispatch tables can be placed in read-only memory.
  
  @node SPARK_05,,Static_Dispatch_Tables,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{231}
  @subsection SPARK_05
  
  
*************** gnatprove -P project.gpr --mode=check_al
*** 14026,14032 ****
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{22f}@anchor{gnat_rm/implementation_advice id1}@anchor{230}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
--- 14055,14061 ----
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{232}@anchor{gnat_rm/implementation_advice id1}@anchor{233}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
*************** case the text describes what GNAT does a
*** 14124,14130 ****
  @end menu
  
  @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{231}
  @section RM 1.1.3(20): Error Detection
  
  
--- 14153,14159 ----
  @end menu
  
  @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{234}
  @section RM 1.1.3(20): Error Detection
  
  
*************** or diagnosed at compile time.
*** 14141,14147 ****
  @geindex Child Units
  
  @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{232}
  @section RM 1.1.3(31): Child Units
  
  
--- 14170,14176 ----
  @geindex Child Units
  
  @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{235}
  @section RM 1.1.3(31): Child Units
  
  
*************** Followed.
*** 14157,14163 ****
  @geindex Bounded errors
  
  @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{233}
  @section RM 1.1.5(12): Bounded Errors
  
  
--- 14186,14192 ----
  @geindex Bounded errors
  
  @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{236}
  @section RM 1.1.5(12): Bounded Errors
  
  
*************** runtime.
*** 14174,14180 ****
  @geindex Pragmas
  
  @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice
! @anchor{gnat_rm/implementation_advice id2}@anchor{234}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{235}
  @section RM 2.8(16): Pragmas
  
  
--- 14203,14209 ----
  @geindex Pragmas
  
  @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice
! @anchor{gnat_rm/implementation_advice id2}@anchor{237}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{238}
  @section RM 2.8(16): Pragmas
  
  
*************** that this advice not be followed.  For d
*** 14287,14293 ****
  @ref{7,,Implementation Defined Pragmas}.
  
  @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{236}
  @section RM 2.8(17-19): Pragmas
  
  
--- 14316,14322 ----
  @ref{7,,Implementation Defined Pragmas}.
  
  @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{239}
  @section RM 2.8(17-19): Pragmas
  
  
*************** replacing @code{library_items}.”
*** 14308,14321 ****
  @end itemize
  @end quotation
  
! See @ref{235,,RM 2.8(16); Pragmas}.
  
  @geindex Character Sets
  
  @geindex Alternative Character Sets
  
  @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{237}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
--- 14337,14350 ----
  @end itemize
  @end quotation
  
! See @ref{238,,RM 2.8(16); Pragmas}.
  
  @geindex Character Sets
  
  @geindex Alternative Character Sets
  
  @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{23a}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
*************** there is no such restriction.
*** 14343,14349 ****
  @geindex Integer types
  
  @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{238}
  @section RM 3.5.4(28): Integer Types
  
  
--- 14372,14378 ----
  @geindex Integer types
  
  @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{23b}
  @section RM 3.5.4(28): Integer Types
  
  
*************** are supported for convenient interface t
*** 14362,14368 ****
  types of the machine are easily available.
  
  @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{239}
  @section RM 3.5.4(29): Integer Types
  
  
--- 14391,14397 ----
  types of the machine are easily available.
  
  @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{23c}
  @section RM 3.5.4(29): Integer Types
  
  
*************** Followed.
*** 14378,14384 ****
  @geindex Enumeration values
  
  @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{23a}
  @section RM 3.5.5(8): Enumeration Values
  
  
--- 14407,14413 ----
  @geindex Enumeration values
  
  @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{23d}
  @section RM 3.5.5(8): Enumeration Values
  
  
*************** Followed.
*** 14398,14404 ****
  @geindex Float types
  
  @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{23b}
  @section RM 3.5.7(17): Float Types
  
  
--- 14427,14433 ----
  @geindex Float types
  
  @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{23e}
  @section RM 3.5.7(17): Float Types
  
  
*************** is a software rather than a hardware for
*** 14428,14434 ****
  @geindex multidimensional
  
  @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration’Small,RM 3 5 7 17 Float Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{23c}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
--- 14457,14463 ----
  @geindex multidimensional
  
  @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration’Small,RM 3 5 7 17 Float Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{23f}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
*************** Followed.
*** 14446,14452 ****
  @geindex Duration'Small
  
  @node RM 9 6 30-31 Duration’Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{23d}
  @section RM 9.6(30-31): Duration’Small
  
  
--- 14475,14481 ----
  @geindex Duration'Small
  
  @node RM 9 6 30-31 Duration’Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{240}
  @section RM 9.6(30-31): Duration’Small
  
  
*************** it need not be the same time base as use
*** 14467,14473 ****
  Followed.
  
  @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration’Small,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{23e}
  @section RM 10.2.1(12): Consistent Representation
  
  
--- 14496,14502 ----
  Followed.
  
  @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration’Small,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{241}
  @section RM 10.2.1(12): Consistent Representation
  
  
*************** advice without severely impacting effici
*** 14489,14495 ****
  @geindex Exception information
  
  @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{23f}
  @section RM 11.4.1(19): Exception Information
  
  
--- 14518,14524 ----
  @geindex Exception information
  
  @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{242}
  @section RM 11.4.1(19): Exception Information
  
  
*************** Pragma @code{Discard_Names}.
*** 14520,14526 ****
  @geindex suppression of
  
  @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{240}
  @section RM 11.5(28): Suppression of Checks
  
  
--- 14549,14555 ----
  @geindex suppression of
  
  @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{243}
  @section RM 11.5(28): Suppression of Checks
  
  
*************** Followed.
*** 14535,14541 ****
  @geindex Representation clauses
  
  @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{241}
  @section RM 13.1 (21-24): Representation Clauses
  
  
--- 14564,14570 ----
  @geindex Representation clauses
  
  @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{244}
  @section RM 13.1 (21-24): Representation Clauses
  
  
*************** Followed.
*** 14587,14593 ****
  @geindex Packed types
  
  @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{242}
  @section RM 13.2(6-8): Packed Types
  
  
--- 14616,14622 ----
  @geindex Packed types
  
  @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{245}
  @section RM 13.2(6-8): Packed Types
  
  
*************** subcomponent of the packed type.
*** 14618,14624 ****
  @geindex Address clauses
  
  @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{243}
  @section RM 13.3(14-19): Address Clauses
  
  
--- 14647,14653 ----
  @geindex Address clauses
  
  @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{246}
  @section RM 13.3(14-19): Address Clauses
  
  
*************** Followed.
*** 14671,14677 ****
  @geindex Alignment clauses
  
  @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{244}
  @section RM 13.3(29-35): Alignment Clauses
  
  
--- 14700,14706 ----
  @geindex Alignment clauses
  
  @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{247}
  @section RM 13.3(29-35): Alignment Clauses
  
  
*************** Followed.
*** 14728,14734 ****
  @geindex Size clauses
  
  @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{245}
  @section RM 13.3(42-43): Size Clauses
  
  
--- 14757,14763 ----
  @geindex Size clauses
  
  @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{248}
  @section RM 13.3(42-43): Size Clauses
  
  
*************** object’s @code{Alignment} (if the @cod
*** 14746,14752 ****
  Followed.
  
  @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{246}
  @section RM 13.3(50-56): Size Clauses
  
  
--- 14775,14781 ----
  Followed.
  
  @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{249}
  @section RM 13.3(50-56): Size Clauses
  
  
*************** Followed.
*** 14797,14803 ****
  @geindex Component_Size clauses
  
  @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{247}
  @section RM 13.3(71-73): Component Size Clauses
  
  
--- 14826,14832 ----
  @geindex Component_Size clauses
  
  @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{24a}
  @section RM 13.3(71-73): Component Size Clauses
  
  
*************** Followed.
*** 14831,14837 ****
  @geindex enumeration
  
  @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{248}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
--- 14860,14866 ----
  @geindex enumeration
  
  @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{24b}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
*************** Followed.
*** 14853,14859 ****
  @geindex records
  
  @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{249}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
--- 14882,14888 ----
  @geindex records
  
  @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{24c}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
*************** and all mentioned features are implement
*** 14913,14919 ****
  @geindex Storage place attributes
  
  @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{24a}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
--- 14942,14948 ----
  @geindex Storage place attributes
  
  @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{24d}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
*************** Followed.  There are no such components
*** 14933,14939 ****
  @geindex Bit ordering
  
  @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{24b}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
--- 14962,14968 ----
  @geindex Bit ordering
  
  @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{24e}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
*************** Followed.
*** 14951,14957 ****
  @geindex as private type
  
  @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{24c}
  @section RM 13.7(37): Address as Private
  
  
--- 14980,14986 ----
  @geindex as private type
  
  @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{24f}
  @section RM 13.7(37): Address as Private
  
  
*************** Followed.
*** 14969,14975 ****
  @geindex operations of
  
  @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{24d}
  @section RM 13.7.1(16): Address Operations
  
  
--- 14998,15004 ----
  @geindex operations of
  
  @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{250}
  @section RM 13.7.1(16): Address Operations
  
  
*************** operation raises @code{Program_Error}, s
*** 14987,14993 ****
  @geindex Unchecked conversion
  
  @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{24e}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
--- 15016,15022 ----
  @geindex Unchecked conversion
  
  @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{251}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
*************** Followed.
*** 15031,15037 ****
  @geindex implicit
  
  @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{24f}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
--- 15060,15066 ----
  @geindex implicit
  
  @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{252}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
*************** Followed.
*** 15082,15088 ****
  @geindex Unchecked deallocation
  
  @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 1 6 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{250}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
--- 15111,15117 ----
  @geindex Unchecked deallocation
  
  @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 1 6 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{253}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
*************** Followed.
*** 15097,15103 ****
  @geindex Stream oriented attributes
  
  @node RM 13 13 2 1 6 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-13-2-1-6-stream-oriented-attributes}@anchor{251}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
--- 15126,15132 ----
  @geindex Stream oriented attributes
  
  @node RM 13 13 2 1 6 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-13-2-1-6-stream-oriented-attributes}@anchor{254}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
*************** scalar types. This XDR alternative can b
*** 15128,15134 ****
  @geindex Stream oriented attributes
  
  @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 1 6 Stream Oriented Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{252}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
--- 15157,15163 ----
  @geindex Stream oriented attributes
  
  @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 1 6 Stream Oriented Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{255}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
*************** Followed.
*** 15146,15152 ****
  @geindex Ada.Characters.Handling
  
  @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{253}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
--- 15175,15181 ----
  @geindex Ada.Characters.Handling
  
  @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{256}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
*************** Followed.  GNAT provides no such localiz
*** 15163,15169 ****
  @geindex Bounded-length strings
  
  @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{254}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
--- 15192,15198 ----
  @geindex Bounded-length strings
  
  @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{257}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
*************** Followed.  No implicit pointers or dynam
*** 15178,15184 ****
  @geindex Random number generation
  
  @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{255}
  @section RM A.5.2(46-47): Random Number Generation
  
  
--- 15207,15213 ----
  @geindex Random number generation
  
  @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{258}
  @section RM A.5.2(46-47): Random Number Generation
  
  
*************** condition here to hold true.
*** 15207,15213 ****
  @geindex Get_Immediate
  
  @node RM A 10 7 23 Get_Immediate,RM A 18 Containers,RM A 5 2 46-47 Random Number Generation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{256}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
--- 15236,15242 ----
  @geindex Get_Immediate
  
  @node RM A 10 7 23 Get_Immediate,RM A 18 Containers,RM A 5 2 46-47 Random Number Generation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{259}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
*************** this functionality.
*** 15231,15237 ****
  @geindex Containers
  
  @node RM A 18 Containers,RM B 1 39-41 Pragma Export,RM A 10 7 23 Get_Immediate,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-18-containers}@anchor{257}
  @section RM A.18: @code{Containers}
  
  
--- 15260,15266 ----
  @geindex Containers
  
  @node RM A 18 Containers,RM B 1 39-41 Pragma Export,RM A 10 7 23 Get_Immediate,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-18-containers}@anchor{25a}
  @section RM A.18: @code{Containers}
  
  
*************** follow the implementation advice.
*** 15252,15258 ****
  @geindex Export
  
  @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 18 Containers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{258}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
--- 15281,15287 ----
  @geindex Export
  
  @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 18 Containers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{25b}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
*************** Followed.
*** 15300,15306 ****
  @geindex Interfaces
  
  @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{259}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
--- 15329,15335 ----
  @geindex Interfaces
  
  @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{25c}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
*************** Followed.  GNAT provides all the package
*** 15330,15336 ****
  @geindex interfacing with
  
  @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{25a}
  @section RM B.3(63-71): Interfacing with C
  
  
--- 15359,15365 ----
  @geindex interfacing with
  
  @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{25d}
  @section RM B.3(63-71): Interfacing with C
  
  
*************** Followed.
*** 15418,15424 ****
  @geindex interfacing with
  
  @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{25b}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
--- 15447,15453 ----
  @geindex interfacing with
  
  @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{25e}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
*************** Followed.
*** 15459,15465 ****
  @geindex interfacing with
  
  @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{25c}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
--- 15488,15494 ----
  @geindex interfacing with
  
  @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{25f}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
*************** Followed.
*** 15510,15516 ****
  @geindex Machine operations
  
  @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{25d}
  @section RM C.1(3-5): Access to Machine Operations
  
  
--- 15539,15545 ----
  @geindex Machine operations
  
  @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{260}
  @section RM C.1(3-5): Access to Machine Operations
  
  
*************** object that is specified as exported.”
*** 15545,15551 ****
  Followed.
  
  @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{25e}
  @section RM C.1(10-16): Access to Machine Operations
  
  
--- 15574,15580 ----
  Followed.
  
  @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{261}
  @section RM C.1(10-16): Access to Machine Operations
  
  
*************** Followed on any target supporting such o
*** 15606,15612 ****
  @geindex Interrupt support
  
  @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{25f}
  @section RM C.3(28): Interrupt Support
  
  
--- 15635,15641 ----
  @geindex Interrupt support
  
  @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{262}
  @section RM C.3(28): Interrupt Support
  
  
*************** of interrupt blocking.
*** 15624,15630 ****
  @geindex Protected procedure handlers
  
  @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{260}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
--- 15653,15659 ----
  @geindex Protected procedure handlers
  
  @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{263}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
*************** Followed.  Compile time warnings are giv
*** 15650,15656 ****
  @geindex Interrupts
  
  @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{261}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
--- 15679,15685 ----
  @geindex Interrupts
  
  @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{264}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
*************** Followed.
*** 15668,15674 ****
  @geindex Pre-elaboration requirements
  
  @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{262}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
--- 15697,15703 ----
  @geindex Pre-elaboration requirements
  
  @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{265}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
*************** Followed.  Executable code is generated
*** 15684,15690 ****
  to initialize large arrays.
  
  @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{263}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
--- 15713,15719 ----
  to initialize large arrays.
  
  @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{266}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
*************** Followed.
*** 15702,15708 ****
  @geindex Task_Attributes
  
  @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{264}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
--- 15731,15737 ----
  @geindex Task_Attributes
  
  @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{267}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
*************** Not followed.  This implementation is no
*** 15723,15729 ****
  @geindex Locking Policies
  
  @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{265}
  @section RM D.3(17): Locking Policies
  
  
--- 15752,15758 ----
  @geindex Locking Policies
  
  @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{268}
  @section RM D.3(17): Locking Policies
  
  
*************** whose names (@code{Inheritance_Locking}
*** 15740,15746 ****
  @geindex Entry queuing policies
  
  @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{266}
  @section RM D.4(16): Entry Queuing Policies
  
  
--- 15769,15775 ----
  @geindex Entry queuing policies
  
  @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{269}
  @section RM D.4(16): Entry Queuing Policies
  
  
*************** Followed.  No such implementation-define
*** 15755,15761 ****
  @geindex Preemptive abort
  
  @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{267}
  @section RM D.6(9-10): Preemptive Abort
  
  
--- 15784,15790 ----
  @geindex Preemptive abort
  
  @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{26a}
  @section RM D.6(9-10): Preemptive Abort
  
  
*************** Followed.
*** 15781,15787 ****
  @geindex Tasking restrictions
  
  @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{268}
  @section RM D.7(21): Tasking Restrictions
  
  
--- 15810,15816 ----
  @geindex Tasking restrictions
  
  @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{26b}
  @section RM D.7(21): Tasking Restrictions
  
  
*************** pragma @code{Profile (Restricted)} for m
*** 15800,15806 ****
  @geindex monotonic
  
  @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{269}
  @section RM D.8(47-49): Monotonic Time
  
  
--- 15829,15835 ----
  @geindex monotonic
  
  @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{26c}
  @section RM D.8(47-49): Monotonic Time
  
  
*************** Followed.
*** 15835,15841 ****
  @geindex PCS
  
  @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{26a}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
--- 15864,15870 ----
  @geindex PCS
  
  @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{26d}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
*************** GNAT.
*** 15863,15869 ****
  @geindex COBOL support
  
  @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{26b}
  @section RM F(7): COBOL Support
  
  
--- 15892,15898 ----
  @geindex COBOL support
  
  @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{26e}
  @section RM F(7): COBOL Support
  
  
*************** Followed.
*** 15883,15889 ****
  @geindex Decimal radix support
  
  @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{26c}
  @section RM F.1(2): Decimal Radix Support
  
  
--- 15912,15918 ----
  @geindex Decimal radix support
  
  @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{26f}
  @section RM F.1(2): Decimal Radix Support
  
  
*************** representations.
*** 15899,15905 ****
  @geindex Numerics
  
  @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{26d}
  @section RM G: Numerics
  
  
--- 15928,15934 ----
  @geindex Numerics
  
  @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{270}
  @section RM G: Numerics
  
  
*************** Followed.
*** 15919,15925 ****
  @geindex Complex types
  
  @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{26e}
  @section RM G.1.1(56-58): Complex Types
  
  
--- 15948,15954 ----
  @geindex Complex types
  
  @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{271}
  @section RM G.1.1(56-58): Complex Types
  
  
*************** Followed.
*** 15981,15987 ****
  @geindex Complex elementary functions
  
  @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{26f}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
--- 16010,16016 ----
  @geindex Complex elementary functions
  
  @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{272}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
*************** Followed.
*** 16003,16009 ****
  @geindex Accuracy requirements
  
  @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{270}
  @section RM G.2.4(19): Accuracy Requirements
  
  
--- 16032,16038 ----
  @geindex Accuracy requirements
  
  @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{273}
  @section RM G.2.4(19): Accuracy Requirements
  
  
*************** Followed.
*** 16027,16033 ****
  @geindex complex arithmetic
  
  @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{271}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
--- 16056,16062 ----
  @geindex complex arithmetic
  
  @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{274}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
*************** Followed.
*** 16045,16051 ****
  @geindex Sequential elaboration policy
  
  @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{272}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
--- 16074,16080 ----
  @geindex Sequential elaboration policy
  
  @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{275}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
*************** immediately terminated.”
*** 16060,16066 ****
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{273}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{274}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
--- 16089,16095 ----
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{276}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{277}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
*************** See separate section on data representat
*** 16910,16916 ****
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{12e,,Implementation Defined Aspects}.
  
  
  @itemize *
--- 16939,16945 ----
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{130,,Implementation Defined Aspects}.
  
  
  @itemize *
*************** When the @code{Pattern} parameter is not
*** 17354,17360 ****
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{275,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
--- 17383,17389 ----
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{278,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
*************** Information on those subjects is not yet
*** 18452,18458 ****
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{276}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{277}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
--- 18481,18487 ----
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{279}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{27a}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
*************** Ada standard does not require Ada compil
*** 18490,18496 ****
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{278}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{279}
  @section Intrinsic Operators
  
  
--- 18519,18525 ----
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{27b}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{27c}
  @section Intrinsic Operators
  
  
*************** It is also possible to specify such oper
*** 18521,18527 ****
  full views are appropriate arithmetic types.
  
  @node Compilation_ISO_Date,Compilation_Date,Intrinsic Operators,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-iso-date}@anchor{27a}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{27b}
  @section Compilation_ISO_Date
  
  
--- 18550,18556 ----
  full views are appropriate arithmetic types.
  
  @node Compilation_ISO_Date,Compilation_Date,Intrinsic Operators,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-iso-date}@anchor{27d}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{27e}
  @section Compilation_ISO_Date
  
  
*************** application program should simply call t
*** 18535,18541 ****
  the current compilation (in local time format YYYY-MM-DD).
  
  @node Compilation_Date,Compilation_Time,Compilation_ISO_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{27c}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{27d}
  @section Compilation_Date
  
  
--- 18564,18570 ----
  the current compilation (in local time format YYYY-MM-DD).
  
  @node Compilation_Date,Compilation_Time,Compilation_ISO_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{27f}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{280}
  @section Compilation_Date
  
  
*************** Same as Compilation_ISO_Date, except the
*** 18545,18551 ****
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{27e}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{27f}
  @section Compilation_Time
  
  
--- 18574,18580 ----
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{281}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{282}
  @section Compilation_Time
  
  
*************** application program should simply call t
*** 18559,18565 ****
  the current compilation (in local time format HH:MM:SS).
  
  @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{280}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{281}
  @section Enclosing_Entity
  
  
--- 18588,18594 ----
  the current compilation (in local time format HH:MM:SS).
  
  @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{283}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{284}
  @section Enclosing_Entity
  
  
*************** application program should simply call t
*** 18573,18579 ****
  the current subprogram, package, task, entry, or protected subprogram.
  
  @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{282}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{283}
  @section Exception_Information
  
  
--- 18602,18608 ----
  the current subprogram, package, task, entry, or protected subprogram.
  
  @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{285}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{286}
  @section Exception_Information
  
  
*************** so an application program should simply
*** 18587,18593 ****
  the exception information associated with the current exception.
  
  @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{284}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{285}
  @section Exception_Message
  
  
--- 18616,18622 ----
  the exception information associated with the current exception.
  
  @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{287}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{288}
  @section Exception_Message
  
  
*************** so an application program should simply
*** 18601,18607 ****
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{286}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{287}
  @section Exception_Name
  
  
--- 18630,18636 ----
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{289}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{28a}
  @section Exception_Name
  
  
*************** so an application program should simply
*** 18615,18621 ****
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{288}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{289}
  @section File
  
  
--- 18644,18650 ----
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{28b}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{28c}
  @section File
  
  
*************** application program should simply call t
*** 18629,18635 ****
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{28a}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{28b}
  @section Line
  
  
--- 18658,18664 ----
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{28d}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{28e}
  @section Line
  
  
*************** application program should simply call t
*** 18643,18649 ****
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{28c}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{28d}
  @section Shifts and Rotates
  
  
--- 18672,18678 ----
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{28f}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{290}
  @section Shifts and Rotates
  
  
*************** corresponding operator for modular type.
*** 18686,18692 ****
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{28e}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{28f}
  @section Source_Location
  
  
--- 18715,18721 ----
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{291}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{292}
  @section Source_Location
  
  
*************** application program should simply call t
*** 18700,18706 ****
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{290}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{291}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
--- 18729,18735 ----
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{293}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{294}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
*************** and this section describes the additiona
*** 18746,18752 ****
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{292}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{293}
  @section Alignment Clauses
  
  
--- 18775,18781 ----
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{295}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{296}
  @section Alignment Clauses
  
  
*************** For elementary types, the alignment is t
*** 18768,18774 ****
  objects of the type divided by @code{Storage_Unit},
  and the maximum alignment supported by the target.
  (This maximum alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{1a2,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
--- 18797,18803 ----
  objects of the type divided by @code{Storage_Unit},
  and the maximum alignment supported by the target.
  (This maximum alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{1a5,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
*************** assumption is non-portable, and other co
*** 18877,18883 ****
  alignments for the subtype @code{RS}.
  
  @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{294}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{295}
  @section Size Clauses
  
  
--- 18906,18912 ----
  alignments for the subtype @code{RS}.
  
  @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{297}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{298}
  @section Size Clauses
  
  
*************** if it is known that a Size value can be
*** 18954,18960 ****
  type Integer.
  
  @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{296}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{297}
  @section Storage_Size Clauses
  
  
--- 18983,18989 ----
  type Integer.
  
  @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{299}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{29a}
  @section Storage_Size Clauses
  
  
*************** Of course in practice, there will not be
*** 19027,19033 ****
  case of such an access declaration.
  
  @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{298}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{299}
  @section Size of Variant Record Objects
  
  
--- 19056,19062 ----
  case of such an access declaration.
  
  @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{29b}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{29c}
  @section Size of Variant Record Objects
  
  
*************** the maximum size, regardless of the curr
*** 19137,19143 ****
  variant value.
  
  @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{29a}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{29b}
  @section Biased Representation
  
  
--- 19166,19172 ----
  variant value.
  
  @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{29d}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{29e}
  @section Biased Representation
  
  
*************** biased representation can be used for al
*** 19175,19181 ****
  enumeration types for which a representation clause is given.
  
  @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{29c}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{29d}
  @section Value_Size and Object_Size Clauses
  
  
--- 19204,19210 ----
  enumeration types for which a representation clause is given.
  
  @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{29f}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{2a0}
  @section Value_Size and Object_Size Clauses
  
  
*************** definition clause forces biased represen
*** 19491,19497 ****
  warning can be turned off using @code{-gnatw.B}.
  
  @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{29e}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{29f}
  @section Component_Size Clauses
  
  
--- 19520,19526 ----
  warning can be turned off using @code{-gnatw.B}.
  
  @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{2a1}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{2a2}
  @section Component_Size Clauses
  
  
*************** and a pragma Pack for the same array typ
*** 19539,19545 ****
  clauses are given, the pragma Pack will be ignored.
  
  @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{2a0}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{2a1}
  @section Bit_Order Clauses
  
  
--- 19568,19574 ----
  clauses are given, the pragma Pack will be ignored.
  
  @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{2a3}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{2a4}
  @section Bit_Order Clauses
  
  
*************** if desired.  The following section conta
*** 19645,19651 ****
  details regarding the issue of byte ordering.
  
  @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{2a2}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{2a3}
  @section Effect of Bit_Order on Byte Ordering
  
  
--- 19674,19680 ----
  details regarding the issue of byte ordering.
  
  @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{2a5}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{2a6}
  @section Effect of Bit_Order on Byte Ordering
  
  
*************** to set the boolean constant @code{Master
*** 19902,19908 ****
  an appropriate manner.
  
  @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{2a4}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{2a5}
  @section Pragma Pack for Arrays
  
  
--- 19931,19937 ----
  an appropriate manner.
  
  @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{2a7}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{2a8}
  @section Pragma Pack for Arrays
  
  
*************** Here 31-bit packing is achieved as requi
*** 20022,20028 ****
  since in this case the programmer intention is clear.
  
  @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{2a6}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{2a7}
  @section Pragma Pack for Records
  
  
--- 20051,20057 ----
  since in this case the programmer intention is clear.
  
  @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{2a9}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{2aa}
  @section Pragma Pack for Records
  
  
*************** array that is longer than 64 bits, so it
*** 20106,20112 ****
  boundary, and takes an integral number of bytes, i.e., 72 bits.
  
  @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{2a8}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2a9}
  @section Record Representation Clauses
  
  
--- 20135,20141 ----
  boundary, and takes an integral number of bytes, i.e., 72 bits.
  
  @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{2ab}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2ac}
  @section Record Representation Clauses
  
  
*************** end record;
*** 20185,20191 ****
  @end example
  
  @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{2aa}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2ab}
  @section Handling of Records with Holes
  
  
--- 20214,20220 ----
  @end example
  
  @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{2ad}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2ae}
  @section Handling of Records with Holes
  
  
*************** for Hrec'Size use 64;
*** 20261,20267 ****
  @end example
  
  @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{2ac}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2ad}
  @section Enumeration Clauses
  
  
--- 20290,20296 ----
  @end example
  
  @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{2af}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2b0}
  @section Enumeration Clauses
  
  
*************** the overhead of converting representatio
*** 20304,20310 ****
  positional values, (i.e., the value delivered by the @code{Pos} attribute).
  
  @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{2ae}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2af}
  @section Address Clauses
  
  
--- 20333,20339 ----
  positional values, (i.e., the value delivered by the @code{Pos} attribute).
  
  @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{2b1}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2b2}
  @section Address Clauses
  
  
*************** then the program compiles without the wa
*** 20644,20650 ****
  the output @code{X was not clobbered}.
  
  @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{2b0}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2b1}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
--- 20673,20679 ----
  the output @code{X was not clobbered}.
  
  @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{2b3}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2b4}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
*************** provides the pragma @code{Volatile_Full_
*** 20702,20708 ****
  pragma @code{Atomic} and will give the additional guarantee.
  
  @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{2b2}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2b3}
  @section Effect of Convention on Representation
  
  
--- 20731,20737 ----
  pragma @code{Atomic} and will give the additional guarantee.
  
  @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{2b5}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2b6}
  @section Effect of Convention on Representation
  
  
*************** conventions, and for example records are
*** 20716,20722 ****
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are four exceptions to this general rule:
  
  
  @itemize *
--- 20745,20751 ----
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are three exceptions to this general rule:
  
  
  @itemize *
*************** when one of these values is read, any no
*** 20780,20786 ****
  @end itemize
  
  @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{2b4}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2b5}
  @section Conventions and Anonymous Access Types
  
  
--- 20809,20815 ----
  @end itemize
  
  @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{2b7}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2b8}
  @section Conventions and Anonymous Access Types
  
  
*************** package ConvComp is
*** 20856,20862 ****
  @end example
  
  @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{2b6}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2b7}
  @section Determining the Representations chosen by GNAT
  
  
--- 20885,20891 ----
  @end example
  
  @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{2b9}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2ba}
  @section Determining the Representations chosen by GNAT
  
  
*************** generated by the compiler into the origi
*** 21008,21014 ****
  the actual representation to be used.
  
  @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top
! @anchor{gnat_rm/standard_library_routines doc}@anchor{2b8}@anchor{gnat_rm/standard_library_routines id1}@anchor{2b9}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
--- 21037,21043 ----
  the actual representation to be used.
  
  @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top
! @anchor{gnat_rm/standard_library_routines doc}@anchor{2bb}@anchor{gnat_rm/standard_library_routines id1}@anchor{2bc}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
*************** For packages in Interfaces and System, a
*** 21835,21841 ****
  available in GNAT, see the Ada 2012 RM for full details.
  
  @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top
! @anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{2ba}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2bb}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
--- 21864,21870 ----
  available in GNAT, see the Ada 2012 RM for full details.
  
  @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top
! @anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{2bd}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2be}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
*************** these additional facilities are also des
*** 21887,21893 ****
  @end menu
  
  @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{2bc}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2bd}
  @section Standard I/O Packages
  
  
--- 21916,21922 ----
  @end menu
  
  @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{2bf}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2c0}
  @section Standard I/O Packages
  
  
*************** flush the common I/O streams and in part
*** 21958,21964 ****
  elaborating the Ada code.
  
  @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{2be}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2bf}
  @section FORM Strings
  
  
--- 21987,21993 ----
  elaborating the Ada code.
  
  @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{2c1}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2c2}
  @section FORM Strings
  
  
*************** unrecognized keyword appears in a form s
*** 21984,21990 ****
  and not considered invalid.
  
  @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{2c0}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2c1}
  @section Direct_IO
  
  
--- 22013,22019 ----
  and not considered invalid.
  
  @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{2c3}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2c4}
  @section Direct_IO
  
  
*************** There is no limit on the size of Direct_
*** 22003,22009 ****
  necessary to accommodate whatever records are written to the file.
  
  @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{2c2}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2c3}
  @section Sequential_IO
  
  
--- 22032,22038 ----
  necessary to accommodate whatever records are written to the file.
  
  @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{2c5}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2c6}
  @section Sequential_IO
  
  
*************** using Stream_IO, and this is the preferr
*** 22050,22056 ****
  above program fragment rewritten to use Stream_IO will work correctly.
  
  @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{2c4}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2c5}
  @section Text_IO
  
  
--- 22079,22085 ----
  above program fragment rewritten to use Stream_IO will work correctly.
  
  @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{2c7}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2c8}
  @section Text_IO
  
  
*************** the file.
*** 22133,22139 ****
  @end menu
  
  @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{2c6}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2c7}
  @subsection Stream Pointer Positioning
  
  
--- 22162,22168 ----
  @end menu
  
  @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{2c9}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2ca}
  @subsection Stream Pointer Positioning
  
  
*************** between two Ada files, then the differen
*** 22169,22175 ****
  situations.
  
  @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{2c8}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2c9}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22198,22204 ----
  situations.
  
  @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{2cb}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2cc}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** to read data past that end of
*** 22220,22226 ****
  file indication, until another end of file indication is entered.
  
  @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{2ca}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2cb}
  @subsection Get_Immediate
  
  
--- 22249,22255 ----
  file indication, until another end of file indication is entered.
  
  @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{2cd}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2ce}
  @subsection Get_Immediate
  
  
*************** possible), it is undefined whether the F
*** 22238,22244 ****
  page mark.
  
  @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{2cc}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2cd}
  @subsection Treating Text_IO Files as Streams
  
  
--- 22267,22273 ----
  page mark.
  
  @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{2cf}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2d0}
  @subsection Treating Text_IO Files as Streams
  
  
*************** skipped and the effect is similar to tha
*** 22254,22260 ****
  @code{Get_Immediate}.
  
  @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2ce}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2cf}
  @subsection Text_IO Extensions
  
  
--- 22283,22289 ----
  @code{Get_Immediate}.
  
  @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2d1}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2d2}
  @subsection Text_IO Extensions
  
  
*************** the string is to be read.
*** 22282,22288 ****
  @end itemize
  
  @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2d0}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2d1}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
--- 22311,22317 ----
  @end itemize
  
  @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2d3}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2d4}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
*************** files @code{a-szuzti.ads} and @code{a-sz
*** 22330,22336 ****
  @code{Wide_Wide_Text_IO} functionality for unbounded wide wide strings.
  
  @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2d2}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2d3}
  @section Wide_Text_IO
  
  
--- 22359,22365 ----
  @code{Wide_Wide_Text_IO} functionality for unbounded wide wide strings.
  
  @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2d5}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2d6}
  @section Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22577,22588 ****
  @end menu
  
  @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2d4}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2d5}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2c5,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22606,22617 ----
  @end menu
  
  @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2d7}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2d8}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2c8,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
*************** to a normal program using @code{Wide_Tex
*** 22601,22607 ****
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2d6}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2d7}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22630,22636 ----
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2d9}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2da}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22612,22618 ****
  it is possible to read beyond an end of file.
  
  @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2d8}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2d9}
  @section Wide_Wide_Text_IO
  
  
--- 22641,22647 ----
  it is possible to read beyond an end of file.
  
  @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2db}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2dc}
  @section Wide_Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22781,22792 ****
  @end menu
  
  @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2da}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2db}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2c5,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22810,22821 ----
  @end menu
  
  @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2dd}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2de}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2c8,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
*************** to a normal program using @code{Wide_Wid
*** 22805,22811 ****
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2dc}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2dd}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22834,22840 ----
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2df}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2e0}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22816,22822 ****
  it is possible to read beyond an end of file.
  
  @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2de}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2df}
  @section Stream_IO
  
  
--- 22845,22851 ----
  it is possible to read beyond an end of file.
  
  @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2e1}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2e2}
  @section Stream_IO
  
  
*************** manner described for stream attributes.
*** 22838,22844 ****
  @end itemize
  
  @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2e0}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2e1}
  @section Text Translation
  
  
--- 22867,22873 ----
  @end itemize
  
  @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2e3}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2e4}
  @section Text Translation
  
  
*************** mode. (corresponds to_O_U16TEXT).
*** 22872,22878 ****
  @end itemize
  
  @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2e2}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2e3}
  @section Shared Files
  
  
--- 22901,22907 ----
  @end itemize
  
  @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2e5}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2e6}
  @section Shared Files
  
  
*************** heterogeneous input-output.  Although th
*** 22935,22941 ****
  for this purpose (using the stream attributes).
  
  @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2e4}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2e5}
  @section Filenames encoding
  
  
--- 22964,22970 ----
  for this purpose (using the stream attributes).
  
  @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2e7}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2e8}
  @section Filenames encoding
  
  
*************** platform. On the other Operating Systems
*** 22975,22981 ****
  UTF-8 natively.
  
  @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2e6}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2e7}
  @section File content encoding
  
  
--- 23004,23010 ----
  UTF-8 natively.
  
  @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2e9}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2ea}
  @section File content encoding
  
  
*************** Unicode 8-bit encoding
*** 23008,23014 ****
  This encoding is only supported on the Windows platform.
  
  @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2e8}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2e9}
  @section Open Modes
  
  
--- 23037,23043 ----
  This encoding is only supported on the Windows platform.
  
  @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2eb}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2ec}
  @section Open Modes
  
  
*************** subsequently requires switching from rea
*** 23111,23117 ****
  then the file is reopened in @code{r+} mode to permit the required operation.
  
  @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2ea}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2eb}
  @section Operations on C Streams
  
  
--- 23140,23146 ----
  then the file is reopened in @code{r+} mode to permit the required operation.
  
  @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2ed}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2ee}
  @section Operations on C Streams
  
  
*************** end Interfaces.C_Streams;
*** 23271,23277 ****
  @end example
  
  @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2ec}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2ed}
  @section Interfacing to C Streams
  
  
--- 23300,23306 ----
  @end example
  
  @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2ef}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2f0}
  @section Interfacing to C Streams
  
  
*************** imported from a C program, allowing an A
*** 23364,23370 ****
  existing C file.
  
  @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top
! @anchor{gnat_rm/the_gnat_library doc}@anchor{2ee}@anchor{gnat_rm/the_gnat_library id1}@anchor{2ef}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
--- 23393,23399 ----
  existing C file.
  
  @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top
! @anchor{gnat_rm/the_gnat_library doc}@anchor{2f1}@anchor{gnat_rm/the_gnat_library id1}@anchor{2f2}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
*************** of GNAT, and will generate a warning mes
*** 23549,23555 ****
  @end menu
  
  @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2f0}@anchor{gnat_rm/the_gnat_library id2}@anchor{2f1}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
--- 23578,23584 ----
  @end menu
  
  @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2f3}@anchor{gnat_rm/the_gnat_library id2}@anchor{2f4}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23566,23572 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2f2}@anchor{gnat_rm/the_gnat_library id3}@anchor{2f3}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
--- 23595,23601 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2f5}@anchor{gnat_rm/the_gnat_library id3}@anchor{2f6}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23583,23589 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila9-ads}@anchor{2f4}@anchor{gnat_rm/the_gnat_library id4}@anchor{2f5}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
--- 23612,23618 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila9-ads}@anchor{2f7}@anchor{gnat_rm/the_gnat_library id4}@anchor{2f8}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23600,23606 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2f6}@anchor{gnat_rm/the_gnat_library id5}@anchor{2f7}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
--- 23629,23635 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2f9}@anchor{gnat_rm/the_gnat_library id5}@anchor{2fa}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23617,23623 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Bounded_Holders a-coboho ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2f8}@anchor{gnat_rm/the_gnat_library id6}@anchor{2f9}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
--- 23646,23652 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Bounded_Holders a-coboho ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2fb}@anchor{gnat_rm/the_gnat_library id6}@anchor{2fc}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23634,23640 ****
  (RM A.3.3(27)).
  
  @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2fa}@anchor{gnat_rm/the_gnat_library id7}@anchor{2fb}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
--- 23663,23669 ----
  (RM A.3.3(27)).
  
  @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2fd}@anchor{gnat_rm/the_gnat_library id7}@anchor{2fe}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
*************** This child of @code{Ada.Containers} defi
*** 23646,23652 ****
  Indefinite_Holders that avoids heap allocation.
  
  @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{2fc}@anchor{gnat_rm/the_gnat_library id8}@anchor{2fd}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
--- 23675,23681 ----
  Indefinite_Holders that avoids heap allocation.
  
  @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{2ff}@anchor{gnat_rm/the_gnat_library id8}@anchor{300}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
*************** provides a mechanism for obtaining envir
*** 23659,23665 ****
  where this concept makes sense.
  
  @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{2fe}@anchor{gnat_rm/the_gnat_library id9}@anchor{2ff}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
--- 23688,23694 ----
  where this concept makes sense.
  
  @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{301}@anchor{gnat_rm/the_gnat_library id9}@anchor{302}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
*************** to further calls to the subprograms in @
*** 23677,23683 ****
  will not see the removed argument.
  
  @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{300}@anchor{gnat_rm/the_gnat_library id10}@anchor{301}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
--- 23706,23712 ----
  will not see the removed argument.
  
  @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{303}@anchor{gnat_rm/the_gnat_library id10}@anchor{304}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
*************** Using a response file allow passing a se
*** 23697,23703 ****
  than the maximum allowed by the system on the command line.
  
  @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{302}@anchor{gnat_rm/the_gnat_library id11}@anchor{303}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
--- 23726,23732 ----
  than the maximum allowed by the system on the command line.
  
  @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{305}@anchor{gnat_rm/the_gnat_library id11}@anchor{306}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23712,23718 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{304}@anchor{gnat_rm/the_gnat_library id12}@anchor{305}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
--- 23741,23747 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{307}@anchor{gnat_rm/the_gnat_library id12}@anchor{308}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
*************** exception occurrence (@code{Null_Occurre
*** 23726,23732 ****
  an exception.
  
  @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{306}@anchor{gnat_rm/the_gnat_library id13}@anchor{307}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
--- 23755,23761 ----
  an exception.
  
  @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{309}@anchor{gnat_rm/the_gnat_library id13}@anchor{30a}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
*************** exceptions (hence the name last chance),
*** 23740,23746 ****
  terminating the program. Note that this subprogram never returns.
  
  @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{308}@anchor{gnat_rm/the_gnat_library id14}@anchor{309}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
--- 23769,23775 ----
  terminating the program. Note that this subprogram never returns.
  
  @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{30b}@anchor{gnat_rm/the_gnat_library id14}@anchor{30c}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
*************** give a traceback array of addresses base
*** 23753,23759 ****
  occurrence.
  
  @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{30a}@anchor{gnat_rm/the_gnat_library id15}@anchor{30b}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
--- 23782,23788 ----
  occurrence.
  
  @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{30d}@anchor{gnat_rm/the_gnat_library id15}@anchor{30e}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23768,23774 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{30c}@anchor{gnat_rm/the_gnat_library id16}@anchor{30d}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
--- 23797,23803 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{30f}@anchor{gnat_rm/the_gnat_library id16}@anchor{310}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23783,23789 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{30e}@anchor{gnat_rm/the_gnat_library id17}@anchor{30f}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
--- 23812,23818 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{311}@anchor{gnat_rm/the_gnat_library id17}@anchor{312}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
*************** strings, avoiding the necessity for an i
*** 23800,23806 ****
  with ordinary strings.
  
  @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{310}@anchor{gnat_rm/the_gnat_library id18}@anchor{311}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
--- 23829,23835 ----
  with ordinary strings.
  
  @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{313}@anchor{gnat_rm/the_gnat_library id18}@anchor{314}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
*************** wide strings, avoiding the necessity for
*** 23817,23823 ****
  with ordinary wide strings.
  
  @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Task_Initialization a-tasini ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{312}@anchor{gnat_rm/the_gnat_library id19}@anchor{313}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
--- 23846,23852 ----
  with ordinary wide strings.
  
  @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Task_Initialization a-tasini ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{315}@anchor{gnat_rm/the_gnat_library id19}@anchor{316}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
*************** wide wide strings, avoiding the necessit
*** 23834,23840 ****
  with ordinary wide wide strings.
  
  @node Ada Task_Initialization a-tasini ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-task-initialization-a-tasini-ads}@anchor{314}@anchor{gnat_rm/the_gnat_library id20}@anchor{315}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
--- 23863,23869 ----
  with ordinary wide wide strings.
  
  @node Ada Task_Initialization a-tasini ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-task-initialization-a-tasini-ads}@anchor{317}@anchor{gnat_rm/the_gnat_library id20}@anchor{318}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
*************** parameterless procedures. Note that such
*** 23846,23852 ****
  those tasks activated after the handler is set.
  
  @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Task_Initialization a-tasini ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{316}@anchor{gnat_rm/the_gnat_library id21}@anchor{317}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
--- 23875,23881 ----
  those tasks activated after the handler is set.
  
  @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Task_Initialization a-tasini ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{319}@anchor{gnat_rm/the_gnat_library id21}@anchor{31a}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23861,23867 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{318}@anchor{gnat_rm/the_gnat_library id22}@anchor{319}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
--- 23890,23896 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{31b}@anchor{gnat_rm/the_gnat_library id22}@anchor{31c}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
*************** execution (for example a standard input
*** 23876,23882 ****
  interactive).
  
  @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{31a}@anchor{gnat_rm/the_gnat_library id23}@anchor{31b}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
--- 23905,23911 ----
  interactive).
  
  @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{31d}@anchor{gnat_rm/the_gnat_library id23}@anchor{31e}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
*************** This package provides subprograms that a
*** 23889,23895 ****
  Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{31c}@anchor{gnat_rm/the_gnat_library id24}@anchor{31d}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
--- 23918,23924 ----
  Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{31f}@anchor{gnat_rm/the_gnat_library id24}@anchor{320}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23904,23910 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{31e}@anchor{gnat_rm/the_gnat_library id25}@anchor{31f}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
--- 23933,23939 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{321}@anchor{gnat_rm/the_gnat_library id25}@anchor{322}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
*************** execution (for example a standard input
*** 23919,23925 ****
  interactive).
  
  @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{320}@anchor{gnat_rm/the_gnat_library id26}@anchor{321}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
--- 23948,23954 ----
  interactive).
  
  @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{323}@anchor{gnat_rm/the_gnat_library id26}@anchor{324}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
*************** This package provides subprograms that a
*** 23932,23938 ****
  Wide_Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{322}@anchor{gnat_rm/the_gnat_library id27}@anchor{323}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
--- 23961,23967 ----
  Wide_Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{325}@anchor{gnat_rm/the_gnat_library id27}@anchor{326}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23947,23953 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{324}@anchor{gnat_rm/the_gnat_library id28}@anchor{325}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
--- 23976,23982 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{327}@anchor{gnat_rm/the_gnat_library id28}@anchor{328}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
*************** change during execution (for example a s
*** 23962,23968 ****
  redefined to be interactive).
  
  @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{326}@anchor{gnat_rm/the_gnat_library id29}@anchor{327}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
--- 23991,23997 ----
  redefined to be interactive).
  
  @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{329}@anchor{gnat_rm/the_gnat_library id29}@anchor{32a}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
*************** definitions of constants and types commo
*** 23975,23981 ****
  binding.
  
  @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{328}@anchor{gnat_rm/the_gnat_library id30}@anchor{329}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
--- 24004,24010 ----
  binding.
  
  @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{32b}@anchor{gnat_rm/the_gnat_library id30}@anchor{32c}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
*************** binding.
*** 23986,23992 ****
  This package provides the Vector/View conversion routines.
  
  @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{32a}@anchor{gnat_rm/the_gnat_library id31}@anchor{32b}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
--- 24015,24021 ----
  This package provides the Vector/View conversion routines.
  
  @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{32d}@anchor{gnat_rm/the_gnat_library id31}@anchor{32e}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
*************** library. The hard binding is provided as
*** 24000,24006 ****
  is common to both bindings.
  
  @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{32c}@anchor{gnat_rm/the_gnat_library id32}@anchor{32d}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
--- 24029,24035 ----
  is common to both bindings.
  
  @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{32f}@anchor{gnat_rm/the_gnat_library id32}@anchor{330}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
*************** This package exposes the various vector
*** 24012,24018 ****
  to AltiVec facilities.
  
  @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{32e}@anchor{gnat_rm/the_gnat_library id33}@anchor{32f}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
--- 24041,24047 ----
  to AltiVec facilities.
  
  @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{331}@anchor{gnat_rm/the_gnat_library id33}@anchor{332}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
*************** vector elements and provides a simple wa
*** 24027,24033 ****
  objects.
  
  @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{330}@anchor{gnat_rm/the_gnat_library id34}@anchor{331}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
--- 24056,24062 ----
  objects.
  
  @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id34}@anchor{334}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
*************** an array wherever the separators appear,
*** 24040,24046 ****
  to the resulting slices.
  
  @node GNAT AWK g-awk ads,GNAT Binary_Search g-binsea ads,GNAT Array_Split g-arrspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{332}@anchor{gnat_rm/the_gnat_library id35}@anchor{333}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
--- 24069,24075 ----
  to the resulting slices.
  
  @node GNAT AWK g-awk ads,GNAT Binary_Search g-binsea ads,GNAT Array_Split g-arrspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{335}@anchor{gnat_rm/the_gnat_library id35}@anchor{336}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
*************** or more files containing formatted data.
*** 24055,24061 ****
  where each record is a line and a field is a data element in this line.
  
  @node GNAT Binary_Search g-binsea ads,GNAT Bind_Environment g-binenv ads,GNAT AWK g-awk ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-binary-search-g-binsea-ads}@anchor{334}@anchor{gnat_rm/the_gnat_library id36}@anchor{335}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
--- 24084,24090 ----
  where each record is a line and a field is a data element in this line.
  
  @node GNAT Binary_Search g-binsea ads,GNAT Bind_Environment g-binenv ads,GNAT AWK g-awk ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-binary-search-g-binsea-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id36}@anchor{338}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
*************** Allow binary search of a sorted array (o
*** 24067,24073 ****
  the generic does not reference the array directly).
  
  @node GNAT Bind_Environment g-binenv ads,GNAT Branch_Prediction g-brapre ads,GNAT Binary_Search g-binsea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{336}@anchor{gnat_rm/the_gnat_library id37}@anchor{337}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
--- 24096,24102 ----
  the generic does not reference the array directly).
  
  @node GNAT Bind_Environment g-binenv ads,GNAT Branch_Prediction g-brapre ads,GNAT Binary_Search g-binsea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{339}@anchor{gnat_rm/the_gnat_library id37}@anchor{33a}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
*************** These associations can be specified usin
*** 24080,24086 ****
  line switch.
  
  @node GNAT Branch_Prediction g-brapre ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-branch-prediction-g-brapre-ads}@anchor{338}@anchor{gnat_rm/the_gnat_library id38}@anchor{339}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
--- 24109,24115 ----
  line switch.
  
  @node GNAT Branch_Prediction g-brapre ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-branch-prediction-g-brapre-ads}@anchor{33b}@anchor{gnat_rm/the_gnat_library id38}@anchor{33c}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
*************** line switch.
*** 24091,24097 ****
  Provides routines giving hints to the branch predictor of the code generator.
  
  @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Branch_Prediction g-brapre ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{33a}@anchor{gnat_rm/the_gnat_library id39}@anchor{33b}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
--- 24120,24126 ----
  Provides routines giving hints to the branch predictor of the code generator.
  
  @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Branch_Prediction g-brapre ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{33d}@anchor{gnat_rm/the_gnat_library id39}@anchor{33e}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
*************** useful directly or as parts of the imple
*** 24106,24112 ****
  such as mailboxes.
  
  @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{33c}@anchor{gnat_rm/the_gnat_library id40}@anchor{33d}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
--- 24135,24141 ----
  such as mailboxes.
  
  @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{33f}@anchor{gnat_rm/the_gnat_library id40}@anchor{340}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
*************** such as mailboxes.
*** 24119,24125 ****
  Provides a thread-safe asynchronous intertask mailbox communication facility.
  
  @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{33e}@anchor{gnat_rm/the_gnat_library id41}@anchor{33f}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
--- 24148,24154 ----
  Provides a thread-safe asynchronous intertask mailbox communication facility.
  
  @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{341}@anchor{gnat_rm/the_gnat_library id41}@anchor{342}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
*************** data items.  Exchange and comparison pro
*** 24134,24140 ****
  access-to-procedure values.
  
  @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{340}@anchor{gnat_rm/the_gnat_library id42}@anchor{341}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
--- 24163,24169 ----
  access-to-procedure values.
  
  @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{343}@anchor{gnat_rm/the_gnat_library id42}@anchor{344}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
*************** access-to-procedure values. This is an o
*** 24150,24156 ****
  compatibility. Usually @code{GNAT.Bubble_Sort} will be preferable.
  
  @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{342}@anchor{gnat_rm/the_gnat_library id43}@anchor{343}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
--- 24179,24185 ----
  compatibility. Usually @code{GNAT.Bubble_Sort} will be preferable.
  
  @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id43}@anchor{346}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24166,24172 ****
  multiple instantiations.
  
  @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{344}@anchor{gnat_rm/the_gnat_library id44}@anchor{345}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
--- 24195,24201 ----
  multiple instantiations.
  
  @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id44}@anchor{348}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
*************** the encoding of the string. The routine
*** 24182,24188 ****
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{346}@anchor{gnat_rm/the_gnat_library id45}@anchor{347}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
--- 24211,24217 ----
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id45}@anchor{34a}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
*************** General routines for swapping the bytes
*** 24196,24202 ****
  Machine-specific implementations are available in some cases.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{348}@anchor{gnat_rm/the_gnat_library id46}@anchor{349}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
--- 24225,24231 ----
  Machine-specific implementations are available in some cases.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id46}@anchor{34c}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
*************** Also provides conversion of @code{Ada.Ca
*** 24210,24216 ****
  C @code{timeval} format.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{34a}@anchor{gnat_rm/the_gnat_library id47}@anchor{34b}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
--- 24239,24245 ----
  C @code{timeval} format.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{34d}@anchor{gnat_rm/the_gnat_library id47}@anchor{34e}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
*************** C @code{timeval} format.
*** 24221,24227 ****
  @geindex GNAT.Calendar.Time_IO (g-catiio.ads)
  
  @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{34c}@anchor{gnat_rm/the_gnat_library id48}@anchor{34d}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
--- 24250,24256 ----
  @geindex GNAT.Calendar.Time_IO (g-catiio.ads)
  
  @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{34f}@anchor{gnat_rm/the_gnat_library id48}@anchor{350}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
*************** of this algorithm see
*** 24238,24244 ****
  Aug. 1988.  Sarwate, D.V.
  
  @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{34e}@anchor{gnat_rm/the_gnat_library id49}@anchor{34f}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
--- 24267,24273 ----
  Aug. 1988.  Sarwate, D.V.
  
  @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{351}@anchor{gnat_rm/the_gnat_library id49}@anchor{352}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
*************** without the overhead of the full casing
*** 24253,24259 ****
  in @code{Ada.Characters.Handling}.
  
  @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{350}@anchor{gnat_rm/the_gnat_library id50}@anchor{351}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
--- 24282,24288 ----
  in @code{Ada.Characters.Handling}.
  
  @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{353}@anchor{gnat_rm/the_gnat_library id50}@anchor{354}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
*************** builds a table whose index is the key an
*** 24268,24274 ****
  with this table.
  
  @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{352}@anchor{gnat_rm/the_gnat_library id51}@anchor{353}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
--- 24297,24303 ----
  with this table.
  
  @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{355}@anchor{gnat_rm/the_gnat_library id51}@anchor{356}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
*************** Common Gateway Interface (CGI).  It expo
*** 24283,24289 ****
  cookies (piece of information kept in the Web client software).
  
  @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{354}@anchor{gnat_rm/the_gnat_library id52}@anchor{355}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
--- 24312,24318 ----
  cookies (piece of information kept in the Web client software).
  
  @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{357}@anchor{gnat_rm/the_gnat_library id52}@anchor{358}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
*************** This is a package to help debugging CGI
*** 24295,24301 ****
  programs written in Ada.
  
  @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{356}@anchor{gnat_rm/the_gnat_library id53}@anchor{357}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
--- 24324,24330 ----
  programs written in Ada.
  
  @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{359}@anchor{gnat_rm/the_gnat_library id53}@anchor{35a}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
*************** including the ability to scan for named
*** 24308,24314 ****
  and expand file names using wildcard notations.
  
  @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{358}@anchor{gnat_rm/the_gnat_library id54}@anchor{359}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
--- 24337,24343 ----
  and expand file names using wildcard notations.
  
  @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id54}@anchor{35c}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
*************** of the compiler if a consistent tool set
*** 24326,24332 ****
  of a partition).
  
  @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{35a}@anchor{gnat_rm/the_gnat_library id55}@anchor{35b}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
--- 24355,24361 ----
  of a partition).
  
  @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{35d}@anchor{gnat_rm/the_gnat_library id55}@anchor{35e}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
*************** of a partition).
*** 24337,24343 ****
  Provides a simple interface to handle Ctrl-C keyboard events.
  
  @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{35c}@anchor{gnat_rm/the_gnat_library id56}@anchor{35d}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
--- 24366,24372 ----
  Provides a simple interface to handle Ctrl-C keyboard events.
  
  @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{35f}@anchor{gnat_rm/the_gnat_library id56}@anchor{360}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
*************** This is particularly useful in simulatin
*** 24354,24360 ****
  obtaining information about exceptions provided by Ada 83 compilers.
  
  @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{35e}@anchor{gnat_rm/the_gnat_library id57}@anchor{35f}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
--- 24383,24389 ----
  obtaining information about exceptions provided by Ada 83 compilers.
  
  @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id57}@anchor{362}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
*************** problems.
*** 24371,24377 ****
  See @code{The GNAT Debug_Pool Facility} section in the @cite{GNAT User’s Guide}.
  
  @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{360}@anchor{gnat_rm/the_gnat_library id58}@anchor{361}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
--- 24400,24406 ----
  See @code{The GNAT Debug_Pool Facility} section in the @cite{GNAT User’s Guide}.
  
  @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id58}@anchor{364}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
*************** to and from string images of address val
*** 24384,24390 ****
  for hexadecimal literals.
  
  @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{362}@anchor{gnat_rm/the_gnat_library id59}@anchor{363}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
--- 24413,24419 ----
  for hexadecimal literals.
  
  @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{365}@anchor{gnat_rm/the_gnat_library id59}@anchor{366}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
*************** Useful in conjunction with Unicode chara
*** 24408,24414 ****
  preinstantiation for UTF-8. See next entry.
  
  @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{364}@anchor{gnat_rm/the_gnat_library id60}@anchor{365}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
--- 24437,24443 ----
  preinstantiation for UTF-8. See next entry.
  
  @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id60}@anchor{368}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
*************** preinstantiation for UTF-8. See next ent
*** 24429,24435 ****
  A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
  
  @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{366}@anchor{gnat_rm/the_gnat_library id61}@anchor{367}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
--- 24458,24464 ----
  A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
  
  @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{369}@anchor{gnat_rm/the_gnat_library id61}@anchor{36a}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
*************** the current directory, making new direct
*** 24442,24448 ****
  directory.
  
  @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{368}@anchor{gnat_rm/the_gnat_library id62}@anchor{369}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
--- 24471,24477 ----
  directory.
  
  @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{36b}@anchor{gnat_rm/the_gnat_library id62}@anchor{36c}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
*************** A child unit of GNAT.Directory_Operation
*** 24454,24460 ****
  for iterating through directories.
  
  @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{36a}@anchor{gnat_rm/the_gnat_library id63}@anchor{36b}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
--- 24483,24489 ----
  for iterating through directories.
  
  @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id63}@anchor{36e}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
*************** dynamic instances of the hash table, whi
*** 24472,24478 ****
  @code{GNAT.HTable} creates a single instance of the hash table.
  
  @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{36c}@anchor{gnat_rm/the_gnat_library id64}@anchor{36d}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
--- 24501,24507 ----
  @code{GNAT.HTable} creates a single instance of the hash table.
  
  @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{36f}@anchor{gnat_rm/the_gnat_library id64}@anchor{370}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
*************** dynamic instances of the table, while an
*** 24492,24498 ****
  @code{GNAT.Table} creates a single instance of the table type.
  
  @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{36e}@anchor{gnat_rm/the_gnat_library id65}@anchor{36f}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
--- 24521,24527 ----
  @code{GNAT.Table} creates a single instance of the table type.
  
  @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{371}@anchor{gnat_rm/the_gnat_library id65}@anchor{372}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
*************** encoding method. Useful in conjunction w
*** 24514,24520 ****
  Note there is a preinstantiation for UTF-8. See next entry.
  
  @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{370}@anchor{gnat_rm/the_gnat_library id66}@anchor{371}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
--- 24543,24549 ----
  Note there is a preinstantiation for UTF-8. See next entry.
  
  @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id66}@anchor{374}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
*************** Note there is a preinstantiation for UTF
*** 24535,24541 ****
  A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
  
  @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{372}@anchor{gnat_rm/the_gnat_library id67}@anchor{373}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
--- 24564,24570 ----
  A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
  
  @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id67}@anchor{376}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
*************** for specific exceptions, or when any exc
*** 24548,24554 ****
  can be used for instance to force a core dump to ease debugging.
  
  @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-except ads,GNAT Exception_Actions g-excact ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{374}@anchor{gnat_rm/the_gnat_library id68}@anchor{375}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
--- 24577,24583 ----
  can be used for instance to force a core dump to ease debugging.
  
  @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-except ads,GNAT Exception_Actions g-excact ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{377}@anchor{gnat_rm/the_gnat_library id68}@anchor{378}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
*************** Provides an interface allowing to contro
*** 24562,24568 ****
  occurrences.
  
  @node GNAT Exceptions g-except ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exceptions-g-except-ads}@anchor{376}@anchor{gnat_rm/the_gnat_library id69}@anchor{377}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
--- 24591,24597 ----
  occurrences.
  
  @node GNAT Exceptions g-except ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exceptions-g-except-ads}@anchor{379}@anchor{gnat_rm/the_gnat_library id69}@anchor{37a}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
*************** predefined exceptions, and for example a
*** 24583,24589 ****
  @code{Constraint_Error} with a message from a pure subprogram.
  
  @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-except ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{378}@anchor{gnat_rm/the_gnat_library id70}@anchor{379}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
--- 24612,24618 ----
  @code{Constraint_Error} with a message from a pure subprogram.
  
  @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-except ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{37b}@anchor{gnat_rm/the_gnat_library id70}@anchor{37c}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
*************** It is not implemented for cross ports, a
*** 24599,24605 ****
  implemented for VxWorks or LynxOS.
  
  @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{37a}@anchor{gnat_rm/the_gnat_library id71}@anchor{37b}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
--- 24628,24634 ----
  implemented for VxWorks or LynxOS.
  
  @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{37d}@anchor{gnat_rm/the_gnat_library id71}@anchor{37e}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
*************** ports. It is not implemented for cross p
*** 24611,24617 ****
  in particular is not implemented for VxWorks or LynxOS.
  
  @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{37c}@anchor{gnat_rm/the_gnat_library id72}@anchor{37d}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
--- 24640,24646 ----
  in particular is not implemented for VxWorks or LynxOS.
  
  @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id72}@anchor{380}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
*************** library calls may cause this mode to be
*** 24625,24631 ****
  in this package can be used to reestablish the required mode.
  
  @node GNAT Formatted_String g-forstr ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Float_Control g-flocon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{37e}@anchor{gnat_rm/the_gnat_library id73}@anchor{37f}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
--- 24654,24660 ----
  in this package can be used to reestablish the required mode.
  
  @node GNAT Formatted_String g-forstr ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Float_Control g-flocon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id73}@anchor{382}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
*************** derived from Integer, Float or enumerati
*** 24640,24646 ****
  formatted string.
  
  @node GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Heap_Sort g-heasor ads,GNAT Formatted_String g-forstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-generic-fast-math-functions-g-gfmafu-ads}@anchor{380}@anchor{gnat_rm/the_gnat_library id74}@anchor{381}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
--- 24669,24675 ----
  formatted string.
  
  @node GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Heap_Sort g-heasor ads,GNAT Formatted_String g-forstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-generic-fast-math-functions-g-gfmafu-ads}@anchor{383}@anchor{gnat_rm/the_gnat_library id74}@anchor{384}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
*************** have a vector implementation that can be
*** 24658,24664 ****
  compiler when auto-vectorization is enabled.
  
  @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{382}@anchor{gnat_rm/the_gnat_library id75}@anchor{383}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
--- 24687,24693 ----
  compiler when auto-vectorization is enabled.
  
  @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id75}@anchor{386}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
*************** access-to-procedure values.  The algorit
*** 24672,24678 ****
  that performs approximately N*log(N) comparisons in the worst case.
  
  @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{384}@anchor{gnat_rm/the_gnat_library id76}@anchor{385}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
--- 24701,24707 ----
  that performs approximately N*log(N) comparisons in the worst case.
  
  @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{387}@anchor{gnat_rm/the_gnat_library id76}@anchor{388}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
*************** This differs from @code{GNAT.Heap_Sort}
*** 24688,24694 ****
  interface, but may be slightly more efficient.
  
  @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{386}@anchor{gnat_rm/the_gnat_library id77}@anchor{387}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
--- 24717,24723 ----
  interface, but may be slightly more efficient.
  
  @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{389}@anchor{gnat_rm/the_gnat_library id77}@anchor{38a}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24702,24708 ****
  multiple instantiations.
  
  @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{388}@anchor{gnat_rm/the_gnat_library id78}@anchor{389}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
--- 24731,24737 ----
  multiple instantiations.
  
  @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{38b}@anchor{gnat_rm/the_gnat_library id78}@anchor{38c}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
*************** data.  Provides two approaches, one a si
*** 24715,24721 ****
  allowing arbitrary dynamic hash tables.
  
  @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{38a}@anchor{gnat_rm/the_gnat_library id79}@anchor{38b}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
--- 24744,24750 ----
  allowing arbitrary dynamic hash tables.
  
  @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{38d}@anchor{gnat_rm/the_gnat_library id79}@anchor{38e}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
*************** Standard_Input, and writing characters,
*** 24731,24737 ****
  Standard_Output or Standard_Error.
  
  @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{38c}@anchor{gnat_rm/the_gnat_library id80}@anchor{38d}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
--- 24760,24766 ----
  Standard_Output or Standard_Error.
  
  @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{38f}@anchor{gnat_rm/the_gnat_library id80}@anchor{390}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
*************** Provides some auxiliary functions for us
*** 24745,24751 ****
  for whether a file exists, and functions for reading a line of text.
  
  @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{38e}@anchor{gnat_rm/the_gnat_library id81}@anchor{38f}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
--- 24774,24780 ----
  for whether a file exists, and functions for reading a line of text.
  
  @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{391}@anchor{gnat_rm/the_gnat_library id81}@anchor{392}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
*************** Provides a general interface for using f
*** 24759,24765 ****
  providing program level synchronization.
  
  @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{390}@anchor{gnat_rm/the_gnat_library id82}@anchor{391}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
--- 24788,24794 ----
  providing program level synchronization.
  
  @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{393}@anchor{gnat_rm/the_gnat_library id82}@anchor{394}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
*************** The original implementation of @code{Ada
*** 24771,24777 ****
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{392}@anchor{gnat_rm/the_gnat_library id83}@anchor{393}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
--- 24800,24806 ----
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{395}@anchor{gnat_rm/the_gnat_library id83}@anchor{396}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
*************** The original implementation of @code{Ada
*** 24783,24789 ****
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{394}@anchor{gnat_rm/the_gnat_library id84}@anchor{395}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
--- 24812,24818 ----
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{397}@anchor{gnat_rm/the_gnat_library id84}@anchor{398}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
*************** the HMAC-MD5 message authentication func
*** 24796,24802 ****
  FIPS PUB 198.
  
  @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{396}@anchor{gnat_rm/the_gnat_library id85}@anchor{397}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
--- 24825,24831 ----
  FIPS PUB 198.
  
  @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id85}@anchor{39a}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
*************** standard output or standard error files.
*** 24809,24815 ****
  output.
  
  @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{398}@anchor{gnat_rm/the_gnat_library id86}@anchor{399}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
--- 24838,24844 ----
  output.
  
  @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{39b}@anchor{gnat_rm/the_gnat_library id86}@anchor{39c}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
*************** various logging purposes, including dupl
*** 24823,24829 ****
  Ada 83 implementation dependent extensions.
  
  @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{39a}@anchor{gnat_rm/the_gnat_library id87}@anchor{39b}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
--- 24852,24858 ----
  Ada 83 implementation dependent extensions.
  
  @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{39d}@anchor{gnat_rm/the_gnat_library id87}@anchor{39e}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
*************** including a portable spawn procedure, an
*** 24839,24845 ****
  and error return codes.
  
  @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{39c}@anchor{gnat_rm/the_gnat_library id88}@anchor{39d}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
--- 24868,24874 ----
  and error return codes.
  
  @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{39f}@anchor{gnat_rm/the_gnat_library id88}@anchor{3a0}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
*************** hashcode are in the same order. These ha
*** 24857,24863 ****
  convenient for use with realtime applications.
  
  @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{39e}@anchor{gnat_rm/the_gnat_library id89}@anchor{39f}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
--- 24886,24892 ----
  convenient for use with realtime applications.
  
  @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id89}@anchor{3a2}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
*************** however NOT suitable for situations requ
*** 24871,24877 ****
  randomness.
  
  @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{275}@anchor{gnat_rm/the_gnat_library id90}@anchor{3a0}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
--- 24900,24906 ----
  randomness.
  
  @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{278}@anchor{gnat_rm/the_gnat_library id90}@anchor{3a3}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
*************** simplest of the three pattern matching p
*** 24887,24893 ****
  suitable for ‘file globbing’ applications.
  
  @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id91}@anchor{3a2}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
--- 24916,24922 ----
  suitable for ‘file globbing’ applications.
  
  @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{3a4}@anchor{gnat_rm/the_gnat_library id91}@anchor{3a5}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
*************** registry API, but at a lower level of ab
*** 24901,24907 ****
  package provided with the Win32Ada binding
  
  @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{3a3}@anchor{gnat_rm/the_gnat_library id92}@anchor{3a4}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
--- 24930,24936 ----
  package provided with the Win32Ada binding
  
  @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{3a6}@anchor{gnat_rm/the_gnat_library id92}@anchor{3a7}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
*************** from the original V7 style regular expre
*** 24916,24922 ****
  Henry Spencer (and binary compatible with this C library).
  
  @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{3a5}@anchor{gnat_rm/the_gnat_library id93}@anchor{3a6}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
--- 24945,24951 ----
  Henry Spencer (and binary compatible with this C library).
  
  @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{3a8}@anchor{gnat_rm/the_gnat_library id93}@anchor{3a9}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
*************** full content to be processed is not load
*** 24930,24936 ****
  this interface usable for large files or socket streams.
  
  @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{3a7}@anchor{gnat_rm/the_gnat_library id94}@anchor{3a8}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
--- 24959,24965 ----
  this interface usable for large files or socket streams.
  
  @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{3aa}@anchor{gnat_rm/the_gnat_library id94}@anchor{3ab}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
*************** Provides the capability to query the hig
*** 24942,24948 ****
  secondary stack.
  
  @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{3a9}@anchor{gnat_rm/the_gnat_library id95}@anchor{3aa}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
--- 24971,24977 ----
  secondary stack.
  
  @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{3ac}@anchor{gnat_rm/the_gnat_library id95}@anchor{3ad}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
*************** secondary stack.
*** 24953,24959 ****
  Provides classic counting and binary semaphores using protected types.
  
  @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{3ab}@anchor{gnat_rm/the_gnat_library id96}@anchor{3ac}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
--- 24982,24988 ----
  Provides classic counting and binary semaphores using protected types.
  
  @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{3ae}@anchor{gnat_rm/the_gnat_library id96}@anchor{3af}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
*************** Provides a simple interface to send and
*** 24965,24971 ****
  port. This is only supported on GNU/Linux and Windows.
  
  @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{3ad}@anchor{gnat_rm/the_gnat_library id97}@anchor{3ae}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
--- 24994,25000 ----
  port. This is only supported on GNU/Linux and Windows.
  
  @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{3b0}@anchor{gnat_rm/the_gnat_library id97}@anchor{3b1}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
*************** and RFC 3174, and the HMAC-SHA1 message
*** 24978,24984 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{3af}@anchor{gnat_rm/the_gnat_library id98}@anchor{3b0}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
--- 25007,25013 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{3b2}@anchor{gnat_rm/the_gnat_library id98}@anchor{3b3}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
*************** and the HMAC-SHA224 message authenticati
*** 24991,24997 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{3b1}@anchor{gnat_rm/the_gnat_library id99}@anchor{3b2}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
--- 25020,25026 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{3b4}@anchor{gnat_rm/the_gnat_library id99}@anchor{3b5}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
*************** and the HMAC-SHA256 message authenticati
*** 25004,25010 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{3b3}@anchor{gnat_rm/the_gnat_library id100}@anchor{3b4}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
--- 25033,25039 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{3b6}@anchor{gnat_rm/the_gnat_library id100}@anchor{3b7}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
*************** and the HMAC-SHA384 message authenticati
*** 25017,25023 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{3b5}@anchor{gnat_rm/the_gnat_library id101}@anchor{3b6}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
--- 25046,25052 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{3b8}@anchor{gnat_rm/the_gnat_library id101}@anchor{3b9}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
*************** and the HMAC-SHA512 message authenticati
*** 25030,25036 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{3b7}@anchor{gnat_rm/the_gnat_library id102}@anchor{3b8}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
--- 25059,25065 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{3ba}@anchor{gnat_rm/the_gnat_library id102}@anchor{3bb}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
*************** Provides the ability to manipulate the b
*** 25042,25048 ****
  targets.
  
  @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{3b9}@anchor{gnat_rm/the_gnat_library id103}@anchor{3ba}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
--- 25071,25077 ----
  targets.
  
  @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{3bc}@anchor{gnat_rm/the_gnat_library id103}@anchor{3bd}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
*************** on all native GNAT ports and on VxWorks
*** 25057,25063 ****
  the LynxOS cross port.
  
  @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{3bb}@anchor{gnat_rm/the_gnat_library id104}@anchor{3bc}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
--- 25086,25092 ----
  the LynxOS cross port.
  
  @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{3be}@anchor{gnat_rm/the_gnat_library id104}@anchor{3bf}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
*************** subprograms yielding the date and time o
*** 25071,25077 ****
  C macros @code{__DATE__} and @code{__TIME__})
  
  @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{3bd}@anchor{gnat_rm/the_gnat_library id105}@anchor{3be}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
--- 25100,25106 ----
  C macros @code{__DATE__} and @code{__TIME__})
  
  @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{3c0}@anchor{gnat_rm/the_gnat_library id105}@anchor{3c1}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
*************** Provides a function for determining whet
*** 25083,25089 ****
  near misspelling of another string.
  
  @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{3bf}@anchor{gnat_rm/the_gnat_library id106}@anchor{3c0}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
--- 25112,25118 ----
  near misspelling of another string.
  
  @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{3c2}@anchor{gnat_rm/the_gnat_library id106}@anchor{3c3}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
*************** determining whether one string is a plau
*** 25096,25102 ****
  string.
  
  @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{3c1}@anchor{gnat_rm/the_gnat_library id107}@anchor{3c2}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
--- 25125,25131 ----
  string.
  
  @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{3c4}@anchor{gnat_rm/the_gnat_library id107}@anchor{3c5}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
*************** the SNOBOL4 dynamic pattern construction
*** 25112,25118 ****
  efficient algorithm developed by Robert Dewar for the SPITBOL system.
  
  @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{3c3}@anchor{gnat_rm/the_gnat_library id108}@anchor{3c4}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
--- 25141,25147 ----
  efficient algorithm developed by Robert Dewar for the SPITBOL system.
  
  @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{3c6}@anchor{gnat_rm/the_gnat_library id108}@anchor{3c7}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
*************** useful for constructing arbitrary mappin
*** 25127,25133 ****
  the SNOBOL4 TABLE function.
  
  @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{3c5}@anchor{gnat_rm/the_gnat_library id109}@anchor{3c6}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
--- 25156,25162 ----
  the SNOBOL4 TABLE function.
  
  @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{3c8}@anchor{gnat_rm/the_gnat_library id109}@anchor{3c9}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
*************** for type @code{Standard.Boolean}, giving
*** 25142,25148 ****
  string values.
  
  @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3c7}@anchor{gnat_rm/the_gnat_library id110}@anchor{3c8}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
--- 25171,25177 ----
  string values.
  
  @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3ca}@anchor{gnat_rm/the_gnat_library id110}@anchor{3cb}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
*************** for type @code{Standard.Integer}, giving
*** 25159,25165 ****
  from string to integer values.
  
  @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3c9}@anchor{gnat_rm/the_gnat_library id111}@anchor{3ca}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
--- 25188,25194 ----
  from string to integer values.
  
  @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3cc}@anchor{gnat_rm/the_gnat_library id111}@anchor{3cd}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
*************** a variable length string type, giving an
*** 25176,25182 ****
  maps from strings to strings.
  
  @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3cb}@anchor{gnat_rm/the_gnat_library id112}@anchor{3cc}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
--- 25205,25211 ----
  maps from strings to strings.
  
  @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3ce}@anchor{gnat_rm/the_gnat_library id112}@anchor{3cf}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
*************** targets.  It exposes vector component ty
*** 25188,25194 ****
  introduction to the binding contents and use.
  
  @node GNAT SSE Vector_Types g-ssvety ads,GNAT String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3cd}@anchor{gnat_rm/the_gnat_library id113}@anchor{3ce}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
--- 25217,25223 ----
  introduction to the binding contents and use.
  
  @node GNAT SSE Vector_Types g-ssvety ads,GNAT String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3d0}@anchor{gnat_rm/the_gnat_library id113}@anchor{3d1}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
*************** introduction to the binding contents and
*** 25197,25203 ****
  SSE vector types for use with SSE related intrinsics.
  
  @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3cf}@anchor{gnat_rm/the_gnat_library id114}@anchor{3d0}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
--- 25226,25232 ----
  SSE vector types for use with SSE related intrinsics.
  
  @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3d2}@anchor{gnat_rm/the_gnat_library id114}@anchor{3d3}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
*************** Provides a generic hash function working
*** 25209,25215 ****
  type and the hash result type are parameters.
  
  @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3d1}@anchor{gnat_rm/the_gnat_library id115}@anchor{3d2}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
--- 25238,25244 ----
  type and the hash result type are parameters.
  
  @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3d4}@anchor{gnat_rm/the_gnat_library id115}@anchor{3d5}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
*************** Common String access types and related s
*** 25219,25225 ****
  defines a string access and an array of string access types.
  
  @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3d3}@anchor{gnat_rm/the_gnat_library id116}@anchor{3d4}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
--- 25248,25254 ----
  defines a string access and an array of string access types.
  
  @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3d6}@anchor{gnat_rm/the_gnat_library id116}@anchor{3d7}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
*************** to the resulting slices. This package is
*** 25233,25239 ****
  @code{GNAT.Array_Split}.
  
  @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3d5}@anchor{gnat_rm/the_gnat_library id117}@anchor{3d6}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
--- 25262,25268 ----
  @code{GNAT.Array_Split}.
  
  @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3d8}@anchor{gnat_rm/the_gnat_library id117}@anchor{3d9}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
*************** while an instantiation of @code{GNAT.Dyn
*** 25253,25259 ****
  used to define dynamic instances of the table.
  
  @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3d7}@anchor{gnat_rm/the_gnat_library id118}@anchor{3d8}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
--- 25282,25288 ----
  used to define dynamic instances of the table.
  
  @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3da}@anchor{gnat_rm/the_gnat_library id118}@anchor{3db}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
*************** single global task lock.  Appropriate fo
*** 25270,25276 ****
  between tasks is very rarely expected.
  
  @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3d9}@anchor{gnat_rm/the_gnat_library id119}@anchor{3da}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
--- 25299,25305 ----
  between tasks is very rarely expected.
  
  @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3dc}@anchor{gnat_rm/the_gnat_library id119}@anchor{3dd}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
*************** represents the current date and time in
*** 25285,25291 ****
  routine with minimal code and there are no dependencies on any other unit.
  
  @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3db}@anchor{gnat_rm/the_gnat_library id120}@anchor{3dc}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
--- 25314,25320 ----
  routine with minimal code and there are no dependencies on any other unit.
  
  @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3de}@anchor{gnat_rm/the_gnat_library id120}@anchor{3df}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
*************** further details if your program has thre
*** 25302,25308 ****
  environment which then accesses Ada code.
  
  @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3dd}@anchor{gnat_rm/the_gnat_library id121}@anchor{3de}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
--- 25331,25337 ----
  environment which then accesses Ada code.
  
  @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3e0}@anchor{gnat_rm/the_gnat_library id121}@anchor{3e1}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
*************** Provides a facility for obtaining non-sy
*** 25314,25320 ****
  in various debugging situations.
  
  @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-utf_32 ads,GNAT Traceback g-traceb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3df}@anchor{gnat_rm/the_gnat_library id122}@anchor{3e0}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
--- 25343,25349 ----
  in various debugging situations.
  
  @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-utf_32 ads,GNAT Traceback g-traceb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3e2}@anchor{gnat_rm/the_gnat_library id122}@anchor{3e3}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
*************** in various debugging situations.
*** 25323,25329 ****
  @geindex Trace back facilities
  
  @node GNAT UTF_32 g-utf_32 ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-g-utf-32-ads}@anchor{3e1}@anchor{gnat_rm/the_gnat_library id123}@anchor{3e2}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
--- 25352,25358 ----
  @geindex Trace back facilities
  
  @node GNAT UTF_32 g-utf_32 ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-g-utf-32-ads}@anchor{3e4}@anchor{gnat_rm/the_gnat_library id123}@anchor{3e5}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
*************** lower case to upper case fold routine co
*** 25342,25348 ****
  the Ada 2005 rules for identifier equivalence.
  
  @node GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-utf_32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-spelling-checker-g-u3spch-ads}@anchor{3e3}@anchor{gnat_rm/the_gnat_library id124}@anchor{3e4}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
--- 25371,25377 ----
  the Ada 2005 rules for identifier equivalence.
  
  @node GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-utf_32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-spelling-checker-g-u3spch-ads}@anchor{3e6}@anchor{gnat_rm/the_gnat_library id124}@anchor{3e7}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
*************** near misspelling of another wide wide st
*** 25355,25361 ****
  using the UTF_32_String type defined in System.Wch_Cnv.
  
  @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3e5}@anchor{gnat_rm/the_gnat_library id125}@anchor{3e6}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
--- 25384,25390 ----
  using the UTF_32_String type defined in System.Wch_Cnv.
  
  @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3e8}@anchor{gnat_rm/the_gnat_library id125}@anchor{3e9}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
*************** Provides a function for determining whet
*** 25367,25373 ****
  near misspelling of another wide string.
  
  @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3e7}@anchor{gnat_rm/the_gnat_library id126}@anchor{3e8}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
--- 25396,25402 ----
  near misspelling of another wide string.
  
  @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3ea}@anchor{gnat_rm/the_gnat_library id126}@anchor{3eb}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25381,25387 ****
  @code{GNAT.Array_Split}.
  
  @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3e9}@anchor{gnat_rm/the_gnat_library id127}@anchor{3ea}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
--- 25410,25416 ----
  @code{GNAT.Array_Split}.
  
  @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3ec}@anchor{gnat_rm/the_gnat_library id127}@anchor{3ed}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
*************** Provides a function for determining whet
*** 25393,25399 ****
  near misspelling of another wide wide string.
  
  @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3eb}@anchor{gnat_rm/the_gnat_library id128}@anchor{3ec}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
--- 25422,25428 ----
  near misspelling of another wide wide string.
  
  @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3ee}@anchor{gnat_rm/the_gnat_library id128}@anchor{3ef}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25407,25413 ****
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id129}@anchor{3ed}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3ee}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
--- 25436,25442 ----
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id129}@anchor{3f0}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3f1}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
*************** for use with either manually or automati
*** 25418,25424 ****
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3ef}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3f0}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
--- 25447,25453 ----
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3f2}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3f3}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
*************** This package is a binding for the most c
*** 25431,25437 ****
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3f1}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3f2}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
--- 25460,25466 ----
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3f4}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3f5}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
*************** from a packed decimal format compatible
*** 25446,25452 ****
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3f3}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3f4}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
--- 25475,25481 ----
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3f6}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3f7}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
*************** mainframes.
*** 25460,25466 ****
  This package provides a limited binding to the VxWorks API.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3f5}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3f6}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
--- 25489,25495 ----
  This package provides a limited binding to the VxWorks API.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3f8}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3f9}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
*************** function codes. A particular use of this
*** 25483,25489 ****
  to enable the use of Get_Immediate under VxWorks.
  
  @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3f7}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3f8}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
--- 25512,25518 ----
  to enable the use of Get_Immediate under VxWorks.
  
  @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3fa}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3fb}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
*************** function that gives an (implementation d
*** 25499,25505 ****
  string which identifies an address.
  
  @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id135}@anchor{3f9}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3fa}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
--- 25528,25534 ----
  string which identifies an address.
  
  @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id135}@anchor{3fc}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3fd}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
*************** by an run-time assertion failure, as wel
*** 25515,25521 ****
  is used internally to raise this assertion.
  
  @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id136}@anchor{3fb}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3fc}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
--- 25544,25550 ----
  is used internally to raise this assertion.
  
  @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id136}@anchor{3fe}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3ff}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
*************** on most targets, including all Alpha, AA
*** 25529,25535 ****
  x86, and x86_64 platforms.
  
  @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id137}@anchor{3fd}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{3fe}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
--- 25558,25564 ----
  x86, and x86_64 platforms.
  
  @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id137}@anchor{400}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{401}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
*************** calls to this unit may be made for low l
*** 25547,25553 ****
  example see the body of @code{GNAT.Tables}).
  
  @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id138}@anchor{3ff}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{400}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
--- 25576,25582 ----
  example see the body of @code{GNAT.Tables}).
  
  @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id138}@anchor{402}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{403}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25560,25566 ****
  technically an implementation-defined addition).
  
  @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id139}@anchor{401}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{402}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
--- 25589,25595 ----
  technically an implementation-defined addition).
  
  @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id139}@anchor{404}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{405}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25573,25579 ****
  technically an implementation-defined addition).
  
  @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id140}@anchor{403}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{404}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
--- 25602,25608 ----
  technically an implementation-defined addition).
  
  @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id140}@anchor{406}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{407}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
*************** is used primarily in a distribution cont
*** 25586,25592 ****
  with @code{GLADE}.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id141}@anchor{405}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{406}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
--- 25615,25621 ----
  with @code{GLADE}.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id141}@anchor{408}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{409}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
*************** declared. It uses malloc/free to allocat
*** 25603,25609 ****
  do any automatic reclamation.
  
  @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{407}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{408}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
--- 25632,25638 ----
  do any automatic reclamation.
  
  @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{40a}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{40b}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
*************** a list of allocated blocks, so that all
*** 25620,25626 ****
  be freed automatically when the pool is finalized.
  
  @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id143}@anchor{409}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{40a}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
--- 25649,25655 ----
  be freed automatically when the pool is finalized.
  
  @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id143}@anchor{40c}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{40d}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
*************** compiler determined information on which
*** 25636,25642 ****
  are violated by one or more packages in the partition.
  
  @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id144}@anchor{40b}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{40c}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
--- 25665,25671 ----
  are violated by one or more packages in the partition.
  
  @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id144}@anchor{40e}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{40f}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
*************** since the necessary instantiation is inc
*** 25652,25658 ****
  package System.Restrictions.
  
  @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id145}@anchor{40d}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{40e}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
--- 25681,25687 ----
  package System.Restrictions.
  
  @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id145}@anchor{410}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{411}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
*************** stream attributes are applied to string
*** 25668,25674 ****
  package can be used directly by application programs.
  
  @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id146}@anchor{40f}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{410}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
--- 25697,25703 ----
  package can be used directly by application programs.
  
  @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id146}@anchor{412}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{413}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
*************** also contains some related definitions f
*** 25681,25687 ****
  used by the compiler in connection with packed array types.
  
  @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id147}@anchor{411}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{412}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
--- 25710,25716 ----
  used by the compiler in connection with packed array types.
  
  @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id147}@anchor{414}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{415}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
*************** encoding method.  It uses definitions in
*** 25702,25708 ****
  package @code{System.Wch_Con}.
  
  @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id148}@anchor{413}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{414}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
--- 25731,25737 ----
  package @code{System.Wch_Con}.
  
  @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id148}@anchor{416}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{417}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
*************** in ordinary strings.  These definitions
*** 25714,25720 ****
  the package @code{System.Wch_Cnv}.
  
  @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top
! @anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{415}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{416}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
--- 25743,25749 ----
  the package @code{System.Wch_Cnv}.
  
  @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top
! @anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{418}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{419}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
*************** provided.
*** 25732,25738 ****
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{417}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{418}
  @section Interfacing to C
  
  
--- 25761,25767 ----
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{41a}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{41b}
  @section Interfacing to C
  
  
*************** of the length corresponding to the @code
*** 25872,25878 ****
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{49}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{419}
  @section Interfacing to C++
  
  
--- 25901,25907 ----
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{49}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{41c}
  @section Interfacing to C++
  
  
*************** builds an opaque @code{Type_Info_Ptr} to
*** 26089,26095 ****
  object at a given @code{System.Address}.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{41a}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{41b}
  @section Interfacing to COBOL
  
  
--- 26118,26124 ----
  object at a given @code{System.Address}.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{41d}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{41e}
  @section Interfacing to COBOL
  
  
*************** Interfacing to COBOL is achieved as desc
*** 26097,26103 ****
  the Ada Reference Manual.
  
  @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{41c}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{41d}
  @section Interfacing to Fortran
  
  
--- 26126,26132 ----
  the Ada Reference Manual.
  
  @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{41f}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{420}
  @section Interfacing to Fortran
  
  
*************** multi-dimensional array causes the array
*** 26107,26113 ****
  order as required for convenient interface to Fortran.
  
  @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{41e}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{41f}
  @section Interfacing to non-GNAT Ada code
  
  
--- 26136,26142 ----
  order as required for convenient interface to Fortran.
  
  @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{421}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{422}
  @section Interfacing to non-GNAT Ada code
  
  
*************** values or simple record types without va
*** 26131,26137 ****
  types with fixed bounds.
  
  @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top
! @anchor{gnat_rm/specialized_needs_annexes doc}@anchor{420}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{421}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
--- 26160,26166 ----
  types with fixed bounds.
  
  @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top
! @anchor{gnat_rm/specialized_needs_annexes doc}@anchor{423}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{424}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
*************** in Ada 2005) is fully implemented.
*** 26172,26178 ****
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{422}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{423}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
--- 26201,26207 ----
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{425}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{426}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
*************** facilities.
*** 26191,26197 ****
  @end menu
  
  @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{424}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{17d}
  @section Machine Code Insertions
  
  
--- 26220,26226 ----
  @end menu
  
  @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{427}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{180}
  @section Machine Code Insertions
  
  
*************** according to normal visibility rules. In
*** 26359,26365 ****
  qualification is required.
  
  @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{425}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{426}
  @section GNAT Implementation of Tasking
  
  
--- 26388,26394 ----
  qualification is required.
  
  @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{428}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{429}
  @section GNAT Implementation of Tasking
  
  
*************** to compliance with the Real-Time Systems
*** 26375,26381 ****
  @end menu
  
  @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{427}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{428}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
--- 26404,26410 ----
  @end menu
  
  @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{42a}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{42b}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
*************** support this functionality when the pare
*** 26444,26450 ****
  @geindex Forking a new process
  
  @node Ensuring Compliance with the Real-Time Annex,Support for Locking Policies,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{429}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{42a}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
--- 26473,26479 ----
  @geindex Forking a new process
  
  @node Ensuring Compliance with the Real-Time Annex,Support for Locking Policies,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{42d}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
*************** placed at the end.
*** 26495,26501 ****
  @c Support_for_Locking_Policies
  
  @node Support for Locking Policies,,Ensuring Compliance with the Real-Time Annex,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features support-for-locking-policies}@anchor{42b}
  @subsection Support for Locking Policies
  
  
--- 26524,26530 ----
  @c Support_for_Locking_Policies
  
  @node Support for Locking Policies,,Ensuring Compliance with the Real-Time Annex,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features support-for-locking-policies}@anchor{42e}
  @subsection Support for Locking Policies
  
  
*************** then ceiling locking is used.
*** 26529,26535 ****
  Otherwise, the @code{Ceiling_Locking} policy is ignored.
  
  @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{42d}
  @section GNAT Implementation of Shared Passive Packages
  
  
--- 26558,26564 ----
  Otherwise, the @code{Ceiling_Locking} policy is ignored.
  
  @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{42f}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{430}
  @section GNAT Implementation of Shared Passive Packages
  
  
*************** This is used to provide the required loc
*** 26627,26633 ****
  semantics for proper protected object synchronization.
  
  @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{42e}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{42f}
  @section Code Generation for Array Aggregates
  
  
--- 26656,26662 ----
  semantics for proper protected object synchronization.
  
  @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{431}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{432}
  @section Code Generation for Array Aggregates
  
  
*************** component values and static subtypes als
*** 26658,26664 ****
  @end menu
  
  @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{430}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{431}
  @subsection Static constant aggregates with static bounds
  
  
--- 26687,26693 ----
  @end menu
  
  @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{433}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{434}
  @subsection Static constant aggregates with static bounds
  
  
*************** Zero2: constant two_dim := (others => (o
*** 26705,26711 ****
  @end example
  
  @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{432}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{433}
  @subsection Constant aggregates with unconstrained nominal types
  
  
--- 26734,26740 ----
  @end example
  
  @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{435}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{436}
  @subsection Constant aggregates with unconstrained nominal types
  
  
*************** Cr_Unc : constant One_Unc := (12,24,36);
*** 26720,26726 ****
  @end example
  
  @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{434}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{435}
  @subsection Aggregates with static bounds
  
  
--- 26749,26755 ----
  @end example
  
  @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{437}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{438}
  @subsection Aggregates with static bounds
  
  
*************** end loop;
*** 26748,26754 ****
  @end example
  
  @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{436}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{437}
  @subsection Aggregates with nonstatic bounds
  
  
--- 26777,26783 ----
  @end example
  
  @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{439}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{43a}
  @subsection Aggregates with nonstatic bounds
  
  
*************** have to be applied to sub-arrays individ
*** 26759,26765 ****
  compatible subtypes.
  
  @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{438}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{439}
  @subsection Aggregates in assignment statements
  
  
--- 26788,26794 ----
  compatible subtypes.
  
  @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{43b}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{43c}
  @subsection Aggregates in assignment statements
  
  
*************** a temporary (created either by the front
*** 26801,26807 ****
  that temporary will be copied onto the target.
  
  @node The Size of Discriminated Records with Default Discriminants,Image Values For Nonscalar Types,Code Generation for Array Aggregates,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{43a}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{43b}
  @section The Size of Discriminated Records with Default Discriminants
  
  
--- 26830,26836 ----
  that temporary will be copied onto the target.
  
  @node The Size of Discriminated Records with Default Discriminants,Image Values For Nonscalar Types,Code Generation for Array Aggregates,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{43d}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{43e}
  @section The Size of Discriminated Records with Default Discriminants
  
  
*************** say) must be consistent, so it is impera
*** 26881,26887 ****
  remain invariant.
  
  @node Image Values For Nonscalar Types,Strict Conformance to the Ada Reference Manual,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{43c}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{43d}
  @section Image Values For Nonscalar Types
  
  
--- 26910,26916 ----
  remain invariant.
  
  @node Image Values For Nonscalar Types,Strict Conformance to the Ada Reference Manual,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{43f}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{440}
  @section Image Values For Nonscalar Types
  
  
*************** control of image text is required for so
*** 26901,26907 ****
  explicitly specified.
  
  @node Strict Conformance to the Ada Reference Manual,,Image Values For Nonscalar Types,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id15}@anchor{43e}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{43f}
  @section Strict Conformance to the Ada Reference Manual
  
  
--- 26930,26936 ----
  explicitly specified.
  
  @node Strict Conformance to the Ada Reference Manual,,Image Values For Nonscalar Types,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id15}@anchor{441}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{442}
  @section Strict Conformance to the Ada Reference Manual
  
  
*************** behavior (although at the cost of a sign
*** 26928,26934 ****
  infinite and NaN values are properly generated.
  
  @node Implementation of Ada 2012 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{440}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{441}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}
  @chapter Implementation of Ada 2012 Features
  
  
--- 26957,26963 ----
  infinite and NaN values are properly generated.
  
  @node Implementation of Ada 2012 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{443}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{444}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}
  @chapter Implementation of Ada 2012 Features
  
  
*************** RM References:  4.03.01 (17)
*** 29094,29100 ****
  @end itemize
  
  @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2012 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{442}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{443}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{444}
  @chapter GNAT language extensions
  
  
--- 29123,29129 ----
  @end itemize
  
  @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2012 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{445}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{446}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{447}
  @chapter GNAT language extensions
  
  
*************** These features might be removed or heavi
*** 29126,29132 ****
  @end menu
  
  @node How to activate the extended GNAT Ada superset,Curated Extensions,,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions how-to-activate-the-extended-gnat-ada-superset}@anchor{445}
  @section How to activate the extended GNAT Ada superset
  
  
--- 29155,29161 ----
  @end menu
  
  @node How to activate the extended GNAT Ada superset,Curated Extensions,,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions how-to-activate-the-extended-gnat-ada-superset}@anchor{448}
  @section How to activate the extended GNAT Ada superset
  
  
*************** for use in playground experiments.
*** 29167,29173 ****
  @end cartouche
  
  @node Curated Extensions,Experimental Language Extensions,How to activate the extended GNAT Ada superset,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions curated-extensions}@anchor{446}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{6a}
  @section Curated Extensions
  
  
--- 29196,29202 ----
  @end cartouche
  
  @node Curated Extensions,Experimental Language Extensions,How to activate the extended GNAT Ada superset,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions curated-extensions}@anchor{449}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{6a}
  @section Curated Extensions
  
  
*************** Features activated via @code{-gnatX} or
*** 29188,29194 ****
  @end menu
  
  @node Local Declarations Without Block,Deep delta Aggregates,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{447}
  @subsection Local Declarations Without Block
  
  
--- 29217,29223 ----
  @end menu
  
  @node Local Declarations Without Block,Deep delta Aggregates,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{44a}
  @subsection Local Declarations Without Block
  
  
*************** And as such the second `@w{`}A`@w{`} dec
*** 29281,29287 ****
  @end cartouche
  
  @node Deep delta Aggregates,Fixed lower bounds for array types and subtypes,Local Declarations Without Block,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions deep-delta-aggregates}@anchor{448}
  @subsection Deep delta Aggregates
  
  
--- 29310,29316 ----
  @end cartouche
  
  @node Deep delta Aggregates,Fixed lower bounds for array types and subtypes,Local Declarations Without Block,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions deep-delta-aggregates}@anchor{44b}
  @subsection Deep delta Aggregates
  
  
*************** The syntax of delta aggregates in the ex
*** 29303,29309 ****
  @end menu
  
  @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{449}
  @subsubsection Syntax
  
  
--- 29332,29338 ----
  @end menu
  
  @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{44c}
  @subsubsection Syntax
  
  
*************** array_subcomponent_choice ::=
*** 29349,29355 ****
  @end example
  
  @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{44a}
  @subsubsection Legality Rules
  
  
--- 29378,29384 ----
  @end example
  
  @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{44d}
  @subsubsection Legality Rules
  
  
*************** the object denoted by the base_expressio
*** 29386,29392 ****
  @end enumerate
  
  @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{44b}
  @subsubsection Dynamic Semantics
  
  
--- 29415,29421 ----
  @end enumerate
  
  @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{44e}
  @subsubsection Dynamic Semantics
  
  
*************** and assigned to the corresponding subcom
*** 29443,29449 ****
  @end itemize
  
  @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{44c}
  @subsubsection Examples
  
  
--- 29472,29478 ----
  @end itemize
  
  @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{44f}
  @subsubsection Examples
  
  
*************** end;
*** 29471,29477 ****
  @end example
  
  @node Fixed lower bounds for array types and subtypes,Prefixed-view notation for calls to primitive subprograms of untagged types,Deep delta Aggregates,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions fixed-lower-bounds-for-array-types-and-subtypes}@anchor{44d}
  @subsection Fixed lower bounds for array types and subtypes
  
  
--- 29500,29506 ----
  @end example
  
  @node Fixed lower bounds for array types and subtypes,Prefixed-view notation for calls to primitive subprograms of untagged types,Deep delta Aggregates,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions fixed-lower-bounds-for-array-types-and-subtypes}@anchor{450}
  @subsection Fixed lower bounds for array types and subtypes
  
  
*************** lower bound of unconstrained array forma
*** 29522,29528 ****
  ranges with static fixed lower bounds.
  
  @node Prefixed-view notation for calls to primitive subprograms of untagged types,Expression defaults for generic formal functions,Fixed lower bounds for array types and subtypes,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions prefixed-view-notation-for-calls-to-primitive-subprograms-of-untagged-types}@anchor{44e}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
--- 29551,29557 ----
  ranges with static fixed lower bounds.
  
  @node Prefixed-view notation for calls to primitive subprograms of untagged types,Expression defaults for generic formal functions,Fixed lower bounds for array types and subtypes,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions prefixed-view-notation-for-calls-to-primitive-subprograms-of-untagged-types}@anchor{451}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
*************** pragma Assert (V.Nth_Element(1) = 42);
*** 29572,29578 ****
  @end example
  
  @node Expression defaults for generic formal functions,String interpolation,Prefixed-view notation for calls to primitive subprograms of untagged types,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions expression-defaults-for-generic-formal-functions}@anchor{44f}
  @subsection Expression defaults for generic formal functions
  
  
--- 29601,29607 ----
  @end example
  
  @node Expression defaults for generic formal functions,String interpolation,Prefixed-view notation for calls to primitive subprograms of untagged types,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions expression-defaults-for-generic-formal-functions}@anchor{452}
  @subsection Expression defaults for generic formal functions
  
  
*************** If the default is used (i.e. there is no
*** 29603,29609 ****
  then calls to Copy in the instance will simply return Item.
  
  @node String interpolation,Constrained attribute for generic objects,Expression defaults for generic formal functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions string-interpolation}@anchor{450}
  @subsection String interpolation
  
  
--- 29632,29638 ----
  then calls to Copy in the instance will simply return Item.
  
  @node String interpolation,Constrained attribute for generic objects,Expression defaults for generic formal functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions string-interpolation}@anchor{453}
  @subsection String interpolation
  
  
*************** a double quote is " and an open brace is
*** 29770,29776 ****
  @end example
  
  @node Constrained attribute for generic objects,Static aspect on intrinsic functions,String interpolation,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions constrained-attribute-for-generic-objects}@anchor{451}
  @subsection Constrained attribute for generic objects
  
  
--- 29799,29805 ----
  @end example
  
  @node Constrained attribute for generic objects,Static aspect on intrinsic functions,String interpolation,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions constrained-attribute-for-generic-objects}@anchor{454}
  @subsection Constrained attribute for generic objects
  
  
*************** The @code{Constrained} attribute is perm
*** 29778,29784 ****
  result indicates whether the corresponding actual is constrained.
  
  @node Static aspect on intrinsic functions,First Controlling Parameter,Constrained attribute for generic objects,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions static-aspect-on-intrinsic-functions}@anchor{452}
  @subsection @code{Static} aspect on intrinsic functions
  
  
--- 29807,29813 ----
  result indicates whether the corresponding actual is constrained.
  
  @node Static aspect on intrinsic functions,First Controlling Parameter,Constrained attribute for generic objects,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions static-aspect-on-intrinsic-functions}@anchor{455}
  @subsection @code{Static} aspect on intrinsic functions
  
  
*************** and the compiler will evaluate some of t
*** 29787,29793 ****
  particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
  
  @node First Controlling Parameter,,Static aspect on intrinsic functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{453}
  @subsection First Controlling Parameter
  
  
--- 29816,29822 ----
  particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
  
  @node First Controlling Parameter,,Static aspect on intrinsic functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{456}
  @subsection First Controlling Parameter
  
  
*************** The result of a function is never a cont
*** 29887,29893 ****
  @end itemize
  
  @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6b}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{454}
  @section Experimental Language Extensions
  
  
--- 29916,29922 ----
  @end itemize
  
  @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6b}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{457}
  @section Experimental Language Extensions
  
  
*************** Features activated via @code{-gnatX0} or
*** 29896,29901 ****
--- 29925,29931 ----
  
  @menu
  * Conditional when constructs:: 
+ * Implicit With:: 
  * Storage Model:: 
  * Attribute Super:: 
  * Simpler Accessibility Model:: 
*************** Features activated via @code{-gnatX0} or
*** 29909,29916 ****
  
  @end menu
  
! @node Conditional when constructs,Storage Model,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{455}
  @subsection Conditional when constructs
  
  
--- 29939,29946 ----
  
  @end menu
  
! @node Conditional when constructs,Implicit With,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{458}
  @subsection Conditional when constructs
  
  
*************** begin
*** 29978,29985 ****
  end;
  @end example
  
! @node Storage Model,Attribute Super,Conditional when constructs,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{456}
  @subsection Storage Model
  
  
--- 30008,30032 ----
  end;
  @end example
  
! @node Implicit With,Storage Model,Conditional when constructs,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{459}
! @subsection Implicit With
! 
! 
! This feature allows a standalone @code{use} clause in the context clause of a
! compilation unit to imply an implicit @code{with} of the same library unit where
! an equivalent @code{with} clause would be allowed.
! 
! @example
! use Ada.Text_IO;
! procedure Main is
! begin
!    Put_Line ("Hello");
! end;
! @end example
! 
! @node Storage Model,Attribute Super,Implicit With,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{45a}
  @subsection Storage Model
  
  
*************** memory models, in particular to support
*** 29996,30002 ****
  @end menu
  
  @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{457}
  @subsubsection Aspect Storage_Model_Type
  
  
--- 30043,30049 ----
  @end menu
  
  @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{45b}
  @subsubsection Aspect Storage_Model_Type
  
  
*************** end CUDA_Memory;
*** 30130,30136 ****
  @end example
  
  @node Aspect Designated_Storage_Model,Legacy Storage Pools,Aspect Storage_Model_Type,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{458}
  @subsubsection Aspect Designated_Storage_Model
  
  
--- 30177,30183 ----
  @end example
  
  @node Aspect Designated_Storage_Model,Legacy Storage Pools,Aspect Storage_Model_Type,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{45c}
  @subsubsection Aspect Designated_Storage_Model
  
  
*************** begin
*** 30208,30214 ****
  @end example
  
  @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
! @anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{459}
  @subsubsection Legacy Storage Pools
  
  
--- 30255,30261 ----
  @end example
  
  @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
! @anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{45d}
  @subsubsection Legacy Storage Pools
  
  
*************** type Acc is access Integer_Array with St
*** 30259,30265 ****
  can still be accepted as a shortcut for the new syntax.
  
  @node Attribute Super,Simpler Accessibility Model,Storage Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{45a}
  @subsection Attribute Super
  
  
--- 30306,30312 ----
  can still be accepted as a shortcut for the new syntax.
  
  @node Attribute Super,Simpler Accessibility Model,Storage Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{45e}
  @subsection Attribute Super
  
  
*************** end;
*** 30294,30300 ****
  @end example
  
  @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{45b}
  @subsection Simpler Accessibility Model
  
  
--- 30341,30347 ----
  @end example
  
  @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{45f}
  @subsection Simpler Accessibility Model
  
  
*************** All of the refined rules are compatible
*** 30325,30331 ****
  @end menu
  
  @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{45c}
  @subsubsection Stand-alone objects
  
  
--- 30372,30378 ----
  @end menu
  
  @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{460}
  @subsubsection Stand-alone objects
  
  
*************** of the RM 4.6 rule “The accessibility
*** 30373,30379 ****
  statically deeper than that of the target type …”.
  
  @node Subprogram parameters,Function results,Stand-alone objects,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{45d}
  @subsubsection Subprogram parameters
  
  
--- 30420,30426 ----
  statically deeper than that of the target type …”.
  
  @node Subprogram parameters,Function results,Stand-alone objects,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{461}
  @subsubsection Subprogram parameters
  
  
*************** end;
*** 30466,30472 ****
  @end example
  
  @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{45e}
  @subsubsection Function results
  
  
--- 30513,30519 ----
  @end example
  
  @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{462}
  @subsubsection Function results
  
  
*************** end;
*** 30594,30600 ****
  @end example
  
  @node Case pattern matching,Mutably Tagged Types with Size’Class Aspect,Simpler Accessibility Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{45f}
  @subsection Case pattern matching
  
  
--- 30641,30647 ----
  @end example
  
  @node Case pattern matching,Mutably Tagged Types with Size’Class Aspect,Simpler Accessibility Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{463}
  @subsection Case pattern matching
  
  
*************** message generated in such cases is usual
*** 30724,30730 ****
  case statement with composite selector type”.
  
  @node Mutably Tagged Types with Size’Class Aspect,Generalized Finalization,Case pattern matching,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{460}
  @subsection Mutably Tagged Types with Size’Class Aspect
  
  
--- 30771,30777 ----
  case statement with composite selector type”.
  
  @node Mutably Tagged Types with Size’Class Aspect,Generalized Finalization,Case pattern matching,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{464}
  @subsection Mutably Tagged Types with Size’Class Aspect
  
  
*************** parameter exists (that is, before leavin
*** 30855,30861 ****
  construct).
  
  @node Generalized Finalization,No_Raise aspect,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{461}
  @subsection Generalized Finalization
  
  
--- 30902,30908 ----
  construct).
  
  @node Generalized Finalization,No_Raise aspect,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{465}
  @subsection Generalized Finalization
  
  
*************** hence `not' be deallocated either. The r
*** 30926,30932 ****
  leaked in those cases.
  
  @item 
! The @code{Finalize} procedure should have have the @ref{462,,No_Raise aspect} specified.
  If that’s not the case, a compilation error will be raised.
  @end itemize
  
--- 30973,30979 ----
  leaked in those cases.
  
  @item 
! The @code{Finalize} procedure should have have the @ref{466,,No_Raise aspect} specified.
  If that’s not the case, a compilation error will be raised.
  @end itemize
  
*************** heap-allocated objects
*** 30946,30952 ****
  @end itemize
  
  @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Generalized Finalization,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions id3}@anchor{463}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{462}
  @subsection No_Raise aspect
  
  
--- 30993,30999 ----
  @end itemize
  
  @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Generalized Finalization,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions id3}@anchor{467}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{466}
  @subsection No_Raise aspect
  
  
*************** this subprogram, @code{Program_Error} is
*** 30963,30969 ****
  @end menu
  
  @node New specification for Ada Finalization Controlled,Finalized tagged types,,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions new-specification-for-ada-finalization-controlled}@anchor{464}
  @subsubsection New specification for @code{Ada.Finalization.Controlled}
  
  
--- 31010,31016 ----
  @end menu
  
  @node New specification for Ada Finalization Controlled,Finalized tagged types,,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions new-specification-for-ada-finalization-controlled}@anchor{468}
  @subsubsection New specification for @code{Ada.Finalization.Controlled}
  
  
*************** private
*** 31030,31036 ****
  @end example
  
  @node Finalized tagged types,Composite types,New specification for Ada Finalization Controlled,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions finalized-tagged-types}@anchor{465}
  @subsubsection Finalized tagged types
  
  
--- 31077,31083 ----
  @end example
  
  @node Finalized tagged types,Composite types,New specification for Ada Finalization Controlled,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions finalized-tagged-types}@anchor{469}
  @subsubsection Finalized tagged types
  
  
*************** However note that for simplicity, it is
*** 31043,31049 ****
  those new aspects in derived types.
  
  @node Composite types,Interoperability with controlled types,Finalized tagged types,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{466}
  @subsubsection Composite types
  
  
--- 31090,31096 ----
  those new aspects in derived types.
  
  @node Composite types,Interoperability with controlled types,Finalized tagged types,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{46a}
  @subsubsection Composite types
  
  
*************** are called on the composite object, but
*** 31060,31066 ****
  object first.
  
  @node Interoperability with controlled types,,Composite types,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{467}
  @subsubsection Interoperability with controlled types
  
  
--- 31107,31113 ----
  object first.
  
  @node Interoperability with controlled types,,Composite types,No_Raise aspect
! @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{46b}
  @subsubsection Interoperability with controlled types
  
  
*************** component
*** 31081,31087 ****
  @end itemize
  
  @node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{468}
  @subsection Inference of Dependent Types in Generic Instantiations
  
  
--- 31128,31134 ----
  @end itemize
  
  @node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{46c}
  @subsection Inference of Dependent Types in Generic Instantiations
  
  
*************** package Int_Array_Operations is new Arra
*** 31158,31164 ****
  @end example
  
  @node External_Initialization Aspect,Finally construct,Inference of Dependent Types in Generic Instantiations,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{469}
  @subsection External_Initialization Aspect
  
  
--- 31205,31211 ----
  @end example
  
  @node External_Initialization Aspect,Finally construct,Inference of Dependent Types in Generic Instantiations,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{46d}
  @subsection External_Initialization Aspect
  
  
*************** The maximum size of loaded files is limi
*** 31199,31205 ****
  @end cartouche
  
  @node Finally construct,,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{46a}
  @subsection Finally construct
  
  
--- 31246,31252 ----
  @end cartouche
  
  @node Finally construct,,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{46e}
  @subsection Finally construct
  
  
*************** This feature is similar to the one with
*** 31216,31222 ****
  @end menu
  
  @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{46b}
  @subsubsection Syntax
  
  
--- 31263,31269 ----
  @end menu
  
  @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{46f}
  @subsubsection Syntax
  
  
*************** handled_sequence_of_statements ::=
*** 31231,31237 ****
  @end example
  
  @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{46c}
  @subsubsection Legality Rules
  
  
--- 31278,31284 ----
  @end example
  
  @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{470}
  @subsubsection Legality Rules
  
  
*************** to be transferred outside the finally pa
*** 31241,31247 ****
  Goto & exit where the target is outside of the finally’s @code{sequence_of_statements} are forbidden
  
  @node Dynamic Semantics<2>,,Legality Rules<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id6}@anchor{46d}
  @subsubsection Dynamic Semantics
  
  
--- 31288,31294 ----
  Goto & exit where the target is outside of the finally’s @code{sequence_of_statements} are forbidden
  
  @node Dynamic Semantics<2>,,Legality Rules<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id6}@anchor{471}
  @subsubsection Dynamic Semantics
  
  
*************** execution, that is the finally block mus
*** 31256,31262 ****
  aborted, or if the control is transferred out of the block.
  
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{46e}@anchor{gnat_rm/security_hardening_features id1}@anchor{46f}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
--- 31303,31309 ----
  aborted, or if the control is transferred out of the block.
  
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{472}@anchor{gnat_rm/security_hardening_features id1}@anchor{473}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
*************** change.
*** 31278,31284 ****
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{470}
  @section Register Scrubbing
  
  
--- 31325,31331 ----
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{474}
  @section Register Scrubbing
  
  
*************** programming languages, see @cite{Using t
*** 31314,31320 ****
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{471}
  @section Stack Scrubbing
  
  
--- 31361,31367 ----
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{475}
  @section Stack Scrubbing
  
  
*************** Bar_Callable_Ptr.
*** 31458,31464 ****
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{472}
  @section Hardened Conditionals
  
  
--- 31505,31511 ----
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{476}
  @section Hardened Conditionals
  
  
*************** be used with other programming languages
*** 31548,31554 ****
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{473}
  @section Hardened Booleans
  
  
--- 31595,31601 ----
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{477}
  @section Hardened Booleans
  
  
*************** and more details on that attribute, see
*** 31609,31615 ****
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{474}
  @section Control Flow Redundancy
  
  
--- 31656,31662 ----
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{478}
  @section Control Flow Redundancy
  
  
*************** see @cite{Using the GNU Compiler Collect
*** 31777,31783 ****
  can be used with other programming languages supported by GCC.
  
  @node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
! @anchor{gnat_rm/obsolescent_features doc}@anchor{475}@anchor{gnat_rm/obsolescent_features id1}@anchor{476}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
--- 31824,31830 ----
  can be used with other programming languages supported by GCC.
  
  @node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
! @anchor{gnat_rm/obsolescent_features doc}@anchor{479}@anchor{gnat_rm/obsolescent_features id1}@anchor{47a}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
*************** compatibility purposes.
*** 31796,31802 ****
  @end menu
  
  @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{477}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{478}
  @section pragma No_Run_Time
  
  
--- 31843,31849 ----
  @end menu
  
  @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{47b}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{47c}
  @section pragma No_Run_Time
  
  
*************** preferred usage is to use an appropriate
*** 31809,31815 ****
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{479}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{47a}
  @section pragma Ravenscar
  
  
--- 31856,31862 ----
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{47d}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{47e}
  @section pragma Ravenscar
  
  
*************** The pragma @code{Ravenscar} has exactly
*** 31818,31824 ****
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{47b}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{47c}
  @section pragma Restricted_Run_Time
  
  
--- 31865,31871 ----
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{47f}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{480}
  @section pragma Restricted_Run_Time
  
  
*************** preferred since the Ada 2005 pragma @cod
*** 31828,31834 ****
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{47d}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{47e}
  @section pragma Task_Info
  
  
--- 31875,31881 ----
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{481}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{482}
  @section pragma Task_Info
  
  
*************** in the spec of package System.Task_Info
*** 31854,31860 ****
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{47f}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{480}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
--- 31901,31907 ----
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{483}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{484}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
*************** to support the @code{Task_Info} pragma.
*** 31864,31870 ****
  standard replacement for GNAT’s @code{Task_Info} functionality.
  
  @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
! @anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{481}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{482}
  @chapter Compatibility and Porting Guide
  
  
--- 31911,31917 ----
  standard replacement for GNAT’s @code{Task_Info} functionality.
  
  @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
! @anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{485}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{486}
  @chapter Compatibility and Porting Guide
  
  
*************** applications developed in other Ada envi
*** 31886,31892 ****
  @end menu
  
  @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{483}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{484}
  @section Writing Portable Fixed-Point Declarations
  
  
--- 31933,31939 ----
  @end menu
  
  @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{487}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{488}
  @section Writing Portable Fixed-Point Declarations
  
  
*************** If you follow this scheme you will be gu
*** 32008,32014 ****
  types will be portable.
  
  @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{485}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{486}
  @section Compatibility with Ada 83
  
  
--- 32055,32061 ----
  types will be portable.
  
  @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{489}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{48a}
  @section Compatibility with Ada 83
  
  
*************** following subsections treat the most lik
*** 32036,32042 ****
  @end menu
  
  @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{487}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{488}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
--- 32083,32089 ----
  @end menu
  
  @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{48b}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{48c}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
*************** the fix is usually simply to add the @co
*** 32136,32142 ****
  @end itemize
  
  @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{489}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{48a}
  @subsection More deterministic semantics
  
  
--- 32183,32189 ----
  @end itemize
  
  @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{48d}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{48e}
  @subsection More deterministic semantics
  
  
*************** which open select branches are executed.
*** 32164,32170 ****
  @end itemize
  
  @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{48b}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{48c}
  @subsection Changed semantics
  
  
--- 32211,32217 ----
  @end itemize
  
  @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{48f}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{490}
  @subsection Changed semantics
  
  
*************** covers only the restricted range.
*** 32206,32212 ****
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{48d}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{48e}
  @subsection Other language compatibility issues
  
  
--- 32253,32259 ----
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{491}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{492}
  @subsection Other language compatibility issues
  
  
*************** include @code{pragma Interface} and the
*** 32239,32245 ****
  @end itemize
  
  @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{48f}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{490}
  @section Compatibility between Ada 95 and Ada 2005
  
  
--- 32286,32292 ----
  @end itemize
  
  @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{494}
  @section Compatibility between Ada 95 and Ada 2005
  
  
*************** can declare a function returning a value
*** 32311,32317 ****
  @end itemize
  
  @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{491}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{492}
  @section Implementation-dependent characteristics
  
  
--- 32358,32364 ----
  @end itemize
  
  @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{495}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{496}
  @section Implementation-dependent characteristics
  
  
*************** transition from certain Ada 83 compilers
*** 32334,32340 ****
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{494}
  @subsection Implementation-defined pragmas
  
  
--- 32381,32387 ----
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{498}
  @subsection Implementation-defined pragmas
  
  
*************** avoiding compiler rejection of units tha
*** 32356,32362 ****
  relevant in a GNAT context and hence are not otherwise implemented.
  
  @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{495}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{496}
  @subsection Implementation-defined attributes
  
  
--- 32403,32409 ----
  relevant in a GNAT context and hence are not otherwise implemented.
  
  @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{49a}
  @subsection Implementation-defined attributes
  
  
*************** Ada 83, GNAT supplies the attributes @co
*** 32370,32376 ****
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{498}
  @subsection Libraries
  
  
--- 32417,32423 ----
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{49c}
  @subsection Libraries
  
  
*************** be preferable to retrofit the applicatio
*** 32399,32405 ****
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{49a}
  @subsection Elaboration order
  
  
--- 32446,32452 ----
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{49d}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{49e}
  @subsection Elaboration order
  
  
*************** pragmas either globally (as an effect of
*** 32435,32441 ****
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{49c}
  @subsection Target-specific aspects
  
  
--- 32482,32488 ----
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{49f}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4a0}
  @subsection Target-specific aspects
  
  
*************** on the robustness of the original design
*** 32448,32457 ****
  Ada 2005 and Ada 2012) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{49d,,Representation Clauses}.
  
  @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{49e}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{49f}
  @section Compatibility with Other Ada Systems
  
  
--- 32495,32504 ----
  Ada 2005 and Ada 2012) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{4a1,,Representation Clauses}.
  
  @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{4a2}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4a3}
  @section Compatibility with Other Ada Systems
  
  
*************** far beyond this minimal set, as describe
*** 32494,32500 ****
  @end itemize
  
  @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{4a0}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{49d}
  @section Representation Clauses
  
  
--- 32541,32547 ----
  @end itemize
  
  @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{4a4}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4a1}
  @section Representation Clauses
  
  
*************** with thin pointers.
*** 32587,32593 ****
  @end itemize
  
  @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{4a1}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4a2}
  @section Compatibility with HP Ada 83
  
  
--- 32634,32640 ----
  @end itemize
  
  @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{4a5}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4a6}
  @section Compatibility with HP Ada 83
  
  
*************** extension of package System.
*** 32617,32623 ****
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4a3}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4a4}
  @chapter GNU Free Documentation License
  
  
--- 32664,32670 ----
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4a7}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4a8}
  @chapter GNU Free Documentation License
  
  
diff -Nrcpad gcc-16-20250601/gcc/ada/gnat_ugn.texi gcc-16-20250608/gcc/ada/gnat_ugn.texi
*** gcc-16-20250601/gcc/ada/gnat_ugn.texi	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gnat_ugn.texi	Sun Jun  8 22:32:15 2025
***************
*** 3,9 ****
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
--- 3,9 ----
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.2.3.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
***************
*** 19,25 ****
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Jan 13, 2025
  
  AdaCore
  
--- 19,25 ----
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Jun 02, 2025
  
  AdaCore
  
*************** the breakpoint we have set. From there y
*** 25582,25592 ****
  You can specify the program stack size at link time. On most versions
  of Windows, starting with XP, this is mostly useful to set the size of
  the main stack (environment task). The other task stacks are set with
! pragma Storage_Size or with the `gnatbind -d' command.
  
  Since very old versions of Windows (2000, NT4, etc.) don’t allow setting the
! reserve size of individual tasks, the link-time stack size applies to all
! tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
--- 25582,25593 ----
  You can specify the program stack size at link time. On most versions
  of Windows, starting with XP, this is mostly useful to set the size of
  the main stack (environment task). The other task stacks are set with
! pragma Storage_Size or with the `gnatbind -d' command. The specified size will
! become the reserved memory size of the underlying thread.
  
  Since very old versions of Windows (2000, NT4, etc.) don’t allow setting the
! reserve size of individual tasks, for those versions the link-time stack size
! applies to all tasks, and pragma Storage_Size has no effect.
  In particular, Stack Overflow checks are made against this
  link-time specified size.
  
*************** to permit their use in free software.
*** 29832,29839 ****
  
  @printindex ge
  
- @anchor{d2}@w{                              }
  @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
  
  @c %**end of body
  @bye
--- 29833,29840 ----
  
  @printindex ge
  
  @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
+ @anchor{d2}@w{                              }
  
  @c %**end of body
  @bye
diff -Nrcpad gcc-16-20250601/gcc/ada/gnatls.adb gcc-16-20250608/gcc/ada/gnatls.adb
*** gcc-16-20250601/gcc/ada/gnatls.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/gnatls.adb	Sun Jun  8 22:32:15 2025
*************** procedure Gnatls is
*** 1605,1611 ****
                 Name_Len := 0;
  
                 if not Is_Absolute_Path (Self (First .. Last)) then
!                   Add_Str_To_Name_Buffer (Get_Current_Dir);  -- ??? System call
                    Add_Char_To_Name_Buffer (Directory_Separator);
                 end if;
  
--- 1605,1613 ----
                 Name_Len := 0;
  
                 if not Is_Absolute_Path (Self (First .. Last)) then
!                   Add_Str_To_Name_Buffer
!                     (GNAT.Directory_Operations.Get_Current_Dir);
! 
                    Add_Char_To_Name_Buffer (Directory_Separator);
                 end if;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/inline.adb gcc-16-20250608/gcc/ada/inline.adb
*** gcc-16-20250601/gcc/ada/inline.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/inline.adb	Sun Jun  8 22:32:15 2025
*************** package body Inline is
*** 320,325 ****
--- 320,326 ----
     --    Exit_Cases
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Refined_Global
     --    Refined_Depends
     --    Refined_Post
*************** package body Inline is
*** 4077,4082 ****
--- 4078,4084 ----
              --  Replace call with temporary and create its declaration
  
              Temp := Make_Temporary (Loc, 'C');
+             Mutate_Ekind (Temp, E_Constant);
              Set_Is_Internal (Temp);
  
              --  For the unconstrained case, the generated temporary has the
*************** package body Inline is
*** 5271,5276 ****
--- 5273,5279 ----
                                          | Name_Exit_Cases
                                          | Name_Postcondition
                                          | Name_Precondition
+                                         | Name_Program_Exit
                                          | Name_Refined_Global
                                          | Name_Refined_Depends
                                          | Name_Refined_Post
diff -Nrcpad gcc-16-20250601/gcc/ada/json_utils.adb gcc-16-20250608/gcc/ada/json_utils.adb
*** gcc-16-20250601/gcc/ada/json_utils.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/json_utils.adb	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,254 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . J S O N _ U T I L S                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Namet; use Namet;
+ with Osint;
+ with Output; use Output;
+ with System.OS_Lib;
+ 
+ package body JSON_Utils is
+ 
+    -----------------
+    -- Begin_Block --
+    -----------------
+ 
+    procedure Begin_Block is
+    begin
+       Indent_Level := Indent_Level + 1;
+    end Begin_Block;
+ 
+    ---------------
+    -- End_Block --
+    ---------------
+ 
+    procedure End_Block is
+    begin
+       Indent_Level := Indent_Level - 1;
+    end End_Block;
+ 
+    procedure Indent is begin
+       if JSON_FORMATTING then
+          for I in 1 .. INDENT_SIZE * Indent_Level loop
+             Write_Char (' ');
+          end loop;
+       end if;
+    end Indent;
+ 
+    -------------------
+    -- NL_And_Indent --
+    -------------------
+ 
+    procedure NL_And_Indent is
+    begin
+       if JSON_FORMATTING then
+          Write_Eol;
+          Indent;
+       end if;
+    end NL_And_Indent;
+ 
+    -----------------
+    -- To_File_Uri --
+    -----------------
+ 
+    function To_File_Uri (Path : String) return String is
+ 
+       function Normalize_Uri (Path : String) return String;
+       --  Construct a normalized URI from the path name by replacing reserved
+       --  URI characters that can appear in paths with their escape character
+       --  combinations.
+       --
+       --  According to the URI standard reserved charcthers within the paths
+       --  should be percent encoded:
+       --
+       --  https://www.rfc-editor.org/info/rfc3986
+       --
+       --  Reserved charcters are defined as:
+       --
+       --  reserved = gen-delims / sub-delims
+       --  gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
+       --  sub-delims = "!" / "$" / "&" / "’" / "(" / ")"
+       --  / "*" / "+" / "," / ";" / "="
+ 
+       -------------------
+       -- Normalize_Uri --
+       -------------------
+ 
+       function Normalize_Uri (Path : String) return String is
+          Buf : Bounded_String;
+       begin
+          for C of Path loop
+             case C is
+                when '\' =>
+ 
+                   --  Use forward slashes instead of backward slashes as
+                   --  separators on Windows and on Linux simply encode the
+                   --  symbol if part of a directory name.
+ 
+                   if Osint.On_Windows then
+                      Append (Buf, '/');
+                   else
+                      Append (Buf, "%5C");
+                   end if;
+ 
+                when ' ' =>
+                   Append (Buf, "%20");
+ 
+                when '!' =>
+                   Append (Buf, "%21");
+ 
+                when '#' =>
+                   Append (Buf, "%23");
+ 
+                when '$' =>
+                   Append (Buf, "%24");
+ 
+                when '&' =>
+                   Append (Buf, "%26");
+ 
+                when ''' =>
+                   Append (Buf, "%27");
+ 
+                when '(' =>
+                   Append (Buf, "%28");
+ 
+                when ')' =>
+                   Append (Buf, "%29");
+ 
+                when '*' =>
+                   Append (Buf, "%2A");
+ 
+                when '+' =>
+                   Append (Buf, "%2A");
+ 
+                when ',' =>
+                   Append (Buf, "%2A");
+ 
+                when '/' =>
+                   --  Forward slash is a valid file separator on both Unix and
+                   --  Windows based machines and should be treated as such
+                   --  within a path.
+                   Append (Buf, '/');
+ 
+                when ':' =>
+                   Append (Buf, "%3A");
+ 
+                when ';' =>
+                   Append (Buf, "%3B");
+ 
+                when '=' =>
+                   Append (Buf, "%3D");
+ 
+                when '?' =>
+                   Append (Buf, "%3F");
+ 
+                when '@' =>
+                   Append (Buf, "%40");
+ 
+                when '[' =>
+                   Append (Buf, "%5B");
+ 
+                when ']' =>
+                   Append (Buf, "%5D");
+ 
+                when others =>
+                   Append (Buf, C);
+             end case;
+          end loop;
+ 
+          return To_String (Buf);
+       end Normalize_Uri;
+ 
+       Norm_Uri : constant String := Normalize_Uri (Path);
+ 
+    --  Start of processing for To_File_Uri
+ 
+    begin
+       if System.OS_Lib.Is_Absolute_Path (Path) then
+          --  URI-s using the file scheme should start with the following
+          --  prefix:
+          --
+          --  "file:///"
+ 
+          if Osint.On_Windows then
+             return "file:///" & Norm_Uri;
+          else
+             --  Full paths on linux based systems already start with '/'
+ 
+             return "file://" & Norm_Uri;
+          end if;
+       else
+          return Norm_Uri;
+       end if;
+    end To_File_Uri;
+ 
+    -----------------------------
+    -- Write_Boolean_Attribute --
+    -----------------------------
+ 
+    procedure Write_Boolean_Attribute (Name : String; Value : Boolean) is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": ");
+       Write_Str (if Value then "true" else "false");
+    end Write_Boolean_Attribute;
+ 
+    -------------------------
+    -- Write_Int_Attribute --
+    -------------------------
+ 
+    procedure Write_Int_Attribute (Name : String; Value : Int) is
+    begin
+       Write_Str ("""" & Name & """" & ": ");
+       Write_Int (Value);
+    end Write_Int_Attribute;
+ 
+    -------------------------------
+    -- Write_JSON_Escaped_String --
+    -------------------------------
+ 
+    procedure Write_JSON_Escaped_String (Str : String) is
+    begin
+       for C of Str loop
+          if C = '"' or else C = '\' then
+             Write_Char ('\');
+          end if;
+ 
+          Write_Char (C);
+       end loop;
+    end Write_JSON_Escaped_String;
+ 
+    ----------------------------
+    -- Write_String_Attribute --
+    ----------------------------
+ 
+    procedure Write_String_Attribute (Name : String; Value : String) is
+    begin
+       Write_Str ("""" & Name & """" & ": ");
+       Write_Char ('"');
+       Write_JSON_Escaped_String (Value);
+       Write_Char ('"');
+    end Write_String_Attribute;
+ 
+ end JSON_Utils;
diff -Nrcpad gcc-16-20250601/gcc/ada/json_utils.ads gcc-16-20250608/gcc/ada/json_utils.ads
*** gcc-16-20250601/gcc/ada/json_utils.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/ada/json_utils.ads	Sun Jun  8 22:32:15 2025
***************
*** 0 ****
--- 1,81 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               D I A G N O S T I C S . J S O N _ U T I L S                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Types; use Types;
+ 
+ package JSON_Utils is
+ 
+    JSON_FORMATTING : constant Boolean := True;
+    --  Adds newlines and indentation to the output JSON.
+    --
+    --  NOTE: This flag could be associated with the gcc switch:
+    --  '-fno-diagnostics-json-formatting'
+ 
+    INDENT_SIZE : constant := 2;
+    --  The number of spaces to indent each level of the JSON output.
+ 
+    Indent_Level : Natural := 0;
+    --  The current indentation level.
+ 
+    procedure Begin_Block;
+    --  Increase the indentation level by one
+ 
+    procedure End_Block;
+    --  Decrease the indentation level by one
+ 
+    procedure Indent;
+    --  Print the indentation for the line
+ 
+    procedure NL_And_Indent;
+    --  Print a new line
+ 
+    function To_File_Uri (Path : String) return String;
+    --  Converts an absolute Path into a file URI string by adding the file
+    --  schema prefix "file:///" and replacing all of the URI reserved
+    --  characters in the absolute path.
+ 
+    procedure Write_Boolean_Attribute (Name : String; Value : Boolean);
+    --  Write a JSON attribute with a boolean value.
+    --
+    --  The value is either 'true' or 'false' without any quotes
+ 
+    procedure Write_Int_Attribute (Name : String; Value : Int);
+ 
+    procedure Write_JSON_Escaped_String (Str : String);
+    --  Write each character of Str, taking care of preceding each quote and
+    --  backslash with a backslash. Note that this escaping differs from what
+    --  GCC does.
+    --
+    --  Indeed, the JSON specification mandates encoding wide characters
+    --  either as their direct UTF-8 representation or as their escaped
+    --  UTF-16 surrogate pairs representation. GCC seems to prefer escaping -
+    --  we choose to use the UTF-8 representation instead.
+ 
+    procedure Write_String_Attribute (Name : String; Value : String);
+    --  Write a JSON attribute with a string value.
+    --
+    --  The Value is surrounded by double quotes ("") and the special characters
+    --  within the string are escaped.
+ 
+ end JSON_Utils;
diff -Nrcpad gcc-16-20250601/gcc/ada/lib-load.adb gcc-16-20250608/gcc/ada/lib-load.adb
*** gcc-16-20250601/gcc/ada/lib-load.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/lib-load.adb	Sun Jun  8 22:32:16 2025
*************** package body Lib.Load is
*** 226,238 ****
           Fatal_Error            => Error_Detected,
           Generate_Code          => False,
           Has_RACW               => False,
-          Filler                 => False,
           Ident_String           => Empty,
  
           Is_Predefined_Renaming => Ren_Name,
           Is_Predefined_Unit     => Pre_Name or Ren_Name,
           Is_Internal_Unit       => Pre_Name or Ren_Name or GNAT_Name,
-          Filler2                => False,
  
           Loading                => False,
           Main_Priority          => Default_Main_Priority,
--- 226,236 ----
*************** package body Lib.Load is
*** 374,386 ****
              Fatal_Error            => None,
              Generate_Code          => True,
              Has_RACW               => False,
-             Filler                 => False,
              Ident_String           => Empty,
  
              Is_Predefined_Renaming => Ren_Name,
              Is_Predefined_Unit     => Pre_Name or Ren_Name,
              Is_Internal_Unit       => Pre_Name or Ren_Name or GNAT_Name,
-             Filler2                => False,
  
              Loading                => True,
              Main_Priority          => Default_Main_Priority,
--- 372,382 ----
*************** package body Lib.Load is
*** 760,772 ****
                 Fatal_Error            => None,
                 Generate_Code          => False,
                 Has_RACW               => False,
-                Filler                 => False,
                 Ident_String           => Empty,
  
                 Is_Predefined_Renaming => Ren_Name,
                 Is_Predefined_Unit     => Pre_Name or Ren_Name,
                 Is_Internal_Unit       => Pre_Name or Ren_Name or GNAT_Name,
-                Filler2                => False,
  
                 Loading                => True,
                 Main_Priority          => Default_Main_Priority,
--- 756,766 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/lib-writ.adb gcc-16-20250608/gcc/ada/lib-writ.adb
*** gcc-16-20250601/gcc/ada/lib-writ.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/lib-writ.adb	Sun Jun  8 22:32:16 2025
*************** package body Lib.Writ is
*** 116,127 ****
           Fatal_Error            => None,
           Generate_Code          => False,
           Has_RACW               => False,
-          Filler                 => False,
           Ident_String           => Empty,
           Is_Predefined_Renaming => False,
           Is_Internal_Unit       => False,
           Is_Predefined_Unit     => False,
-          Filler2                => False,
           Loading                => False,
           Main_Priority          => -1,
           Main_CPU               => -1,
--- 116,125 ----
*************** package body Lib.Writ is
*** 175,186 ****
           Fatal_Error            => None,
           Generate_Code          => False,
           Has_RACW               => False,
-          Filler                 => False,
           Ident_String           => Empty,
           Is_Predefined_Renaming => False,
           Is_Internal_Unit       => True,
           Is_Predefined_Unit     => True,
-          Filler2                => False,
           Loading                => False,
           Main_Priority          => -1,
           Main_CPU               => -1,
--- 173,182 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/lib.ads gcc-16-20250608/gcc/ada/lib.ads
*** gcc-16-20250601/gcc/ada/lib.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/lib.ads	Sun Jun  8 22:32:16 2025
*************** private
*** 871,925 ****
        Has_RACW               : Boolean;
        Dynamic_Elab           : Boolean;
        No_Elab_Code_All       : Boolean;
-       Filler                 : Boolean;
        Loading                : Boolean;
        OA_Setting             : Character;
  
        Is_Predefined_Renaming : Boolean;
        Is_Internal_Unit       : Boolean;
        Is_Predefined_Unit     : Boolean;
-       Filler2                : Boolean;
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written by Tree_Gen, we do not write uninitialized values to the file.
- 
-    for Unit_Record use record
-       Unit_File_Name         at  0 range 0 .. 31;
-       Unit_Name              at  4 range 0 .. 31;
-       Munit_Index            at  8 range 0 .. 31;
-       Expected_Unit          at 12 range 0 .. 31;
-       Source_Index           at 16 range 0 .. 31;
-       Cunit                  at 20 range 0 .. 31;
-       Cunit_Entity           at 24 range 0 .. 31;
-       Dependency_Num         at 28 range 0 .. 31;
-       Ident_String           at 32 range 0 .. 31;
-       Main_Priority          at 36 range 0 .. 31;
-       Main_CPU               at 40 range 0 .. 31;
-       Primary_Stack_Count    at 44 range 0 .. 31;
-       Sec_Stack_Count        at 48 range 0 .. 31;
-       Serial_Number          at 52 range 0 .. 31;
-       Version                at 56 range 0 .. 31;
-       Error_Location         at 60 range 0 .. 31;
-       Fatal_Error            at 64 range 0 ..  7;
-       Generate_Code          at 65 range 0 ..  7;
-       Has_RACW               at 66 range 0 ..  7;
-       Dynamic_Elab           at 67 range 0 ..  7;
-       No_Elab_Code_All       at 68 range 0 ..  7;
-       Filler                 at 69 range 0 ..  7;
-       OA_Setting             at 70 range 0 ..  7;
-       Loading                at 71 range 0 ..  7;
- 
-       Is_Predefined_Renaming at 72 range 0 .. 7;
-       Is_Internal_Unit       at 73 range 0 .. 7;
-       Is_Predefined_Unit     at 74 range 0 .. 7;
-       Filler2                at 75 range 0 .. 7;
-    end record;
- 
-    for Unit_Record'Size use 76 * 8;
-    --  This ensures that we did not leave out any fields
- 
     package Units is new Table.Table (
       Table_Component_Type => Unit_Record,
       Table_Index_Type     => Unit_Number_Type,
--- 871,884 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnarl/s-linux__android-aarch64.ads gcc-16-20250608/gcc/ada/libgnarl/s-linux__android-aarch64.ads
*** gcc-16-20250601/gcc/ada/libgnarl/s-linux__android-aarch64.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnarl/s-linux__android-aarch64.ads	Sun Jun  8 22:32:16 2025
*************** package System.Linux is
*** 118,130 ****
     SIG33      : constant := 33; --  glibc internal signal
     SIG34      : constant := 34; --  glibc internal signal
  
!    --  struct_sigaction offsets
! 
!    --  sa_flags come first on aarch64-android (sa_flags, sa_handler, sa_mask)
  
!    sa_flags_pos   : constant := 0;
!    sa_handler_pos : constant := sa_flags_pos + Interfaces.C.int'Size / 8;
!    sa_mask_pos    : constant := sa_handler_pos + Standard'Address_Size / 8;
  
     SA_SIGINFO  : constant := 16#00000004#;
     SA_ONSTACK  : constant := 16#08000000#;
--- 118,136 ----
     SIG33      : constant := 33; --  glibc internal signal
     SIG34      : constant := 34; --  glibc internal signal
  
!    --  struct_sigaction
  
!    generic
!       type sigset_t is private;
!    package Android_Sigaction is
!       type struct_sigaction is record
!          sa_flags    : Interfaces.C.int;
!          sa_handler  : System.Address;
!          sa_mask     : sigset_t;
!          sa_restorer : System.Address;
!       end record;
!       pragma Convention (C, struct_sigaction);
!    end Android_Sigaction;
  
     SA_SIGINFO  : constant := 16#00000004#;
     SA_ONSTACK  : constant := 16#08000000#;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnarl/s-linux__android-arm.ads gcc-16-20250608/gcc/ada/libgnarl/s-linux__android-arm.ads
*** gcc-16-20250601/gcc/ada/libgnarl/s-linux__android-arm.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnarl/s-linux__android-arm.ads	Sun Jun  8 22:32:16 2025
*************** package System.Linux is
*** 118,128 ****
     SIG33      : constant := 33; --  glibc internal signal
     SIG34      : constant := 34; --  glibc internal signal
  
!    --  struct_sigaction offsets
  
!    sa_handler_pos : constant := 0;
!    sa_mask_pos    : constant := Standard'Address_Size / 8;
!    sa_flags_pos   : constant := 4 + sa_mask_pos;
  
     SA_SIGINFO  : constant := 16#00000004#;
     SA_ONSTACK  : constant := 16#08000000#;
--- 118,136 ----
     SIG33      : constant := 33; --  glibc internal signal
     SIG34      : constant := 34; --  glibc internal signal
  
!    --  struct_sigaction
  
!    generic
!       type sigset_t is private;
!    package Android_Sigaction is
!       type struct_sigaction is record
!          sa_handler  : System.Address;
!          sa_mask     : sigset_t;
!          sa_flags    : Interfaces.C.int;
!          sa_restorer : System.Address;
!       end record;
!       pragma Convention (C, struct_sigaction);
!    end Android_Sigaction;
  
     SA_SIGINFO  : constant := 16#00000004#;
     SA_ONSTACK  : constant := 16#08000000#;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnarl/s-osinte__android.ads gcc-16-20250608/gcc/ada/libgnarl/s-osinte__android.ads
*** gcc-16-20250601/gcc/ada/libgnarl/s-osinte__android.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnarl/s-osinte__android.ads	Sun Jun  8 22:32:16 2025
*************** package System.OS_Interface is
*** 147,153 ****
     --  Not clear why these two signals are reserved. Perhaps they are not
     --  supported by this version of GNU/Linux ???
  
!    type sigset_t is private;
  
     function sigaddset (set : access sigset_t; sig : Signal) return int;
     pragma Import (C, sigaddset, "_sigaddset");
--- 147,166 ----
     --  Not clear why these two signals are reserved. Perhaps they are not
     --  supported by this version of GNU/Linux ???
  
!    --  struct sigaction fields are of different sizes and come in different
!    --  order on ARM vs aarch64.  As this source is shared by the two
!    --  configurations, fetch the type definition through System.Linux, which
!    --  is specialized.
! 
!    type sigset_t is
!      array (0 .. OS_Constants.SIZEOF_sigset - 1) of Interfaces.C.unsigned_char;
!    pragma Convention (C, sigset_t);
!    for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
! 
!    package Android_Sigaction is new
!      System.Linux.Android_Sigaction (sigset_t => sigset_t);
! 
!    type struct_sigaction is new Android_Sigaction.struct_sigaction;
  
     function sigaddset (set : access sigset_t; sig : Signal) return int;
     pragma Import (C, sigaddset, "_sigaddset");
*************** package System.OS_Interface is
*** 173,186 ****
     end record;
     pragma Convention (C, siginfo_t);
  
-    type struct_sigaction is record
-       sa_handler  : System.Address;
-       sa_mask     : sigset_t;
-       sa_flags    : Interfaces.C.int;
-       sa_restorer : System.Address;
-    end record;
-    pragma Convention (C, struct_sigaction);
- 
     type struct_sigaction_ptr is access all struct_sigaction;
  
     SA_SIGINFO : constant := System.Linux.SA_SIGINFO;
--- 186,191 ----
*************** package System.OS_Interface is
*** 258,263 ****
--- 263,276 ----
     function getpid return pid_t;
     pragma Import (C, getpid, "getpid");
  
+    PR_SET_NAME : constant := 15;
+    PR_GET_NAME : constant := 16;
+ 
+    function prctl
+      (option : int;
+       arg    : unsigned_long) return int;
+    pragma Import (C_Variadic_1, prctl, "prctl");
+ 
     -------------
     -- Threads --
     -------------
*************** package System.OS_Interface is
*** 276,284 ****
--- 289,299 ----
       new Ada.Unchecked_Conversion (unsigned_long, pthread_t);
  
     subtype pthread_mutex_t   is System.OS_Locks.pthread_mutex_t;
+    type pthread_rwlock_t     is limited private;
     type pthread_cond_t       is limited private;
     type pthread_attr_t       is limited private;
     type pthread_mutexattr_t  is limited private;
+    type pthread_rwlockattr_t is limited private;
     type pthread_condattr_t   is limited private;
     type pthread_key_t        is private;
  
*************** package System.OS_Interface is
*** 287,297 ****
     PTHREAD_SCOPE_PROCESS : constant := 1;
     PTHREAD_SCOPE_SYSTEM  : constant := 0;
  
-    --  Read/Write lock not supported on Android.
- 
-    subtype pthread_rwlock_t     is pthread_mutex_t;
-    subtype pthread_rwlockattr_t is pthread_mutexattr_t;
- 
     -----------
     -- Stack --
     -----------
--- 302,307 ----
*************** package System.OS_Interface is
*** 389,394 ****
--- 399,441 ----
     function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
     pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock");
  
+    function pthread_rwlockattr_init
+      (attr : access pthread_rwlockattr_t) return int;
+    pragma Import (C, pthread_rwlockattr_init, "pthread_rwlockattr_init");
+ 
+    function pthread_rwlockattr_destroy
+      (attr : access pthread_rwlockattr_t) return int;
+    pragma Import (C, pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy");
+ 
+    PTHREAD_RWLOCK_PREFER_READER_NP              : constant := 0;
+    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 1;
+ 
+    --  No PTHREAD_RWLOCK_PREFER_WRITER_NP in Android's pthread.h API level 29
+ 
+    function pthread_rwlockattr_setkind_np
+      (attr : access pthread_rwlockattr_t;
+       pref : int) return int;
+    pragma Import
+      (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
+ 
+    function pthread_rwlock_init
+      (mutex : access pthread_rwlock_t;
+       attr  : access pthread_rwlockattr_t) return int;
+    pragma Import (C, pthread_rwlock_init, "pthread_rwlock_init");
+ 
+    function pthread_rwlock_destroy
+      (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_destroy, "pthread_rwlock_destroy");
+ 
+    function pthread_rwlock_rdlock (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_rdlock, "pthread_rwlock_rdlock");
+ 
+    function pthread_rwlock_wrlock (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_wrlock, "pthread_rwlock_wrlock");
+ 
+    function pthread_rwlock_unlock (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_unlock, "pthread_rwlock_unlock");
+ 
     function pthread_condattr_init
       (attr : access pthread_condattr_t) return int;
     pragma Import (C, pthread_condattr_init, "pthread_condattr_init");
*************** package System.OS_Interface is
*** 581,603 ****
  
  private
  
-    type sigset_t is
-      array (0 .. OS_Constants.SIZEOF_sigset - 1) of unsigned_char;
-    pragma Convention (C, sigset_t);
-    for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
- 
-    pragma Warnings (Off);
-    for struct_sigaction use record
-       sa_handler at Linux.sa_handler_pos range 0 .. Standard'Address_Size - 1;
-       sa_mask    at Linux.sa_mask_pos
-         range 0 .. OS_Constants.SIZEOF_sigset * 8 - 1;
-       sa_flags   at Linux.sa_flags_pos
-         range 0 .. Interfaces.C.int'Size - 1;
-    end record;
-    --  We intentionally leave sa_restorer unspecified and let the compiler
-    --  append it after the last field, so disable corresponding warning.
-    pragma Warnings (On);
- 
     type pid_t is new int;
  
     type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
--- 628,633 ----
*************** private
*** 632,637 ****
--- 662,679 ----
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
+    type pthread_rwlockattr_t is record
+       Data : char_array (1 .. OS_Constants.PTHREAD_RWLOCKATTR_SIZE);
+    end record;
+    pragma Convention (C, pthread_rwlockattr_t);
+    for pthread_rwlockattr_t'Alignment use Interfaces.C.unsigned_long'Alignment;
+ 
+    type pthread_rwlock_t is record
+       Data : char_array (1 .. OS_Constants.PTHREAD_RWLOCK_SIZE);
+    end record;
+    pragma Convention (C, pthread_rwlock_t);
+    for pthread_rwlock_t'Alignment use Interfaces.C.unsigned_long'Alignment;
+ 
     type pthread_cond_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_COND_SIZE);
     end record;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-nbnbig.adb gcc-16-20250608/gcc/ada/libgnat/a-nbnbig.adb
*** gcc-16-20250601/gcc/ada/libgnat/a-nbnbig.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-nbnbig.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,81 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT RUN-TIME COMPONENTS                         --
- --                                                                          --
- --               ADA.NUMERICS.BIG_NUMBERS.BIG_INTEGERS_GHOST                --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --            Copyright (C) 2021-2025, Free Software Foundation, Inc.       --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This body is provided as a work-around for a GNAT compiler bug, as GNAT
- --  currently does not compile instantiations of the spec with imported ghost
- --  generics for packages Signed_Conversions and Unsigned_Conversions.
- 
- --  Ghost code in this unit is meant for analysis only, not for run-time
- --  checking. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost => Ignore);
- 
- package body Ada.Numerics.Big_Numbers.Big_Integers_Ghost with
-    SPARK_Mode => Off
- is
- 
-    package body Signed_Conversions with
-      SPARK_Mode => Off
-    is
- 
-       function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
-       begin
-          raise Program_Error;
-          return (null record);
-       end To_Big_Integer;
- 
-       function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
-       begin
-          raise Program_Error;
-          return 0;
-       end From_Big_Integer;
- 
-    end Signed_Conversions;
- 
-    package body Unsigned_Conversions with
-      SPARK_Mode => Off
-    is
- 
-       function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
-       begin
-          raise Program_Error;
-          return (null record);
-       end To_Big_Integer;
- 
-       function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
-       begin
-          raise Program_Error;
-          return 0;
-       end From_Big_Integer;
- 
-    end Unsigned_Conversions;
- 
- end Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-nbnbig.ads gcc-16-20250608/gcc/ada/libgnat/a-nbnbig.ads
*** gcc-16-20250601/gcc/ada/libgnat/a-nbnbig.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-nbnbig.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,241 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT RUN-TIME COMPONENTS                         --
- --                                                                          --
- --               ADA.NUMERICS.BIG_NUMBERS.BIG_INTEGERS_GHOST                --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- -- This specification is derived from the Ada Reference Manual for use with --
- -- GNAT.  In accordance with the copyright of that document, you can freely --
- -- copy and modify this specification,  provided that if you redistribute a --
- -- modified version,  any changes that you have made are clearly indicated. --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package provides a reduced and non-executable implementation of the
- --  ARM A.5.6 defined ``Ada.Numerics.Big_Numbers.Big_Integers``  for use in
- --  SPARK proofs in the runtime. As it is only intended for SPARK proofs, this
- --  package is marked as a Ghost package and consequently does not have a
- --  runtime footprint.
- 
- --  Contrary to Ada.Numerics.Big_Numbers.Big_Integers, this unit does not
- --  depend on System or Ada.Finalization, which makes it more convenient for
- --  use in run-time units. Note, since it is a ghost unit, all subprograms are
- --  marked as imported.
- 
- --  Ghost code in this unit is meant for analysis only, not for run-time
- --  checking. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost => Ignore);
- 
- package Ada.Numerics.Big_Numbers.Big_Integers_Ghost with
-    SPARK_Mode,
-    Ghost,
-    Pure,
-    Always_Terminates
- is
- 
-    type Big_Integer is private
-      with Integer_Literal => From_Universal_Image;
-    --  Private type that holds the integer value
- 
-    function Is_Valid (Arg : Big_Integer) return Boolean
-    with
-      Import,
-      Global => null;
-    --  Return whether a passed big integer is valid
- 
-    subtype Valid_Big_Integer is Big_Integer
-      with Dynamic_Predicate => Is_Valid (Valid_Big_Integer),
-           Predicate_Failure => raise Program_Error;
-    --  Holds a valid Big_Integer
- 
-    --  Comparison operators defined for valid Big_Integer values
-    function "=" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function "<" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function "<=" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function ">" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function ">=" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function To_Big_Integer (Arg : Integer) return Valid_Big_Integer
-      with
-        Import,
-        Global => null;
-    --  Create a Big_Integer from an Integer value
- 
-    subtype Big_Positive is Big_Integer
-      with Dynamic_Predicate =>
-             (if Is_Valid (Big_Positive)
-              then Big_Positive > To_Big_Integer (0)),
-           Predicate_Failure => raise Constraint_Error;
-    --  Positive subtype of Big_Integers, analogous to Positive and Integer
- 
-    subtype Big_Natural is Big_Integer
-      with Dynamic_Predicate =>
-             (if Is_Valid (Big_Natural)
-              then Big_Natural >= To_Big_Integer (0)),
-           Predicate_Failure => raise Constraint_Error;
-    --  Natural subtype of Big_Integers, analogous to Natural and Integer
- 
-    function In_Range
-      (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean
-    is (Low <= Arg and Arg <= High)
-    with
-      Import,
-      Global => null;
-    --  Check whether Arg is in the range Low .. High
- 
-    function To_Integer (Arg : Valid_Big_Integer) return Integer
-    with
-      Import,
-      Pre    => In_Range (Arg,
-                          Low  => To_Big_Integer (Integer'First),
-                          High => To_Big_Integer (Integer'Last))
-                 or else raise Constraint_Error,
-      Global => null;
-    --  Convert a valid Big_Integer into an Integer
- 
-    generic
-       type Int is range <>;
-    package Signed_Conversions is
-       --  Generic package to implement conversion functions for
-       --  arbitrary ranged types.
- 
-       function To_Big_Integer (Arg : Int) return Valid_Big_Integer
-       with
-         Global => null;
-       --  Convert a ranged type into a valid Big_Integer
- 
-       function From_Big_Integer (Arg : Valid_Big_Integer) return Int
-       with
-         Pre    => In_Range (Arg,
-                             Low  => To_Big_Integer (Int'First),
-                             High => To_Big_Integer (Int'Last))
-                    or else raise Constraint_Error,
-         Global => null;
-       --  Convert a valid Big_Integer into a ranged type
-    end Signed_Conversions;
- 
-    generic
-       type Int is mod <>;
-    package Unsigned_Conversions is
-       --  Generic package to implement conversion functions for
-       --  arbitrary modular types.
- 
-       function To_Big_Integer (Arg : Int) return Valid_Big_Integer
-       with
-         Global => null;
-       --  Convert a modular type into a valid Big_Integer
- 
-       function From_Big_Integer (Arg : Valid_Big_Integer) return Int
-       with
-         Pre    => In_Range (Arg,
-                             Low  => To_Big_Integer (Int'First),
-                             High => To_Big_Integer (Int'Last))
-                    or else raise Constraint_Error,
-         Global => null;
-       --  Convert a valid Big_Integer into a modular type
- 
-    end Unsigned_Conversions;
- 
-    function From_String (Arg : String) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
-    --  Create a valid Big_Integer from a String
- 
-    function From_Universal_Image (Arg : String) return Valid_Big_Integer
-      renames From_String;
- 
-    --  Mathematical operators defined for valid Big_Integer values
-    function "+" (L : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "-" (L : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "**" (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function Greatest_Common_Divisor
-      (L, R : Valid_Big_Integer) return Big_Positive
-    with
-      Import,
-      Pre    => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0))
-                or else raise Constraint_Error,
-      Global => null;
-    --  Calculate the greatest common divisor for two Big_Integer values
- 
- private
-    pragma SPARK_Mode (Off);
- 
-    type Big_Integer is null record;
-    --  Solely consists of Ghost code
- 
- end Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-nudira.ads gcc-16-20250608/gcc/ada/libgnat/a-nudira.ads
*** gcc-16-20250601/gcc/ada/libgnat/a-nudira.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-nudira.ads	Sun Jun  8 22:32:16 2025
*************** generic
*** 44,81 ****
     type Result_Subtype is (<>);
  
  package Ada.Numerics.Discrete_Random with
!   SPARK_Mode => Off
  is
  
     --  Basic facilities
  
!    type Generator is limited private;
  
!    function Random (Gen : Generator) return Result_Subtype;
  
     function Random
       (Gen   : Generator;
        First : Result_Subtype;
        Last  : Result_Subtype) return Result_Subtype
!      with Post => Random'Result in First .. Last;
  
!    procedure Reset (Gen : Generator; Initiator : Integer);
!    procedure Reset (Gen : Generator);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State);
!    procedure Reset (Gen : Generator; From_State : State);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String;
!    function Value (Coded_State : String) return State;
  
  private
  
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
--- 44,103 ----
     type Result_Subtype is (<>);
  
  package Ada.Numerics.Discrete_Random with
!   SPARK_Mode => On,
!   Always_Terminates
  is
  
     --  Basic facilities
  
!    type Generator is limited private with Default_Initial_Condition;
  
!    function Random (Gen : Generator) return Result_Subtype with
!      Global => null,
!      Side_Effects;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     function Random
       (Gen   : Generator;
        First : Result_Subtype;
        Last  : Result_Subtype) return Result_Subtype
!      with
!        Post => Random'Result in First .. Last,
!        Global => null,
!        Side_Effects;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
!    procedure Reset (Gen : Generator; Initiator : Integer) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
! 
!    procedure Reset (Gen : Generator) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
! 
!    procedure Reset (Gen : Generator; From_State : State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String with
!      Global => null;
!    function Value (Coded_State : String) return State with
!      Global => null;
  
  private
  
+    pragma SPARK_Mode (Off);
+ 
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-nuflra.ads gcc-16-20250608/gcc/ada/libgnat/a-nuflra.ads
*** gcc-16-20250601/gcc/ada/libgnat/a-nuflra.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-nuflra.ads	Sun Jun  8 22:32:16 2025
***************
*** 39,72 ****
  with System.Random_Numbers;
  
  package Ada.Numerics.Float_Random with
!   SPARK_Mode => Off
  is
  
     --  Basic facilities
  
!    type Generator is limited private;
  
     subtype Uniformly_Distributed is Float range 0.0 .. 1.0;
  
!    function Random (Gen : Generator) return Uniformly_Distributed;
  
!    procedure Reset (Gen : Generator);
!    procedure Reset (Gen : Generator; Initiator : Integer);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State);
!    procedure Reset (Gen : Generator; From_State : State);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String;
!    function Value (Coded_State : String) return State;
  
  private
  
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
--- 39,88 ----
  with System.Random_Numbers;
  
  package Ada.Numerics.Float_Random with
!   SPARK_Mode => On,
!   Always_Terminates
  is
  
     --  Basic facilities
  
!    type Generator is limited private with Default_Initial_Condition;
  
     subtype Uniformly_Distributed is Float range 0.0 .. 1.0;
  
!    function Random (Gen : Generator) return Uniformly_Distributed with
!      Global => null,
!      Side_Effects;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
!    procedure Reset (Gen : Generator) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
!    procedure Reset (Gen : Generator; Initiator : Integer) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
!    procedure Reset (Gen : Generator; From_State : State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String with
!      Global => null;
!    function Value (Coded_State : String) return State with
!      Global => null;
  
  private
  
+    pragma SPARK_Mode (Off);
+ 
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-strfix.adb gcc-16-20250608/gcc/ada/libgnat/a-strfix.adb
*** gcc-16-20250601/gcc/ada/libgnat/a-strfix.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-strfix.adb	Sun Jun  8 22:32:16 2025
***************
*** 38,51 ****
  --  bounds of function return results were also fixed, and use of & removed for
  --  efficiency reasons.
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with Ada.Strings.Maps; use Ada.Strings.Maps;
  
  package body Ada.Strings.Fixed with SPARK_Mode is
--- 38,43 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 153,164 ****
        Right : Character) return String
     is
     begin
!       return Result : String (1 .. Left) with Relaxed_Initialization do
           for J in Result'Range loop
              Result (J) := Right;
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                  Result (K)'Initialized and then Result (K) = Right);
           end loop;
        end return;
     end "*";
--- 145,153 ----
        Right : Character) return String
     is
     begin
!       return Result : String (1 .. Left) do
           for J in Result'Range loop
              Result (J) := Right;
           end loop;
        end return;
     end "*";
*************** package body Ada.Strings.Fixed with SPAR
*** 168,249 ****
        Right : String) return String
     is
        Ptr : Integer := 0;
- 
-       --  Parts of the proof involving manipulations with the modulo operator
-       --  are complicated for the prover and can't be done automatically in
-       --  the global subprogram. That's why we isolate them in these two ghost
-       --  lemmas.
- 
-       procedure Lemma_Mod (K : Integer) with
-         Ghost,
-         Pre =>
-           Right'Length /= 0
-           and then Ptr mod Right'Length = 0
-           and then Ptr in 0 .. Natural'Last - Right'Length
-           and then K in Ptr .. Ptr + Right'Length - 1,
-         Post => K mod Right'Length = K - Ptr;
-       --  Lemma_Mod is applied to an index considered in Lemma_Split to prove
-       --  that it has the right value modulo Right'Length.
- 
-       procedure Lemma_Split (Result : String) with
-         Ghost,
-         Relaxed_Initialization => Result,
-         Pre                    =>
-           Right'Length /= 0
-             and then Result'First = 1
-             and then Result'Last >= 0
-             and then Ptr mod Right'Length = 0
-             and then Ptr in 0 .. Result'Last - Right'Length
-             and then Result (Result'First .. Ptr + Right'Length)'Initialized
-             and then Result (Ptr + 1 .. Ptr + Right'Length) = Right,
-         Post                   =>
-           (for all K in Ptr + 1 .. Ptr + Right'Length =>
-             Result (K) = Right (Right'First + (K - 1) mod Right'Length));
-       --  Lemma_Split is used after Result (Ptr + 1 .. Ptr + Right'Length) is
-       --  updated to Right and concludes that the characters match for each
-       --  index when taken modulo Right'Length, as the considered slice starts
-       --  at index 1 modulo Right'Length.
- 
-       ---------------
-       -- Lemma_Mod --
-       ---------------
- 
-       procedure Lemma_Mod (K : Integer) is null;
- 
-       -----------------
-       -- Lemma_Split --
-       -----------------
- 
-       procedure Lemma_Split (Result : String)
-       is
-       begin
-          for K in Ptr + 1 .. Ptr + Right'Length loop
-             Lemma_Mod (K - 1);
-             pragma Loop_Invariant
-               (for all J in Ptr + 1 .. K =>
-                  Result (J) = Right (Right'First + (J - 1) mod Right'Length));
-          end loop;
-       end Lemma_Split;
- 
-    --  Start of processing for "*"
- 
     begin
        if Right'Length = 0 then
           return "";
        end if;
  
!       return Result : String (1 .. Left * Right'Length)
!         with Relaxed_Initialization
!       do
           for J in 1 .. Left loop
              Result (Ptr + 1 .. Ptr + Right'Length) := Right;
-             Lemma_Split (Result);
              Ptr := Ptr + Right'Length;
-             pragma Loop_Invariant (Ptr = J * Right'Length);
-             pragma Loop_Invariant (Result (1 .. Ptr)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. Ptr =>
-                  Result (K) = Right (Right'First + (K - 1) mod Right'Length));
           end loop;
        end return;
     end "*";
--- 157,171 ----
        Right : String) return String
     is
        Ptr : Integer := 0;
     begin
        if Right'Length = 0 then
           return "";
        end if;
  
!       return Result : String (1 .. Left * Right'Length) do
           for J in 1 .. Left loop
              Result (Ptr + 1 .. Ptr + Right'Length) := Right;
              Ptr := Ptr + Right'Length;
           end loop;
        end return;
     end "*";
*************** package body Ada.Strings.Fixed with SPAR
*** 255,262 ****
     function Delete
       (Source  : String;
        From    : Positive;
!       Through : Natural) return String
!    is
     begin
        if From > Through then
           declare
--- 177,183 ----
     function Delete
       (Source  : String;
        From    : Positive;
!       Through : Natural) return String is
     begin
        if From > Through then
           declare
*************** package body Ada.Strings.Fixed with SPAR
*** 279,287 ****
              Result_Length : constant Integer := Front_Len + Back_Len;
              --  Length of result
           begin
!             return Result : String (1 .. Result_Length)
!               with Relaxed_Initialization
!             do
                 Result (1 .. Front_Len) :=
                   Source (Source'First .. From - 1);
  
--- 200,206 ----
              Result_Length : constant Integer := Front_Len + Back_Len;
              --  Length of result
           begin
!             return Result : String (1 .. Result_Length) do
                 Result (1 .. Front_Len) :=
                   Source (Source'First .. From - 1);
  
*************** package body Ada.Strings.Fixed with SPAR
*** 325,338 ****
             Result_Type (Source (Source'First .. Source'First + (Count - 1)));
  
        else
!          return Result : Result_Type with Relaxed_Initialization do
              Result (1 .. Source'Length) := Source;
  
              for J in Source'Length + 1 .. Count loop
                 Result (J) := Pad;
-                pragma Loop_Invariant
-                  (for all K in Source'Length + 1 .. J =>
-                     Result (K)'Initialized and then Result (K) = Pad);
              end loop;
           end return;
        end if;
--- 244,254 ----
             Result_Type (Source (Source'First .. Source'First + (Count - 1)));
  
        else
!          return Result : Result_Type do
              Result (1 .. Source'Length) := Source;
  
              for J in Source'Length + 1 .. Count loop
                 Result (J) := Pad;
              end loop;
           end return;
        end if;
*************** package body Ada.Strings.Fixed with SPAR
*** 342,349 ****
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Source  => Head (Source, Count, Pad),
              Target  => Source,
--- 258,264 ----
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space) is
     begin
        Move (Source  => Head (Source, Count, Pad),
              Target  => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 362,398 ****
        New_Item : String) return String
     is
        Front : constant Integer := Before - Source'First;
- 
     begin
        if Before - 1 not in Source'First - 1 .. Source'Last then
           raise Index_Error;
        end if;
  
!       return Result : String (1 .. Source'Length + New_Item'Length)
!         with Relaxed_Initialization
!       do
           Result (1 .. Front) :=
             Source (Source'First .. Before - 1);
           Result (Front + 1 .. Front + New_Item'Length) :=
             New_Item;
  
-          pragma Assert
-            (Result (1 .. Before - Source'First)
-             = Source (Source'First .. Before - 1));
-          pragma Assert
-            (Result
-               (Before - Source'First + 1
-                .. Before - Source'First + New_Item'Length)
-             = New_Item);
- 
           if Before <= Source'Last then
              Result (Front + New_Item'Length + 1 .. Result'Last) :=
                Source (Before .. Source'Last);
           end if;
- 
-          pragma Assert
-            (Result (1 .. Before - Source'First)
-             = Source (Source'First .. Before - 1));
        end return;
     end Insert;
  
--- 277,297 ----
        New_Item : String) return String
     is
        Front : constant Integer := Before - Source'First;
     begin
        if Before - 1 not in Source'First - 1 .. Source'Last then
           raise Index_Error;
        end if;
  
!       return Result : String (1 .. Source'Length + New_Item'Length) do
           Result (1 .. Front) :=
             Source (Source'First .. Before - 1);
           Result (Front + 1 .. Front + New_Item'Length) :=
             New_Item;
  
           if Before <= Source'Last then
              Result (Front + New_Item'Length + 1 .. Result'Last) :=
                Source (Before .. Source'Last);
           end if;
        end return;
     end Insert;
  
*************** package body Ada.Strings.Fixed with SPAR
*** 400,407 ****
       (Source   : in out String;
        Before   : Positive;
        New_Item : String;
!       Drop     : Truncation := Error)
!    is
     begin
        Move (Source => Insert (Source, Before, New_Item),
              Target => Source,
--- 299,305 ----
       (Source   : in out String;
        Before   : Positive;
        New_Item : String;
!       Drop     : Truncation := Error) is
     begin
        Move (Source => Insert (Source, Before, New_Item),
              Target => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 536,573 ****
           Front         : constant Integer := Position - Source'First;
  
        begin
!          return Result : String (1 .. Result_Length)
!            with Relaxed_Initialization
!          do
              Result (1 .. Front) := Source (Source'First .. Position - 1);
-             pragma Assert
-               (Result (1 .. Position - Source'First)
-                = Source (Source'First .. Position - 1));
              Result (Front + 1 .. Front + New_Item'Length) := New_Item;
-             pragma Assert
-               (Result
-                  (Position - Source'First + 1
-                   .. Position - Source'First + New_Item'Length)
-                = New_Item);
  
              if Position <= Source'Last - New_Item'Length then
                 Result (Front + New_Item'Length + 1 .. Result'Last) :=
                   Source (Position + New_Item'Length .. Source'Last);
- 
-                pragma Assert
-                  (Result
-                     (Position - Source'First + New_Item'Length + 1
-                      .. Result'Last)
-                   = Source (Position + New_Item'Length .. Source'Last));
              end if;
- 
-             pragma Assert
-               (if Position <= Source'Last - New_Item'Length
-                then
-                   Result
-                     (Position - Source'First + New_Item'Length + 1
-                      .. Result'Last)
-                   = Source (Position + New_Item'Length .. Source'Last));
           end return;
        end;
     end Overwrite;
--- 434,447 ----
           Front         : constant Integer := Position - Source'First;
  
        begin
!          return Result : String (1 .. Result_Length) do
              Result (1 .. Front) := Source (Source'First .. Position - 1);
              Result (Front + 1 .. Front + New_Item'Length) := New_Item;
  
              if Position <= Source'Last - New_Item'Length then
                 Result (Front + New_Item'Length + 1 .. Result'Last) :=
                   Source (Position + New_Item'Length .. Source'Last);
              end if;
           end return;
        end;
     end Overwrite;
*************** package body Ada.Strings.Fixed with SPAR
*** 576,583 ****
       (Source   : in out String;
        Position : Positive;
        New_Item : String;
!       Drop     : Truncation := Right)
!    is
     begin
        Move (Source => Overwrite (Source, Position, New_Item),
              Target => Source,
--- 450,456 ----
       (Source   : in out String;
        Position : Positive;
        New_Item : String;
!       Drop     : Truncation := Right) is
     begin
        Move (Source => Overwrite (Source, Position, New_Item),
              Target => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 612,650 ****
              --  Length of result
  
           begin
!             return Result : String (1 .. Result_Length)
!               with Relaxed_Initialization do
                 Result (1 .. Front_Len) := Source (Source'First .. Low - 1);
-                pragma Assert
-                  (Result (1 .. Integer'Max (0, Low - Source'First))
-                   = Source (Source'First .. Low - 1));
                 Result (Front_Len + 1 .. Front_Len + By'Length) := By;
-                pragma Assert
-                  (Result
-                     (Integer'Max (0, Low - Source'First) + 1
-                      .. Integer'Max (0, Low - Source'First) + By'Length)
-                   = By);
  
                 if High < Source'Last then
                    Result (Front_Len + By'Length + 1 .. Result'Last) :=
                      Source (High + 1 .. Source'Last);
                 end if;
- 
-                pragma Assert
-                  (Result (1 .. Integer'Max (0, Low - Source'First))
-                   = Source (Source'First .. Low - 1));
-                pragma Assert
-                  (Result
-                     (Integer'Max (0, Low - Source'First) + 1
-                      .. Integer'Max (0, Low - Source'First) + By'Length)
-                   = By);
-                pragma Assert
-                  (if High < Source'Last
-                   then
-                      Result
-                     (Integer'Max (0, Low - Source'First) + By'Length + 1
-                      .. Result'Last)
-                   = Source (High + 1 .. Source'Last));
              end return;
           end;
        else
--- 485,498 ----
              --  Length of result
  
           begin
!             return Result : String (1 .. Result_Length) do
                 Result (1 .. Front_Len) := Source (Source'First .. Low - 1);
                 Result (Front_Len + 1 .. Front_Len + By'Length) := By;
  
                 if High < Source'Last then
                    Result (Front_Len + By'Length + 1 .. Result'Last) :=
                      Source (High + 1 .. Source'Last);
                 end if;
              end return;
           end;
        else
*************** package body Ada.Strings.Fixed with SPAR
*** 659,666 ****
        By       : String;
        Drop     : Truncation := Error;
        Justify  : Alignment  := Left;
!       Pad      : Character  := Space)
!    is
     begin
        Move (Replace_Slice (Source, Low, High, By), Source, Drop, Justify, Pad);
     end Replace_Slice;
--- 507,513 ----
        By       : String;
        Drop     : Truncation := Error;
        Justify  : Alignment  := Left;
!       Pad      : Character  := Space) is
     begin
        Move (Replace_Slice (Source, Low, High, By), Source, Drop, Justify, Pad);
     end Replace_Slice;
*************** package body Ada.Strings.Fixed with SPAR
*** 675,681 ****
        Pad    : Character := Space) return String
     is
        subtype Result_Type is String (1 .. Count);
- 
     begin
        if Count = 0 then
           return "";
--- 522,527 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 686,697 ****
        --  Pad on left
  
        else
!          return Result : Result_Type with Relaxed_Initialization do
              for J in 1 .. Count - Source'Length loop
                 Result (J) := Pad;
-                pragma Loop_Invariant
-                  (for all K in 1 .. J =>
-                     Result (K)'Initialized and then Result (K) = Pad);
              end loop;
  
              if Source'Length /= 0 then
--- 532,540 ----
        --  Pad on left
  
        else
!          return Result : Result_Type do
              for J in 1 .. Count - Source'Length loop
                 Result (J) := Pad;
              end loop;
  
              if Source'Length /= 0 then
*************** package body Ada.Strings.Fixed with SPAR
*** 705,712 ****
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Source  => Tail (Source, Count, Pad),
              Target  => Source,
--- 548,554 ----
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space) is
     begin
        Move (Source  => Tail (Source, Count, Pad),
              Target  => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 721,755 ****
  
     function Translate
       (Source  : String;
!       Mapping : Maps.Character_Mapping) return String
!    is
     begin
!       return Result : String (1 .. Source'Length)
!         with Relaxed_Initialization
!       do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Value (Mapping, Source (J));
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1))'Initialized);
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1)) =
-                    Value (Mapping, Source (K)));
           end loop;
        end return;
     end Translate;
  
     procedure Translate
       (Source  : in out String;
!       Mapping : Maps.Character_Mapping)
!    is
     begin
        for J in Source'Range loop
           Source (J) := Value (Mapping, Source (J));
-          pragma Loop_Invariant
-            (for all K in Source'First .. J =>
-               Source (K) = Value (Mapping, Source'Loop_Entry (K)));
        end loop;
     end Translate;
  
--- 563,583 ----
  
     function Translate
       (Source  : String;
!       Mapping : Maps.Character_Mapping) return String is
     begin
!       return Result : String (1 .. Source'Length) do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Value (Mapping, Source (J));
           end loop;
        end return;
     end Translate;
  
     procedure Translate
       (Source  : in out String;
!       Mapping : Maps.Character_Mapping) is
     begin
        for J in Source'Range loop
           Source (J) := Value (Mapping, Source (J));
        end loop;
     end Translate;
  
*************** package body Ada.Strings.Fixed with SPAR
*** 759,781 ****
     is
        pragma Unsuppress (Access_Check);
     begin
!       return Result : String (1 .. Source'Length)
!         with Relaxed_Initialization
!       do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Mapping.all (Source (J));
-             pragma Annotate (GNATprove, False_Positive,
-                              "call via access-to-subprogram",
-                              "function Mapping must always terminate");
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1))'Initialized);
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1)) = Mapping (Source (K)));
-             pragma Annotate (GNATprove, False_Positive,
-                              "call via access-to-subprogram",
-                              "function Mapping must always terminate");
           end loop;
        end return;
     end Translate;
--- 587,595 ----
     is
        pragma Unsuppress (Access_Check);
     begin
!       return Result : String (1 .. Source'Length) do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Mapping.all (Source (J));
           end loop;
        end return;
     end Translate;
*************** package body Ada.Strings.Fixed with SPAR
*** 788,802 ****
     begin
        for J in Source'Range loop
           Source (J) := Mapping.all (Source (J));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
-          pragma Loop_Invariant
-            (for all K in Source'First .. J =>
-               Source (K) = Mapping (Source'Loop_Entry (K)));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
        end loop;
     end Translate;
  
--- 602,607 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 872,879 ****
       (Source  : in out String;
        Side    : Trim_End;
        Justify : Alignment := Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Trim (Source, Side),
              Source,
--- 677,683 ----
       (Source  : in out String;
        Side    : Trim_End;
        Justify : Alignment := Left;
!       Pad     : Character := Space) is
     begin
        Move (Trim (Source, Side),
              Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 887,893 ****
        Right  : Maps.Character_Set) return String
     is
        High, Low : Integer;
- 
     begin
        Low := Index (Source, Set => Left, Test => Outside, Going => Forward);
  
--- 691,696 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 908,914 ****
        declare
           Result_Length : constant Integer := High - Low + 1;
           subtype Result_Type is String (1 .. Result_Length);
- 
        begin
           return Result_Type (Source (Low .. High));
        end;
--- 711,716 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 919,926 ****
        Left    : Maps.Character_Set;
        Right   : Maps.Character_Set;
        Justify : Alignment := Strings.Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Source  => Trim (Source, Left, Right),
              Target  => Source,
--- 721,727 ----
        Left    : Maps.Character_Set;
        Right   : Maps.Character_Set;
        Justify : Alignment := Strings.Left;
!       Pad     : Character := Space) is
     begin
        Move (Source  => Trim (Source, Left, Right),
              Target  => Source,
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-strmap.adb gcc-16-20250608/gcc/ada/libgnat/a-strmap.adb
*** gcc-16-20250601/gcc/ada/libgnat/a-strmap.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-strmap.adb	Sun Jun  8 22:32:16 2025
***************
*** 35,48 ****
  --  is bit-by-bit or character-by-character and therefore rather slow.
  --  Generally for character sets we favor the full 32-byte representation.
  
- --  Assertions, ghost code and loop invariants in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Assert         => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore);
- 
  package body Ada.Strings.Maps
    with SPARK_Mode
  is
--- 35,40 ----
*************** is
*** 131,166 ****
     ---------------
  
     function To_Domain (Map : Character_Mapping) return Character_Sequence is
!       Result : String (1 .. Map'Length) with Relaxed_Initialization;
        J      : Natural;
- 
-       type Character_Index is array (Character) of Natural with Ghost;
-       Indexes : Character_Index := [others => 0] with Ghost;
- 
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := C;
-             Indexes (C) := J;
           end if;
- 
-          pragma Loop_Invariant (if Map = Identity then J = 0);
-          pragma Loop_Invariant (J <= Character'Pos (C) + 1);
-          pragma Loop_Invariant (for all K in 1 .. J => Result (K)'Initialized);
-          pragma Loop_Invariant (for all K in 1 .. J => Result (K) <= C);
-          pragma Loop_Invariant
-            (SPARK_Proof_Sorted_Character_Sequence (Result (1 .. J)));
-          pragma Loop_Invariant
-            (for all D in Map'First .. C =>
-               (if Map (D) = D then
-                  Indexes (D) = 0
-                else
-                  Indexes (D) in 1 .. J
-                    and then Result (Indexes (D)) = D));
-          pragma Loop_Invariant
-            (for all Char of Result (1 .. J) => Map (Char) /= Char);
        end loop;
  
        return Result (1 .. J);
--- 123,137 ----
     ---------------
  
     function To_Domain (Map : Character_Mapping) return Character_Sequence is
!       Result : String (1 .. Map'Length);
        J      : Natural;
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := C;
           end if;
        end loop;
  
        return Result (1 .. J);
*************** is
*** 173,179 ****
     function To_Mapping
       (From, To : Character_Sequence) return Character_Mapping
     is
!       Result   : Character_Mapping with Relaxed_Initialization;
        Inserted : Character_Set := Null_Set;
        From_Len : constant Natural := From'Length;
        To_Len   : constant Natural := To'Length;
--- 144,150 ----
     function To_Mapping
       (From, To : Character_Sequence) return Character_Mapping
     is
!       Result   : Character_Mapping;
        Inserted : Character_Set := Null_Set;
        From_Len : constant Natural := From'Length;
        To_Len   : constant Natural := To'Length;
*************** is
*** 185,193 ****
  
        for Char in Character loop
           Result (Char) := Char;
-          pragma Loop_Invariant (Result (Result'First .. Char)'Initialized);
-          pragma Loop_Invariant
-            (for all C in Result'First .. Char => Result (C) = C);
        end loop;
  
        for J in From'Range loop
--- 156,161 ----
*************** is
*** 197,219 ****
  
           Result   (From (J)) := To (J - From'First + To'First);
           Inserted (From (J)) := True;
- 
-          pragma Loop_Invariant (Result'Initialized);
-          pragma Loop_Invariant
-            (for all K in From'First .. J =>
-               Result (From (K)) = To (K - From'First + To'First)
-                 and then Inserted (From (K)));
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               (Inserted (Char) =
-                  (for some K in From'First .. J => Char = From (K))));
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               (if not Inserted (Char) then Result (Char) = Char));
-          pragma Loop_Invariant
-            (if (for all K in From'First .. J =>
-                   From (K) = To (J - From'First + To'First))
-             then Result = Identity);
        end loop;
  
        return Result;
--- 165,170 ----
*************** is
*** 224,418 ****
     --------------
  
     function To_Range (Map : Character_Mapping) return Character_Sequence is
! 
!       --  Extract from the postcondition of To_Domain the essential properties
!       --  that define Seq as the domain of Map.
!       function Is_Domain
!         (Map : Character_Mapping;
!          Seq : Character_Sequence)
!          return Boolean
!       is
!         (Seq'First = 1
!            and then
!          SPARK_Proof_Sorted_Character_Sequence (Seq)
!            and then
!          (for all Char in Character =>
!             (if (for all X of Seq => X /= Char)
!              then Map (Char) = Char))
!            and then
!          (for all Char of Seq => Map (Char) /= Char))
!       with
!         Ghost;
! 
!       --  Given Map, there is a unique sequence Seq for which
!       --  Is_Domain(Map,Seq) holds.
!       procedure Lemma_Domain_Unicity
!         (Map        : Character_Mapping;
!          Seq1, Seq2 : Character_Sequence)
!       with
!         Ghost,
!         Pre  => Is_Domain (Map, Seq1)
!           and then Is_Domain (Map, Seq2),
!         Post => Seq1 = Seq2;
! 
!       --  Isolate the proof that To_Domain(Map) returns a sequence for which
!       --  Is_Domain holds.
!       procedure Lemma_Is_Domain (Map : Character_Mapping)
!       with
!         Ghost,
!         Post => Is_Domain (Map, To_Domain (Map));
! 
!       --  Deduce the alternative expression of sortedness from the one in
!       --  SPARK_Proof_Sorted_Character_Sequence which compares consecutive
!       --  elements.
!       procedure Lemma_Is_Sorted (Seq : Character_Sequence)
!       with
!         Ghost,
!         Pre  => SPARK_Proof_Sorted_Character_Sequence (Seq),
!         Post => (for all J in Seq'Range =>
!                    (for all K in Seq'Range =>
!                       (if J < K then Seq (J) < Seq (K))));
! 
!       --------------------------
!       -- Lemma_Domain_Unicity --
!       --------------------------
! 
!       procedure Lemma_Domain_Unicity
!         (Map        : Character_Mapping;
!          Seq1, Seq2 : Character_Sequence)
!       is
!          J : Positive := 1;
! 
!       begin
!          while J <= Seq1'Last
!            and then J <= Seq2'Last
!            and then Seq1 (J) = Seq2 (J)
!          loop
!             pragma Loop_Invariant
!               (Seq1 (Seq1'First .. J) = Seq2 (Seq2'First .. J));
!             pragma Loop_Variant (Increases => J);
! 
!             if J = Positive'Last then
!                return;
!             end if;
! 
!             J := J + 1;
!          end loop;
! 
!          Lemma_Is_Sorted (Seq1);
!          Lemma_Is_Sorted (Seq2);
! 
!          if J <= Seq1'Last
!            and then J <= Seq2'Last
!          then
!             if Seq1 (J) < Seq2 (J) then
!                pragma Assert (for all X of Seq2 => X /= Seq1 (J));
!                pragma Assert (Map (Seq1 (J)) = Seq1 (J));
!                pragma Assert (False);
!             else
!                pragma Assert (for all X of Seq1 => X /= Seq2 (J));
!                pragma Assert (Map (Seq2 (J)) = Seq2 (J));
!                pragma Assert (False);
!             end if;
! 
!          elsif J <= Seq1'Last then
!             pragma Assert (for all X of Seq2 => X /= Seq1 (J));
!             pragma Assert (Map (Seq1 (J)) = Seq1 (J));
!             pragma Assert (False);
! 
!          elsif J <= Seq2'Last then
!             pragma Assert (for all X of Seq1 => X /= Seq2 (J));
!             pragma Assert (Map (Seq2 (J)) = Seq2 (J));
!             pragma Assert (False);
!          end if;
!       end Lemma_Domain_Unicity;
! 
!       ---------------------
!       -- Lemma_Is_Domain --
!       ---------------------
! 
!       procedure Lemma_Is_Domain (Map : Character_Mapping) is
!          Ignore : constant Character_Sequence := To_Domain (Map);
!       begin
!          null;
!       end Lemma_Is_Domain;
! 
!       ---------------------
!       -- Lemma_Is_Sorted --
!       ---------------------
! 
!       procedure Lemma_Is_Sorted (Seq : Character_Sequence) is
!       begin
!          for A in Seq'Range loop
!             exit when A = Positive'Last;
! 
!             for B in A + 1 .. Seq'Last loop
!                pragma Loop_Invariant
!                  (for all K in A + 1 .. B => Seq (A) < Seq (K));
!             end loop;
! 
!             pragma Loop_Invariant
!               (for all J in Seq'First .. A =>
!                  (for all K in Seq'Range =>
!                     (if J < K then Seq (J) < Seq (K))));
!          end loop;
!       end Lemma_Is_Sorted;
! 
!       --  Local variables
! 
!       Result : String (1 .. Map'Length) with Relaxed_Initialization;
        J      : Natural;
- 
-       --  Repeat the computation from To_Domain in ghost code, in order to
-       --  prove the relationship between Result and To_Domain(Map).
- 
-       Domain : String (1 .. Map'Length) with Ghost, Relaxed_Initialization;
-       type Character_Index is array (Character) of Natural with Ghost;
-       Indexes : Character_Index := [others => 0] with Ghost;
- 
-    --  Start of processing for To_Range
- 
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := Map (C);
-             Domain (J) := C;
-             Indexes (C) := J;
           end if;
- 
-          --  Repeat the loop invariants from To_Domain regarding Domain and
-          --  Indexes. Add similar loop invariants for Result and Indexes.
- 
-          pragma Loop_Invariant (J <= Character'Pos (C) + 1);
-          pragma Loop_Invariant (Result (1 .. J)'Initialized);
-          pragma Loop_Invariant (Domain (1 .. J)'Initialized);
-          pragma Loop_Invariant (for all K in 1 .. J => Domain (K) <= C);
-          pragma Loop_Invariant
-            (SPARK_Proof_Sorted_Character_Sequence (Domain (1 .. J)));
-          pragma Loop_Invariant
-            (for all D in Map'First .. C =>
-               (if Map (D) = D then
-                  Indexes (D) = 0
-                else
-                  Indexes (D) in 1 .. J
-                    and then Domain (Indexes (D)) = D
-                    and then Result (Indexes (D)) = Map (D)));
-          pragma Loop_Invariant
-            (for all Char of Domain (1 .. J) => Map (Char) /= Char);
-          pragma Loop_Invariant
-            (for all K in 1 .. J => Result (K) = Map (Domain (K)));
        end loop;
-       pragma Assert (Is_Domain (Map, Domain (1 .. J)));
- 
-       --  Show the equality of Domain and To_Domain(Map)
- 
-       Lemma_Is_Domain (Map);
-       Lemma_Domain_Unicity (Map, Domain (1 .. J), To_Domain (Map));
-       pragma Assert
-         (for all K in 1 .. J => Domain (K) = To_Domain (Map) (K));
-       pragma Assert (To_Domain (Map)'Length = J);
  
        return Result (1 .. J);
     end To_Range;
--- 175,190 ----
     --------------
  
     function To_Range (Map : Character_Mapping) return Character_Sequence is
!       Result : String (1 .. Map'Length);
        J      : Natural;
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := Map (C);
           end if;
        end loop;
  
        return Result (1 .. J);
     end To_Range;
*************** is
*** 422,448 ****
     ---------------
  
     function To_Ranges (Set : Character_Set) return Character_Ranges is
!       Max_Ranges : Character_Ranges (1 .. Set'Length / 2 + 1)
!         with Relaxed_Initialization;
        Range_Num  : Natural;
        C          : Character;
-       C_Iter     : Character with Ghost;
  
     begin
        C := Character'First;
        Range_Num := 0;
  
        loop
-          C_Iter := C;
- 
           --  Skip gap between subsets
  
           while not Set (C) loop
-             pragma Loop_Invariant
-               (Character'Pos (C) >= Character'Pos (C'Loop_Entry));
-             pragma Loop_Invariant
-               (for all Char in C'Loop_Entry .. C => not Set (Char));
-             pragma Loop_Variant (Increases => C);
              exit when C = Character'Last;
              C := Character'Succ (C);
           end loop;
--- 194,211 ----
     ---------------
  
     function To_Ranges (Set : Character_Set) return Character_Ranges is
!       Max_Ranges : Character_Ranges (1 .. Set'Length / 2 + 1);
        Range_Num  : Natural;
        C          : Character;
  
     begin
        C := Character'First;
        Range_Num := 0;
  
        loop
           --  Skip gap between subsets
  
           while not Set (C) loop
              exit when C = Character'Last;
              C := Character'Succ (C);
           end loop;
*************** is
*** 455,466 ****
           --  Span a subset
  
           loop
-             pragma Loop_Invariant
-               (Character'Pos (C) >= Character'Pos (C'Loop_Entry));
-             pragma Loop_Invariant
-               (for all Char in C'Loop_Entry .. C =>
-                  (if Char /= C then Set (Char)));
-             pragma Loop_Variant (Increases => C);
              exit when not Set (C) or else C = Character'Last;
              C := Character'Succ (C);
           end loop;
--- 218,223 ----
*************** is
*** 471,501 ****
           else
              Max_Ranges (Range_Num).High := Character'Pred (C);
           end if;
- 
-          pragma Assert
-            (for all Char in C_Iter .. C =>
-               (Set (Char) =
-                  (Char in Max_Ranges (Range_Num).Low ..
-                           Max_Ranges (Range_Num).High)));
-          pragma Assert
-            (for all Char in Character'First .. C_Iter =>
-               (if Char /= C_Iter then
-                  (Set (Char) =
-                     (for some Span of Max_Ranges (1 .. Range_Num - 1) =>
-                        Char in Span.Low .. Span.High))));
- 
-          pragma Loop_Invariant (2 * Range_Num <= Character'Pos (C) + 1);
-          pragma Loop_Invariant (Max_Ranges (1 .. Range_Num)'Initialized);
-          pragma Loop_Invariant (not Set (C));
-          pragma Loop_Invariant
-            (for all Char in Character'First .. C =>
-               (Set (Char) =
-                  (for some Span of Max_Ranges (1 .. Range_Num) =>
-                     Char in Span.Low .. Span.High)));
-          pragma Loop_Invariant
-            (for all Span of Max_Ranges (1 .. Range_Num) =>
-               (for all Char in Span.Low .. Span.High => Set (Char)));
-          pragma Loop_Variant (Increases => Range_Num);
        end loop;
  
        return Max_Ranges (1 .. Range_Num);
--- 228,233 ----
*************** is
*** 506,513 ****
     -----------------
  
     function To_Sequence (Set : Character_Set) return Character_Sequence is
!       Result : String (1 .. Character'Pos (Character'Last) + 1)
!         with Relaxed_Initialization;
        Count  : Natural := 0;
     begin
        for Char in Set'Range loop
--- 238,244 ----
     -----------------
  
     function To_Sequence (Set : Character_Set) return Character_Sequence is
!       Result : String (1 .. Character'Pos (Character'Last) + 1);
        Count  : Natural := 0;
     begin
        for Char in Set'Range loop
*************** is
*** 515,531 ****
              Count := Count + 1;
              Result (Count) := Char;
           end if;
- 
-          pragma Loop_Invariant (Count <= Character'Pos (Char) + 1);
-          pragma Loop_Invariant (Result (1 .. Count)'Initialized);
-          pragma Loop_Invariant (for all K in 1 .. Count => Result (K) <= Char);
-          pragma Loop_Invariant
-            (SPARK_Proof_Sorted_Character_Sequence (Result (1 .. Count)));
-          pragma Loop_Invariant
-            (for all C in Set'First .. Char =>
-               (Set (C) = (for some X of Result (1 .. Count) => C = X)));
-          pragma Loop_Invariant
-            (for all Char of Result (1 .. Count) => Is_In (Char, Set));
        end loop;
  
        return Result (1 .. Count);
--- 246,251 ----
*************** is
*** 541,559 ****
        for R in Ranges'Range loop
           for C in Ranges (R).Low .. Ranges (R).High loop
              Result (C) := True;
-             pragma Loop_Invariant
-               (for all Char in Character =>
-                  Result (Char) =
-                    ((for some Prev in Ranges'First .. R - 1 =>
-                        Char in Ranges (Prev).Low .. Ranges (Prev).High)
-                     or else Char in Ranges (R).Low .. C));
           end loop;
- 
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               Result (Char) =
-                 (for some Prev in Ranges'First .. R =>
-                    Char in Ranges (Prev).Low .. Ranges (Prev).High));
        end loop;
  
        return Result;
--- 261,267 ----
*************** is
*** 564,572 ****
     begin
        for C in Span.Low .. Span.High loop
           Result (C) := True;
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               Result (Char) = (Char in Span.Low .. C));
        end loop;
  
        return Result;
--- 272,277 ----
*************** is
*** 577,586 ****
     begin
        for J in Sequence'Range loop
           Result (Sequence (J)) := True;
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               Result (Char) =
-                 (for some K in Sequence'First .. J => Char = Sequence (K)));
        end loop;
  
        return Result;
--- 282,287 ----
*************** is
*** 599,606 ****
  
     function Value
       (Map     : Character_Mapping;
!       Element : Character) return Character
!    is
!       (Map (Element));
  
  end Ada.Strings.Maps;
--- 300,305 ----
  
     function Value
       (Map     : Character_Mapping;
!       Element : Character) return Character is (Map (Element));
  
  end Ada.Strings.Maps;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-strsea.adb gcc-16-20250608/gcc/ada/libgnat/a-strsea.adb
*** gcc-16-20250601/gcc/ada/libgnat/a-strsea.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-strsea.adb	Sun Jun  8 22:32:16 2025
***************
*** 35,48 ****
  --  case of identity mappings for Count and Index, and also Index_Non_Blank
  --  is specialized (rather than using the general Index routine).
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with Ada.Strings.Maps; use Ada.Strings.Maps;
  with System;           use System;
  
--- 35,40 ----
*************** package body Ada.Strings.Search with SPA
*** 110,119 ****
                 Num := Num + 1;
                 Ind := Ind + PL1;
              end if;
- 
-             pragma Loop_Invariant (Num <= Ind - (Source'First - 1));
-             pragma Loop_Invariant (Ind >= Source'First);
-             pragma Loop_Variant (Increases => Ind);
           end loop;
  
        --  Mapped case
--- 102,107 ----
*************** package body Ada.Strings.Search with SPA
*** 125,149 ****
                 if Pattern (K) /= Value (Mapping,
                   Source (Ind + (K - Pattern'First)))
                 then
-                   pragma Assert (not Match (Source, Pattern, Mapping, Ind));
                    goto Cont;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Pattern'First .. K =>
-                     Pattern (J) = Value (Mapping,
-                       Source (Ind + (J - Pattern'First))));
              end loop;
  
-             pragma Assert (Match (Source, Pattern, Mapping, Ind));
              Num := Num + 1;
              Ind := Ind + PL1;
  
              <<Cont>>
              null;
-             pragma Loop_Invariant (Num <= Ind - (Source'First - 1));
-             pragma Loop_Invariant (Ind >= Source'First);
-             pragma Loop_Variant (Increases => Ind);
           end loop;
        end if;
  
--- 113,127 ----
*************** package body Ada.Strings.Search with SPA
*** 185,214 ****
           Ind := Ind + 1;
           for K in Pattern'Range loop
              if Pattern (K) /= Mapping (Source (Ind + (K - Pattern'First))) then
-                pragma Annotate (GNATprove, False_Positive,
-                                 "call via access-to-subprogram",
-                                 "function Mapping must always terminate");
-                pragma Assert (not Match (Source, Pattern, Mapping, Ind));
                 goto Cont;
              end if;
- 
-             pragma Loop_Invariant
-               (for all J in Pattern'First .. K =>
-                  Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
-             pragma Annotate (GNATprove, False_Positive,
-                              "call via access-to-subprogram",
-                              "function Mapping must always terminate");
           end loop;
  
-          pragma Assert (Match (Source, Pattern, Mapping, Ind));
           Num := Num + 1;
           Ind := Ind + PL1;
  
        <<Cont>>
           null;
-          pragma Loop_Invariant (Num <= Ind - (Source'First - 1));
-          pragma Loop_Invariant (Ind >= Source'First);
-          pragma Loop_Variant (Increases => Ind);
        end loop;
  
        return Num;
--- 163,177 ----
*************** package body Ada.Strings.Search with SPA
*** 219,228 ****
        Set    : Maps.Character_Set) return Natural
     is
        N : Natural := 0;
- 
     begin
        for J in Source'Range loop
-          pragma Loop_Invariant (N <= J - Source'First);
           if Is_In (Source (J), Set) then
              N := N + 1;
           end if;
--- 182,189 ----
*************** package body Ada.Strings.Search with SPA
*** 241,248 ****
        From   : Positive;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural)
!    is
     begin
        --  AI05-031: Raise Index error if Source non-empty and From not in range
  
--- 202,208 ----
        From   : Positive;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural) is
     begin
        --  AI05-031: Raise Index error if Source non-empty and From not in range
  
*************** package body Ada.Strings.Search with SPA
*** 264,273 ****
                       Last := K - 1;
                       return;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all L in J .. K =>
-                        Belongs (Source (L), Set, Test));
                 end loop;
              end if;
  
--- 224,229 ----
*************** package body Ada.Strings.Search with SPA
*** 277,286 ****
              Last := Source'Last;
              return;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Integer'Max (From, Source'First) .. J =>
-                 not Belongs (Source (K), Set, Test));
        end loop;
  
        --  Here if no token found
--- 233,238 ----
*************** package body Ada.Strings.Search with SPA
*** 294,301 ****
        Set    : Maps.Character_Set;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural)
!    is
     begin
        for J in Source'Range loop
           if Belongs (Source (J), Set, Test) then
--- 246,252 ----
        Set    : Maps.Character_Set;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural) is
     begin
        for J in Source'Range loop
           if Belongs (Source (J), Set, Test) then
*************** package body Ada.Strings.Search with SPA
*** 307,316 ****
                       Last := K - 1;
                       return;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all L in J .. K =>
-                        Belongs (Source (L), Set, Test));
                 end loop;
              end if;
  
--- 258,263 ----
*************** package body Ada.Strings.Search with SPA
*** 320,329 ****
              Last := Source'Last;
              return;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Source'First .. J =>
-               not Belongs (Source (K), Set, Test));
        end loop;
  
        --  Here if no token found
--- 267,272 ----
*************** package body Ada.Strings.Search with SPA
*** 335,341 ****
  
        if Source'First not in Positive then
           raise Constraint_Error;
- 
        else
           First := Source'First;
           Last  := 0;
--- 278,283 ----
*************** package body Ada.Strings.Search with SPA
*** 353,359 ****
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     is
        PL1 : constant Integer := Pattern'Length - 1;
- 
     begin
        if Pattern = "" then
           raise Pattern_Error;
--- 295,300 ----
*************** package body Ada.Strings.Search with SPA
*** 374,386 ****
           if Is_Identity (Mapping) then
              for Ind in Source'First .. Source'Last - PL1 loop
                 if Pattern = Source (Ind .. Ind + PL1) then
-                   pragma Assert (Match (Source, Pattern, Mapping, Ind));
                    return Ind;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Source'First .. Ind =>
-                     not Match (Source, Pattern, Mapping, J));
              end loop;
  
           --  Mapped forward case
--- 315,322 ----
*************** package body Ada.Strings.Search with SPA
*** 393,412 ****
                    then
                       goto Cont1;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all J in Pattern'First .. K =>
-                        Pattern (J) = Value (Mapping,
-                          Source (Ind + (J - Pattern'First))));
                 end loop;
  
-                pragma Assert (Match (Source, Pattern, Mapping, Ind));
                 return Ind;
  
                 <<Cont1>>
-                pragma Loop_Invariant
-                  (for all J in Source'First .. Ind =>
-                     not Match (Source, Pattern, Mapping, J));
                 null;
              end loop;
           end if;
--- 329,339 ----
*************** package body Ada.Strings.Search with SPA
*** 419,431 ****
           if Is_Identity (Mapping) then
              for Ind in reverse Source'First .. Source'Last - PL1 loop
                 if Pattern = Source (Ind .. Ind + PL1) then
-                   pragma Assert (Match (Source, Pattern, Mapping, Ind));
                    return Ind;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Ind .. Source'Last - PL1 =>
-                     not Match (Source, Pattern, Mapping, J));
              end loop;
  
           --  Mapped backward case
--- 346,353 ----
*************** package body Ada.Strings.Search with SPA
*** 438,457 ****
                    then
                       goto Cont2;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all J in Pattern'First .. K =>
-                        Pattern (J) = Value (Mapping,
-                          Source (Ind + (J - Pattern'First))));
                 end loop;
  
-                pragma Assert (Match (Source, Pattern, Mapping, Ind));
                 return Ind;
  
                 <<Cont2>>
-                pragma Loop_Invariant
-                  (for all J in Ind .. Source'Last - PL1 =>
-                     not Match (Source, Pattern, Mapping, J));
                 null;
              end loop;
           end if;
--- 360,370 ----
*************** package body Ada.Strings.Search with SPA
*** 495,521 ****
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
-                   pragma Annotate (GNATprove, False_Positive,
-                                    "call via access-to-subprogram",
-                                    "function Mapping must always terminate");
                    goto Cont1;
                 end if;
  
                 pragma Loop_Invariant
                   (for all J in Pattern'First .. K =>
                     Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
-                pragma Annotate (GNATprove, False_Positive,
-                                 "call via access-to-subprogram",
-                                 "function Mapping must always terminate");
              end loop;
  
-             pragma Assert (Match (Source, Pattern, Mapping, Ind));
              return Ind;
  
              <<Cont1>>
-             pragma Loop_Invariant
-               (for all J in Source'First .. Ind =>
-                  not Match (Source, Pattern, Mapping, J));
              null;
           end loop;
  
--- 408,424 ----
*************** package body Ada.Strings.Search with SPA
*** 527,552 ****
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
-                   pragma Annotate (GNATprove, False_Positive,
-                                    "call via access-to-subprogram",
-                                    "function Mapping must always terminate");
                    goto Cont2;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Pattern'First .. K =>
-                    Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
-                pragma Annotate (GNATprove, False_Positive,
-                                 "call via access-to-subprogram",
-                                 "function Mapping must always terminate");
              end loop;
  
              return Ind;
  
              <<Cont2>>
-             pragma Loop_Invariant
-               (for all J in Ind .. Source'Last - PL1 =>
-                 not Match (Source, Pattern, Mapping, J));
              null;
           end loop;
        end if;
--- 430,442 ----
*************** package body Ada.Strings.Search with SPA
*** 561,568 ****
       (Source : String;
        Set    : Maps.Character_Set;
        Test   : Membership := Inside;
!       Going  : Direction  := Forward) return Natural
!    is
     begin
        --  Forwards case
  
--- 451,457 ----
       (Source : String;
        Set    : Maps.Character_Set;
        Test   : Membership := Inside;
!       Going  : Direction  := Forward) return Natural is
     begin
        --  Forwards case
  
*************** package body Ada.Strings.Search with SPA
*** 571,580 ****
              if Belongs (Source (J), Set, Test) then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (Source'First .. J) =>
-                    not Belongs (C, Set, Test));
           end loop;
  
        --  Backwards case
--- 460,465 ----
*************** package body Ada.Strings.Search with SPA
*** 584,593 ****
              if Belongs (Source (J), Set, Test) then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (J .. Source'Last) =>
-                    not Belongs (C, Set, Test));
           end loop;
        end if;
  
--- 469,474 ----
*************** package body Ada.Strings.Search with SPA
*** 604,610 ****
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     is
        Result : Natural;
-       PL1    : constant Integer := Pattern'Length - 1;
     begin
  
        --  AI05-056: If source is empty result is always zero
--- 485,490 ----
*************** package body Ada.Strings.Search with SPA
*** 619,630 ****
  
           Result :=
             Index (Source (From .. Source'Last), Pattern, Forward, Mapping);
-          pragma Assert
-            (if (for some J in From .. Source'Last - PL1 =>
-                  Match (Source, Pattern, Mapping, J))
-             then Result in From .. Source'Last - PL1
-               and then Match (Source, Pattern, Mapping, Result)
-             else Result = 0);
  
        else
           if From > Source'Last then
--- 499,504 ----
*************** package body Ada.Strings.Search with SPA
*** 633,644 ****
  
           Result :=
             Index (Source (Source'First .. From), Pattern, Backward, Mapping);
-          pragma Assert
-            (if (for some J in Source'First .. From - PL1 =>
-                   Match (Source, Pattern, Mapping, J))
-             then Result in Source'First .. From - PL1
-               and then Match (Source, Pattern, Mapping, Result)
-             else Result = 0);
        end if;
  
        return Result;
--- 507,512 ----
*************** package body Ada.Strings.Search with SPA
*** 722,730 ****
              if Source (J) /= ' ' then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (Source'First .. J) => C = ' ');
           end loop;
  
        else -- Going = Backward
--- 590,595 ----
*************** package body Ada.Strings.Search with SPA
*** 732,740 ****
              if Source (J) /= ' ' then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (J .. Source'Last) => C = ' ');
           end loop;
        end if;
  
--- 597,602 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/a-strsup.adb gcc-16-20250608/gcc/ada/libgnat/a-strsup.adb
*** gcc-16-20250601/gcc/ada/libgnat/a-strsup.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/a-strsup.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,43 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop (in)variants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Loop_Variant   => Ignore,
-                          Assert         => Ignore);
- 
  with Ada.Strings.Maps; use Ada.Strings.Maps;
  
  package body Ada.Strings.Superbounded with SPARK_Mode is
--- 29,34 ----
*************** package body Ada.Strings.Superbounded wi
*** 1438,1528 ****
        Indx   : Natural;
        Ilen   : constant Natural := Item'Length;
  
-       --  Parts of the proof involving manipulations with the modulo operator
-       --  are complicated for the prover and can't be done automatically in
-       --  the global subprogram. That's why we isolate them in these two ghost
-       --  lemmas.
- 
-       procedure Lemma_Mod (K : Natural; Q : Natural) with
-         Ghost,
-         Pre  => Ilen /= 0
-           and then Q mod Ilen = 0
-           and then K - Q in 0 .. Ilen - 1,
-         Post => K mod Ilen = K - Q;
-       --  Lemma_Mod is applied to an index considered in Lemma_Split to prove
-       --  that it has the right value modulo Item'Length.
- 
-       procedure Lemma_Mod_Zero (X : Natural) with
-         Ghost,
-         Pre  => Ilen /= 0
-           and then X mod Ilen = 0
-           and then X <= Natural'Last - Ilen,
-         Post => (X + Ilen) mod Ilen = 0;
-       --  Lemma_Mod_Zero is applied to prove that the length of the range
-       --  of indexes considered in the loop, when dropping on the Left, is
-       --  a multiple of Item'Length.
- 
-       procedure Lemma_Split (Going : Direction) with
-         Ghost,
-         Pre  =>
-           Ilen /= 0
-             and then Indx in 0 .. Max_Length - Ilen
-             and then
-               (if Going = Forward
-                then Indx mod Ilen = 0
-                else (Max_Length - Indx - Ilen) mod Ilen = 0)
-             and then Result.Data (Indx + 1 .. Indx + Ilen)'Initialized
-             and then String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item,
-         Post =>
-           (if Going = Forward then
-              (for all J in Indx + 1 .. Indx + Ilen =>
-                 Result.Data (J) = Item (Item'First + (J - 1) mod Ilen))
-            else
-              (for all J in Indx + 1 .. Indx + Ilen =>
-                 Result.Data (J) =
-                   Item (Item'Last - (Max_Length - J) mod Ilen)));
-       --  Lemma_Split is used after Result.Data (Indx + 1 .. Indx + Ilen) is
-       --  updated to Item and concludes that the characters match for each
-       --  index when taken modulo Item'Length, as the considered slice starts
-       --  at index 1 (or ends at index Max_Length, if Going = Backward) modulo
-       --  Item'Length.
- 
-       ---------------
-       -- Lemma_Mod --
-       ---------------
- 
-       procedure Lemma_Mod (K : Natural; Q : Natural) is null;
- 
-       --------------------
-       -- Lemma_Mod_Zero --
-       --------------------
- 
-       procedure Lemma_Mod_Zero (X : Natural) is null;
- 
-       -----------------
-       -- Lemma_Split --
-       -----------------
- 
-       procedure Lemma_Split (Going : Direction) is
-       begin
-          if Going = Forward then
-             for K in Indx + 1 .. Indx + Ilen loop
-                Lemma_Mod (K - 1, Indx);
-                pragma Loop_Invariant
-                  (for all J in Indx + 1 .. K =>
-                     Result.Data (J) = Item (Item'First + (J - 1) mod Ilen));
-             end loop;
-          else
-             for K in Indx + 1 .. Indx + Ilen loop
-                Lemma_Mod (Max_Length - K, Max_Length - Indx - Ilen);
-                pragma Loop_Invariant
-                  (for all J in Indx + 1 .. K =>
-                     Result.Data (J) =
-                       Item (Item'Last - (Max_Length - J) mod Ilen));
-             end loop;
-          end if;
-       end Lemma_Split;
- 
     begin
        if Count = 0 or else Ilen <= Max_Length / Count then
           if Count * Ilen > 0 then
--- 1429,1434 ----
*************** package body Ada.Strings.Superbounded wi
*** 1531,1549 ****
              for J in 1 .. Count loop
                 Result.Data (Indx + 1 .. Indx + Ilen) :=
                   Super_String_Data (Item);
-                pragma Assert
-                  (for all K in 1 .. Ilen =>
-                     Result.Data (Indx + K) = Item (Item'First - 1 + K));
-                pragma Assert
-                  (String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item);
-                Lemma_Split (Forward);
                 Indx := Indx + Ilen;
-                pragma Loop_Invariant (Indx = J * Ilen);
-                pragma Loop_Invariant (Result.Data (1 .. Indx)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in 1 .. Indx =>
-                     Result.Data (K) =
-                       Item (Item'First + (K - 1) mod Ilen));
              end loop;
           end if;
  
--- 1437,1443 ----
*************** package body Ada.Strings.Superbounded wi
*** 1557,1592 ****
                 while Indx < Max_Length - Ilen loop
                    Result.Data (Indx + 1 .. Indx + Ilen) :=
                      Super_String_Data (Item);
-                   pragma Assert
-                     (for all K in 1 .. Ilen =>
-                        Result.Data (Indx + K) = Item (Item'First - 1 + K));
-                   pragma Assert
-                     (String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item);
-                   Lemma_Split (Forward);
                    Indx := Indx + Ilen;
-                   pragma Loop_Invariant (Indx mod Ilen = 0);
-                   pragma Loop_Invariant (Indx in 0 .. Max_Length - 1);
-                   pragma Loop_Invariant (Result.Data (1 .. Indx)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in 1 .. Indx =>
-                        Result.Data (K) =
-                          Item (Item'First + (K - 1) mod Ilen));
-                   pragma Loop_Variant (Increases => Indx);
                 end loop;
  
                 Result.Data (Indx + 1 .. Max_Length) := Super_String_Data
                   (Item (Item'First .. Item'First + (Max_Length - Indx - 1)));
-                pragma Assert
-                  (for all J in Indx + 1 .. Max_Length =>
-                     Result.Data (J) = Item (Item'First - 1 - Indx + J));
- 
-                for J in Indx + 1 .. Max_Length loop
-                   Lemma_Mod (J - 1, Indx);
-                   pragma Loop_Invariant
-                     (for all K in 1 .. J =>
-                        Result.Data (K) =
-                          Item (Item'First + (K - 1) mod Ilen));
-                end loop;
  
              when Strings.Left =>
                 Indx := Max_Length;
--- 1451,1461 ----
*************** package body Ada.Strings.Superbounded wi
*** 1595,1634 ****
                    Indx := Indx - Ilen;
                    Result.Data (Indx + 1 .. Indx + Ilen) :=
                      Super_String_Data (Item);
-                   pragma Assert
-                     (for all K in 1 .. Ilen =>
-                        Result.Data (Indx + K) = Item (Item'First - 1 + K));
-                   pragma Assert
-                     (String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item);
-                   Lemma_Split (Backward);
-                   Lemma_Mod_Zero (Max_Length - Indx - Ilen);
-                   pragma Loop_Invariant
-                     ((Max_Length - Indx) mod Ilen = 0);
-                   pragma Loop_Invariant (Indx in 1 .. Max_Length);
-                   pragma Loop_Invariant
-                     (Result.Data (Indx + 1 .. Max_Length)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Indx + 1 .. Max_Length =>
-                        Result.Data (K) =
-                          Item (Item'Last - (Max_Length - K) mod Ilen));
-                   pragma Loop_Variant (Decreases => Indx);
                 end loop;
  
                 Result.Data (1 .. Indx) :=
                   Super_String_Data (Item (Item'Last - Indx + 1 .. Item'Last));
-                pragma Assert
-                  (for all J in 1 .. Indx =>
-                     Result.Data (J) = Item (Item'Last - Indx + J));
- 
-                for J in reverse 1 .. Indx loop
-                   Lemma_Mod (Max_Length - J, Max_Length - Indx);
-                   pragma Loop_Invariant
-                     (for all K in J .. Max_Length =>
-                        Result.Data (K) =
-                          Item (Item'Last - (Max_Length - K) mod Ilen));
-                end loop;
-                pragma Assert
-                  (Result.Data (1 .. Max_Length)'Initialized);
  
              when Strings.Error =>
                 raise Ada.Strings.Length_Error;
--- 1464,1473 ----
*************** package body Ada.Strings.Superbounded wi
*** 1643,1650 ****
     function Super_Replicate
       (Count : Natural;
        Item  : Super_String;
!       Drop  : Strings.Truncation := Strings.Error) return Super_String
!    is
     begin
        return
          Super_Replicate (Count, Super_To_String (Item), Drop, Item.Max_Length);
--- 1482,1488 ----
     function Super_Replicate
       (Count : Natural;
        Item  : Super_String;
!       Drop  : Strings.Truncation := Strings.Error) return Super_String is
     begin
        return
          Super_Replicate (Count, Super_To_String (Item), Drop, Item.Max_Length);
*************** package body Ada.Strings.Superbounded wi
*** 1820,1833 ****
        Mapping : Maps.Character_Mapping) return Super_String
     is
        Result : Super_String (Source.Max_Length);
- 
     begin
        for J in 1 .. Source.Current_Length loop
           Result.Data (J) := Value (Mapping, Source.Data (J));
-          pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Result.Data (K) = Value (Mapping, Source.Data (K)));
        end loop;
  
        Result.Current_Length := Source.Current_Length;
--- 1658,1666 ----
*************** package body Ada.Strings.Superbounded wi
*** 1836,1849 ****
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping)
!    is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Value (Mapping, Source.Data (J));
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Source.Data (K) = Value (Mapping, Source'Loop_Entry.Data (K)));
        end loop;
     end Super_Translate;
  
--- 1669,1678 ----
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping) is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Value (Mapping, Source.Data (J));
        end loop;
     end Super_Translate;
  
*************** package body Ada.Strings.Superbounded wi
*** 1852,1871 ****
        Mapping : Maps.Character_Mapping_Function) return Super_String
     is
        Result : Super_String (Source.Max_Length);
- 
     begin
        for J in 1 .. Source.Current_Length loop
           Result.Data (J) := Mapping.all (Source.Data (J));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
-          pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Result.Data (K) = Mapping (Source.Data (K)));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
        end loop;
  
        Result.Current_Length := Source.Current_Length;
--- 1681,1689 ----
*************** package body Ada.Strings.Superbounded wi
*** 1874,1893 ****
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping_Function)
!    is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Mapping.all (Source.Data (J));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Source.Data (K) = Mapping (Source'Loop_Entry.Data (K)));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
        end loop;
     end Super_Translate;
  
--- 1692,1701 ----
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping_Function) is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Mapping.all (Source.Data (J));
        end loop;
     end Super_Translate;
  
*************** package body Ada.Strings.Superbounded wi
*** 1901,1907 ****
     is
        Result : Super_String (Source.Max_Length);
        Last   : constant Natural := Source.Current_Length;
- 
     begin
        case Side is
           when Strings.Left =>
--- 1709,1714 ----
*************** package body Ada.Strings.Superbounded wi
*** 2101,2113 ****
     begin
        if Left > Max_Length then
           raise Ada.Strings.Length_Error;
- 
        else
           for J in 1 .. Left loop
              Result.Data (J) := Right;
-             pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J => Result.Data (K) = Right);
           end loop;
  
           Result.Current_Length := Left;
--- 1908,1916 ----
*************** package body Ada.Strings.Superbounded wi
*** 2126,2205 ****
        Rlen   : constant Natural := Right'Length;
        Nlen   : constant Natural := Left * Rlen;
  
-       --  Parts of the proof involving manipulations with the modulo operator
-       --  are complicated for the prover and can't be done automatically in
-       --  the global subprogram. That's why we isolate them in these two ghost
-       --  lemmas.
- 
-       procedure Lemma_Mod (K : Integer) with
-         Ghost,
-         Pre =>
-           Rlen /= 0
-           and then Pos mod Rlen = 0
-           and then Pos in 0 .. Max_Length - Rlen
-           and then K in Pos .. Pos + Rlen - 1,
-         Post => K mod Rlen = K - Pos;
-       --  Lemma_Mod is applied to an index considered in Lemma_Split to prove
-       --  that it has the right value modulo Right'Length.
- 
-       procedure Lemma_Split with
-         Ghost,
-         Pre  =>
-           Rlen /= 0
-             and then Pos mod Rlen = 0
-             and then Pos in 0 .. Max_Length - Rlen
-             and then Result.Data (1 .. Pos + Rlen)'Initialized
-             and then String (Result.Data (Pos + 1 .. Pos + Rlen)) = Right,
-         Post =>
-           (for all K in Pos + 1 .. Pos + Rlen =>
-             Result.Data (K) = Right (Right'First + (K - 1) mod Rlen));
-       --  Lemma_Split is used after Result.Data (Pos + 1 .. Pos + Rlen) is
-       --  updated to Right and concludes that the characters match for each
-       --  index when taken modulo Right'Length, as the considered slice starts
-       --  at index 1 modulo Right'Length.
- 
-       ---------------
-       -- Lemma_Mod --
-       ---------------
- 
-       procedure Lemma_Mod (K : Integer) is null;
- 
-       -----------------
-       -- Lemma_Split --
-       -----------------
- 
-       procedure Lemma_Split is
-       begin
-          for K in Pos + 1 .. Pos + Rlen loop
-             Lemma_Mod (K - 1);
-             pragma Loop_Invariant
-               (for all J in Pos + 1 .. K =>
-                  Result.Data (J) = Right (Right'First + (J - 1) mod Rlen));
-          end loop;
-       end Lemma_Split;
- 
     begin
        if Nlen > Max_Length then
           raise Ada.Strings.Length_Error;
- 
        else
           if Nlen > 0 then
              for J in 1 .. Left loop
                 Result.Data (Pos + 1 .. Pos + Rlen) :=
                   Super_String_Data (Right);
-                pragma Assert
-                  (for all K in 1 .. Rlen => Result.Data (Pos + K) =
-                     Right (Right'First - 1 + K));
-                pragma Assert
-                  (String (Result.Data (Pos + 1 .. Pos + Rlen)) = Right);
-                Lemma_Split;
                 Pos := Pos + Rlen;
-                pragma Loop_Invariant (Pos = J * Rlen);
-                pragma Loop_Invariant (Result.Data (1 .. Pos)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in 1 .. Pos =>
-                     Result.Data (K) =
-                       Right (Right'First + (K - 1) mod Rlen));
              end loop;
           end if;
  
--- 1929,1943 ----
*************** package body Ada.Strings.Superbounded wi
*** 2221,2239 ****
     begin
        if Nlen > Right.Max_Length then
           raise Ada.Strings.Length_Error;
- 
        else
           if Nlen > 0 then
              for J in 1 .. Left loop
                 Result.Data (Pos + 1 .. Pos + Rlen) :=
                   Right.Data (1 .. Rlen);
                 Pos := Pos + Rlen;
-                pragma Loop_Invariant (Pos = J * Rlen);
-                pragma Loop_Invariant (Result.Data (1 .. Pos)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in 1 .. Pos =>
-                     Result.Data (K) =
-                       Right.Data (1 + (K - 1) mod Rlen));
              end loop;
           end if;
  
--- 1959,1970 ----
*************** package body Ada.Strings.Superbounded wi
*** 2259,2265 ****
        if Slen <= Max_Length then
           Result.Data (1 .. Slen) := Super_String_Data (Source);
           Result.Current_Length := Slen;
- 
        else
           case Drop is
              when Strings.Right =>
--- 1990,1995 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/g-dyntab.ads gcc-16-20250608/gcc/ada/libgnat/g-dyntab.ads
*** gcc-16-20250601/gcc/ada/libgnat/g-dyntab.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/g-dyntab.ads	Sun Jun  8 22:32:16 2025
*************** package GNAT.Dynamic_Tables is
*** 168,175 ****
        --
        --     Tab : Table_Type renames X.Table (First .. X.Last);
        --
!       --  Note: The Table component must come first. See declarations of
!       --  SCO_Unit_Table and SCO_Table in scos.h.
  
        Locked : Boolean := False;
        --  Table reallocation is permitted only if this is False. A client may
--- 168,176 ----
        --
        --     Tab : Table_Type renames X.Table (First .. X.Last);
        --
!       --  Note: The Table component must come first to simplify interfacing
!       --  with C, similar to how we do it for the Table unit; see declarations
!       --  of Names_Ptr and Names_Char_Ptr in namet.h.
  
        Locked : Boolean := False;
        --  Table reallocation is permitted only if this is False. A client may
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/i-c.adb gcc-16-20250608/gcc/ada/libgnat/i-c.adb
*** gcc-16-20250601/gcc/ada/libgnat/i-c.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/i-c.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,106 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body Interfaces.C
    with SPARK_Mode
  is
  
-    --------------------
-    -- C_Length_Ghost --
-    --------------------
- 
-    function C_Length_Ghost (Item : char_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
-    function C_Length_Ghost (Item : wchar_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = wide_nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= wide_nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
-    function C_Length_Ghost (Item : char16_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = char16_nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char16_nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
-    function C_Length_Ghost (Item : char32_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = char32_nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char32_nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
     -----------------------
     -- Is_Nul_Terminated --
     -----------------------
--- 29,38 ----
*************** is
*** 113,121 ****
           if Item (J) = nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= nul);
        end loop;
  
        return False;
--- 45,50 ----
*************** is
*** 129,137 ****
           if Item (J) = wide_nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= wide_nul);
        end loop;
  
        return False;
--- 58,63 ----
*************** is
*** 145,153 ****
           if Item (J) = char16_nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char16_nul);
        end loop;
  
        return False;
--- 71,76 ----
*************** is
*** 161,169 ****
           if Item (J) = char32_nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char32_nul);
        end loop;
  
        return False;
--- 84,89 ----
*************** is
*** 194,207 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = nul then
--- 114,119 ----
*************** is
*** 211,218 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 123,128 ----
*************** is
*** 220,236 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : String (1 .. Count_Cst) with Relaxed_Initialization;
! 
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 130,139 ----
        end if;
  
        declare
!          R : String (1 .. Count);
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 252,265 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = nul then
--- 155,160 ----
*************** is
*** 285,303 ****
           for J in 1 .. Count loop
              Target (To) := Character (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 180,185 ----
*************** is
*** 329,342 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = wide_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= wide_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = wide_nul then
--- 211,216 ----
*************** is
*** 346,353 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 220,225 ----
*************** is
*** 355,371 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : Wide_String (1 .. Count_Cst) with Relaxed_Initialization;
! 
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 227,236 ----
        end if;
  
        declare
!          R : Wide_String (1 .. Count);
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 387,400 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = wide_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= wide_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = wide_nul then
--- 252,257 ----
*************** is
*** 420,438 ****
           for J in 1 .. Count loop
              Target (To) := To_Ada (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 277,282 ----
*************** is
*** 464,477 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char16_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= char16_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char16_nul then
--- 308,313 ----
*************** is
*** 481,488 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 317,322 ----
*************** is
*** 490,506 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : Wide_String (1 .. Count_Cst) with Relaxed_Initialization;
! 
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 324,333 ----
        end if;
  
        declare
!          R : Wide_String (1 .. Count);
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 522,535 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char16_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= char16_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char16_nul then
--- 349,354 ----
*************** is
*** 555,573 ****
           for J in 1 .. Count loop
              Target (To) := To_Ada (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 374,379 ----
*************** is
*** 599,613 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char32_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= char32_nul);
-             pragma Loop_Invariant (From <= Item'First + C_Length_Ghost (Item));
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char32_nul then
--- 405,410 ----
*************** is
*** 617,624 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 414,419 ----
*************** is
*** 626,642 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : Wide_Wide_String (1 .. Count_Cst) with Relaxed_Initialization;
  
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 421,431 ----
        end if;
  
        declare
!          R : Wide_Wide_String (1 .. Count);
  
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 658,671 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char32_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= char32_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char32_nul then
--- 447,452 ----
*************** is
*** 691,709 ****
           for J in 1 .. Count loop
              Target (To) := To_Ada (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 472,477 ----
*************** is
*** 734,759 ****
     begin
        if Append_Nul then
           declare
!             R : char_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 502,515 ----
     begin
        if Append_Nul then
           declare
!             R : char_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := nul;
  
              return R;
           end;
  
*************** is
*** 774,792 ****
  
           else
              declare
!                R : char_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 530,539 ----
  
           else
              declare
!                R : char_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 814,831 ****
           for From in Item'Range loop
              Target (To) := char (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                  Target (Target'First + size_t (J - Item'First)) =
-                    To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
--- 561,566 ----
*************** is
*** 836,842 ****
                 Target (To) := nul;
                 Count := Item'Length + 1;
              end if;
- 
           else
              Count := Item'Length;
           end if;
--- 571,576 ----
*************** is
*** 859,884 ****
     begin
        if Append_Nul then
           declare
!             R : wchar_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := wide_nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 593,606 ----
     begin
        if Append_Nul then
           declare
!             R : wchar_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := wide_nul;
  
              return R;
           end;
  
*************** is
*** 895,913 ****
  
           else
              declare
!                R : wchar_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 617,626 ----
  
           else
              declare
!                R : wchar_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 925,964 ****
        Append_Nul : Boolean := True)
     is
        To : size_t;
- 
     begin
        if Target'Length < Item'Length then
           raise Constraint_Error;
- 
        else
           To := Target'First;
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                 Target (Target'First + size_t (J - Item'First)) =
-                   To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
-          pragma Assert
-            (for all J in Item'Range =>
-              Target (Target'First + size_t (J - Item'First)) =
-                To_C (Item (J)));
-          pragma Assert
-            (if Item'Length /= 0 then
-              Target (Target'First ..
-                      Target'First + (Item'Length - 1))'Initialized);
- 
           if Append_Nul then
              if To > Target'Last then
                 raise Constraint_Error;
--- 638,654 ----
*************** is
*** 966,972 ****
                 Target (To) := wide_nul;
                 Count := Item'Length + 1;
              end if;
- 
           else
              Count := Item'Length;
           end if;
--- 656,661 ----
*************** is
*** 989,1014 ****
     begin
        if Append_Nul then
           declare
!             R : char16_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := char16_nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 678,691 ----
     begin
        if Append_Nul then
           declare
!             R : char16_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := char16_nul;
  
              return R;
           end;
  
*************** is
*** 1022,1043 ****
  
           if Item'Length = 0 then
              raise Constraint_Error;
- 
           else
              declare
!                R : char16_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 699,710 ----
  
           if Item'Length = 0 then
              raise Constraint_Error;
           else
              declare
!                R : char16_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 1055,1061 ****
        Append_Nul : Boolean := True)
     is
        To : size_t;
- 
     begin
        if Target'Length < Item'Length then
           raise Constraint_Error;
--- 722,727 ----
*************** is
*** 1065,1094 ****
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                 Target (Target'First + size_t (J - Item'First)) =
-                   To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
-          pragma Assert
-            (for all J in Item'Range =>
-              Target (Target'First + size_t (J - Item'First)) =
-                To_C (Item (J)));
-          pragma Assert
-            (if Item'Length /= 0 then
-              Target (Target'First ..
-                      Target'First + (Item'Length - 1))'Initialized);
- 
           if Append_Nul then
              if To > Target'Last then
                 raise Constraint_Error;
--- 731,739 ----
*************** is
*** 1096,1102 ****
                 Target (To) := char16_nul;
                 Count := Item'Length + 1;
              end if;
- 
           else
              Count := Item'Length;
           end if;
--- 741,746 ----
*************** is
*** 1119,1144 ****
     begin
        if Append_Nul then
           declare
!             R : char32_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := char32_nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 763,776 ----
     begin
        if Append_Nul then
           declare
!             R : char32_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := char32_nul;
  
              return R;
           end;
  
*************** is
*** 1154,1172 ****
  
           else
              declare
!                R : char32_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 786,795 ----
  
           else
              declare
!                R : char32_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 1188,1223 ****
     begin
        if Target'Length < Item'Length + (if Append_Nul then 1 else 0) then
           raise Constraint_Error;
- 
        else
           To := Target'First;
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                 Target (Target'First + size_t (J - Item'First)) =
-                   To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
-          pragma Assert
-            (for all J in Item'Range =>
-              Target (Target'First + size_t (J - Item'First)) =
-                To_C (Item (J)));
-          pragma Assert
-            (if Item'Length /= 0 then
-              Target (Target'First ..
-                      Target'First + (Item'Length - 1))'Initialized);
- 
           if Append_Nul then
              Target (To) := char32_nul;
              Count := Item'Length + 1;
--- 811,825 ----
     begin
        if Target'Length < Item'Length + (if Append_Nul then 1 else 0) then
           raise Constraint_Error;
        else
           To := Target'First;
+ 
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
              To := To + 1;
           end loop;
  
           if Append_Nul then
              Target (To) := char32_nul;
              Count := Item'Length + 1;
*************** is
*** 1226,1232 ****
           end if;
        end if;
     end To_C;
-    pragma Annotate (CodePeer, False_Positive, "validity check",
-      "Count is only uninitialized on abnormal return.");
  
  end Interfaces.C;
--- 828,832 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/i-c.ads gcc-16-20250608/gcc/ada/libgnat/i-c.ads
*** gcc-16-20250601/gcc/ada/libgnat/i-c.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/i-c.ads	Sun Jun  8 22:32:16 2025
*************** is
*** 133,138 ****
--- 133,139 ----
     function C_Length_Ghost (Item : char_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = nul
*************** is
*** 274,279 ****
--- 275,281 ----
     function C_Length_Ghost (Item : wchar_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = wide_nul
*************** is
*** 395,400 ****
--- 397,403 ----
     function C_Length_Ghost (Item : char16_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = char16_nul
*************** is
*** 510,515 ****
--- 513,519 ----
     function C_Length_Ghost (Item : char32_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = char32_nul
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/i-cstrin.adb gcc-16-20250608/gcc/ada/libgnat/i-cstrin.adb
*** gcc-16-20250601/gcc/ada/libgnat/i-cstrin.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/i-cstrin.adb	Sun Jun  8 22:32:16 2025
*************** is
*** 66,73 ****
     pragma Inline ("+");
     --  Address arithmetic on chars_ptr value
  
!    function Position_Of_Nul (Into : char_array) return size_t;
!    --  Returns position of the first Nul in Into or Into'Last + 1 if none
  
     --  We can't use directly System.Memory because the categorization is not
     --  compatible, so we directly import here the malloc and free routines.
--- 66,76 ----
     pragma Inline ("+");
     --  Address arithmetic on chars_ptr value
  
!    procedure Position_Of_Nul
!      (Into : char_array; Found : out Boolean; Index : out size_t);
!    --  If into contains a Nul character, Found is set to True and Index
!    --  contains the position of the first Nul character in Into. Otherwise
!    --  Found is set to False and the value of Index is not meaningful.
  
     --  We can't use directly System.Memory because the categorization is not
     --  compatible, so we directly import here the malloc and free routines.
*************** is
*** 107,112 ****
--- 110,116 ----
     --------------------
  
     function New_Char_Array (Chars : char_array) return chars_ptr is
+       Found   : Boolean;
        Index   : size_t;
        Pointer : chars_ptr;
  
*************** is
*** 114,137 ****
        --  Get index of position of null. If Index > Chars'Last,
        --  nul is absent and must be added explicitly.
  
!       Index := Position_Of_Nul (Into => Chars);
!       Pointer := Memory_Alloc ((Index - Chars'First + 1));
  
        --  If nul is present, transfer string up to and including nul
  
!       if Index <= Chars'Last then
!          Update (Item   => Pointer,
!                  Offset => 0,
!                  Chars  => Chars (Chars'First .. Index),
!                  Check  => False);
        else
           --  If original string has no nul, transfer whole string and add
           --  terminator explicitly.
  
!          Update (Item   => Pointer,
!                  Offset => 0,
!                  Chars  => Chars,
!                  Check  => False);
           Poke (nul, Into => Pointer + size_t'(Chars'Length));
        end if;
  
--- 118,142 ----
        --  Get index of position of null. If Index > Chars'Last,
        --  nul is absent and must be added explicitly.
  
!       Position_Of_Nul (Into => Chars, Found => Found, Index => Index);
  
        --  If nul is present, transfer string up to and including nul
  
!       if Found then
!          Pointer := Memory_Alloc (Index - Chars'First + 1);
! 
!          Update
!            (Item   => Pointer,
!             Offset => 0,
!             Chars  => Chars (Chars'First .. Index),
!             Check  => False);
        else
           --  If original string has no nul, transfer whole string and add
           --  terminator explicitly.
  
!          Pointer := Memory_Alloc (Chars'Length + 1);
! 
!          Update (Item => Pointer, Offset => 0, Chars => Chars, Check => False);
           Poke (nul, Into => Pointer + size_t'(Chars'Length));
        end if;
  
*************** is
*** 148,167 ****
        --  the result, and doesn't copy the string on the stack, otherwise its
        --  use is limited when used from tasks on large strings.
  
!       Result : constant chars_ptr := Memory_Alloc (Str'Length + 1);
  
!       Result_Array : char_array  (1 .. Str'Length + 1);
!       for Result_Array'Address use To_Address (Result);
!       pragma Import (Ada, Result_Array);
  
!       Count : size_t;
  
-    begin
-       To_C
-         (Item       => Str,
-          Target     => Result_Array,
-          Count      => Count,
-          Append_Nul => True);
        return Result;
     end New_String;
  
--- 153,185 ----
        --  the result, and doesn't copy the string on the stack, otherwise its
        --  use is limited when used from tasks on large strings.
  
!       Len : Natural := 0;
!       --  Length of the longest prefix of Str that doesn't contain NUL
  
!       Result : chars_ptr;
!    begin
!       for C of Str loop
!          if C = ASCII.NUL then
!             exit;
!          end if;
!          Len := Len + 1;
!       end loop;
  
!       Result := Memory_Alloc (size_t (Len) + 1);
! 
!       declare
!          Result_Array : char_array (1 .. size_t (Len) + 1)
!          with Address => To_Address (Result), Import, Convention => Ada;
! 
!          Count : size_t;
!       begin
!          To_C
!            (Item       => Str (Str'First .. Str'First + Len - 1),
!             Target     => Result_Array,
!             Count      => Count,
!             Append_Nul => True);
!       end;
  
        return Result;
     end New_String;
  
*************** is
*** 187,205 ****
     -- Position_Of_Nul --
     ---------------------
  
!    function Position_Of_Nul (Into : char_array) return size_t is
     begin
!       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
!                        "early returns for performance");
        for J in Into'Range loop
           if Into (J) = nul then
!             return J;
           end if;
        end loop;
- 
-       return Into'Last + 1;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Position_Of_Nul;
  
     ------------
--- 205,223 ----
     -- Position_Of_Nul --
     ---------------------
  
!    procedure Position_Of_Nul
!      (Into : char_array; Found : out Boolean; Index : out size_t) is
     begin
!       Found := False;
!       Index := 0;
! 
        for J in Into'Range loop
           if Into (J) = nul then
!             Found := True;
!             Index := J;
!             return;
           end if;
        end loop;
     end Position_Of_Nul;
  
     ------------
*************** is
*** 231,249 ****
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     is
     begin
        pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
                         "early returns for performance");
        if Item = null then
           return Null_Ptr;
!       elsif Nul_Check
!         and then Position_Of_Nul (Into => Item.all) > Item'Last
!       then
!          raise Terminator_Error;
!       else
!          return To_chars_ptr (Item (Item'First)'Address);
        end if;
  
        pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end To_Chars_Ptr;
  
--- 249,270 ----
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     is
+       Found : Boolean;
+       Index : size_t;
     begin
        pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
                         "early returns for performance");
        if Item = null then
           return Null_Ptr;
!       elsif Nul_Check then
!          Position_Of_Nul (Item.all, Found, Index);
!          if not Found then
!             raise Terminator_Error;
!          end if;
        end if;
  
+       return To_chars_ptr (Item (Item'First)'Address);
+ 
        pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end To_Chars_Ptr;
  
*************** is
*** 260,265 ****
--- 281,291 ----
        Index : chars_ptr := Item + Offset;
  
     begin
+       --  Check for null pointer as mandated by the RM.
+       if Item = Null_Ptr then
+          raise Dereference_Error;
+       end if;
+ 
        if Check and then Offset + Chars'Length  > Strlen (Item) then
           raise Update_Error;
        end if;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-aridou.adb gcc-16-20250608/gcc/ada/libgnat/s-aridou.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-aridou.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-aridou.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,102 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- pragma Annotate (Gnatcheck, Exempt_On, "Metrics_LSLOC",
-                  "limit exceeded due to proof code");
- 
  with Ada.Unchecked_Conversion;
- with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
  
  package body System.Arith_Double
    with SPARK_Mode
  is
-    --  Contracts, ghost code, loop invariants and assertions in this unit are
-    --  meant for analysis only, not for run-time checking, as it would be too
-    --  costly otherwise. This is enforced by setting the assertion policy to
-    --  Ignore.
- 
-    pragma Assertion_Policy (Pre            => Ignore,
-                             Post           => Ignore,
-                             Contract_Cases => Ignore,
-                             Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore,
-                             Assert_And_Cut => Ignore);
- 
     pragma Suppress (Overflow_Check);
     pragma Suppress (Range_Check);
  
-    pragma Warnings
-      (Off, "statement has no effect",
-       Reason => "Ghost code on dead paths is used for verification only");
- 
     function To_Uns is new Ada.Unchecked_Conversion (Double_Int, Double_Uns);
     function To_Int is new Ada.Unchecked_Conversion (Double_Uns, Double_Int);
  
     Double_Size : constant Natural := Double_Int'Size;
     Single_Size : constant Natural := Double_Int'Size / 2;
  
-    --  Log of Single_Size in base 2, so that Single_Size = 2 ** Log_Single_Size
-    Log_Single_Size : constant Natural :=
-      (case Single_Size is
-         when 32  => 5,
-         when 64  => 6,
-         when 128 => 7,
-         when others => raise Program_Error)
-    with Ghost;
- 
-    --  Power-of-two constants
- 
-    pragma Warnings
-      (Off, "non-preelaborable call not allowed in preelaborated unit",
-       Reason => "Ghost code is not compiled");
-    pragma Warnings
-      (Off, "non-static constant in preelaborated unit",
-       Reason => "Ghost code is not compiled");
-    Big_0 : constant Big_Integer :=
-      Big (Double_Uns'(0))
-    with Ghost;
-    Big_2xxSingle : constant Big_Integer :=
-      Big (Double_Int'(2 ** Single_Size))
-    with Ghost;
-    Big_2xxDouble_Minus_1 : constant Big_Integer :=
-      Big (Double_Uns'(2 ** (Double_Size - 1)))
-    with Ghost;
-    Big_2xxDouble : constant Big_Integer :=
-      Big (Double_Uns'(2 ** Double_Size - 1)) + 1
-    with Ghost;
-    pragma Warnings
-      (On, "non-preelaborable call not allowed in preelaborated unit");
-    pragma Warnings (On, "non-static constant in preelaborated unit");
- 
     pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
                      "early returns for performance");
  
--- 29,48 ----
*************** is
*** 115,123 ****
     --  Length doubling multiplication
  
     function "/" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A / Double_Uns (B))
!    with
!      Pre => B /= 0;
     --  Length doubling division
  
     function "&" (Hi, Lo : Single_Uns) return Double_Uns is
--- 61,67 ----
     --  Length doubling multiplication
  
     function "/" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A / Double_Uns (B));
     --  Length doubling division
  
     function "&" (Hi, Lo : Single_Uns) return Double_Uns is
*************** is
*** 127,163 ****
     function "abs" (X : Double_Int) return Double_Uns is
       (if X = Double_Int'First
        then Double_Uns'(2 ** (Double_Size - 1))
!       else Double_Uns (Double_Int'(abs X)))
!    with Post => abs Big (X) = Big ("abs"'Result),
!         Annotate => (GNATprove, Hide_Info, "Expression_Function_Body");
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Double_Int'First.
  
     function "rem" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A rem Double_Uns (B))
!    with
!      Pre => B /= 0;
     --  Length doubling remainder
  
!    function Big_2xx (N : Natural) return Big_Positive is
!      (Big (Double_Uns'(2 ** N)))
!    with
!      Ghost,
!      Pre  => N < Double_Size,
!      Post => Big_2xx'Result > 0;
!    --  2**N as a big integer
! 
!    function Big3 (X1, X2, X3 : Single_Uns) return Big_Natural is
!      (Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (X1))
!                     + Big_2xxSingle * Big (Double_Uns (X2))
!                                     + Big (Double_Uns (X3)))
!    with
!      Ghost;
!    --  X1&X2&X3 as a big integer
! 
!    function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean
!    with
!      Post => Le3'Result = (Big3 (X1, X2, X3) <= Big3 (Y1, Y2, Y3));
     --  Determines if (3 * Single_Size)-bit value X1&X2&X3 <= Y1&Y2&Y3
  
     function Lo (A : Double_Uns) return Single_Uns is
--- 71,85 ----
     function "abs" (X : Double_Int) return Double_Uns is
       (if X = Double_Int'First
        then Double_Uns'(2 ** (Double_Size - 1))
!       else Double_Uns (Double_Int'(abs X)));
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Double_Int'First.
  
     function "rem" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A rem Double_Uns (B));
     --  Length doubling remainder
  
!    function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean;
     --  Determines if (3 * Single_Size)-bit value X1&X2&X3 <= Y1&Y2&Y3
  
     function Lo (A : Double_Uns) return Single_Uns is
*************** is
*** 168,821 ****
       (Single_Uns (Shift_Right (A, Single_Size)));
     --  High order half of double value
  
!    procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns)
!    with
!      Pre  => Big3 (X1, X2, X3) >= Big3 (Y1, Y2, Y3),
!      Post => Big3 (X1, X2, X3) = Big3 (X1, X2, X3)'Old - Big3 (Y1, Y2, Y3);
     --  Computes X1&X2&X3 := X1&X2&X3 - Y1&Y1&Y3 mod 2 ** (3 * Single_Size)
  
!    function To_Neg_Int (A : Double_Uns) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (-Big (A)),
!      Post => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1), then the corresponding nonpositive signed
     --  integer (obtained by negating the given value) is returned, otherwise
     --  constraint error is raised.
  
!    function To_Pos_Int (A : Double_Uns) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (Big (A)),
!      Post => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with
!      Exceptional_Cases => (Constraint_Error => True);
!    pragma No_Return (Raise_Error);
     --  Raise constraint error with appropriate message
  
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Inline_Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-    with
-      Ghost,
-      Pre  => Le3 (X1, X2, X3, Y1, Y2, Y3),
-      Post => Big3 (X1, X2, X3) <= Big3 (Y1, Y2, Y3);
- 
-    procedure Lemma_Abs_Commutation (X : Double_Int)
-    with
-      Ghost,
-      Post => abs Big (X) = Big (Double_Uns'(abs X));
- 
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X / Y) = abs X / abs Y;
- 
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Post => abs (X * Y) = abs X * abs Y;
- 
-    procedure Lemma_Abs_Range (X : Big_Integer)
-    with
-      Ghost,
-      Pre  => In_Double_Int_Range (X),
-      Post => abs X <= Big_2xxDouble_Minus_1
-        and then In_Double_Int_Range (-abs X);
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X rem Y) = (abs X) rem (abs Y);
- 
-    procedure Lemma_Add_Commutation (X : Double_Uns; Y : Single_Uns)
-    with
-      Ghost,
-      Pre  => X <= 2 ** Double_Size - 2 ** Single_Size,
-      Post => Big (X) + Big (Double_Uns (Y)) = Big (X + Double_Uns (Y));
- 
-    procedure Lemma_Add_One (X : Double_Uns)
-    with
-      Ghost,
-      Pre  => X /= Double_Uns'Last,
-      Post => Big (X + Double_Uns'(1)) = Big (X) + 1;
- 
-    procedure Lemma_Big_Of_Double_Uns (X : Double_Uns)
-    with
-      Ghost,
-      Post => Big (X) < Big_2xxDouble;
- 
-    procedure Lemma_Big_Of_Double_Uns_Of_Single_Uns (X : Single_Uns)
-    with
-      Ghost,
-      Post => Big (Double_Uns (X)) >= 0
-        and then Big (Double_Uns (X)) < Big_2xxSingle;
- 
-    procedure Lemma_Bounded_Powers_Of_2_Increasing (M, N : Natural)
-    with
-      Ghost,
-      Pre  => M < N and then N < Double_Size,
-      Post => Double_Uns'(2)**M < Double_Uns'(2)**N;
- 
-    procedure Lemma_Concat_Definition (X, Y : Single_Uns)
-    with
-      Ghost,
-      Post => Big (X & Y) = Big_2xxSingle * Big (Double_Uns (X))
-                                          + Big (Double_Uns (Y));
- 
-    procedure Lemma_Deep_Mult_Commutation
-      (Factor : Big_Integer;
-       X, Y   : Single_Uns)
-    with
-      Ghost,
-      Post =>
-        Factor * Big (Double_Uns (X)) * Big (Double_Uns (Y)) =
-          Factor * Big (Double_Uns (X) * Double_Uns (Y));
- 
-    procedure Lemma_Div_Commutation (X, Y : Double_Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Definition
-      (A : Double_Uns;
-       B : Single_Uns;
-       Q : Double_Uns;
-       R : Double_Uns)
-    with
-      Ghost,
-      Pre  => B /= 0 and then Q = A / B and then R = A rem B,
-      Post => Big (A) = Big (Double_Uns (B)) * Big (Q) + Big (R);
- 
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Z > 0 and then X >= Y * Z,
-      Post => X / Z >= Y;
- 
-    procedure Lemma_Div_Lt (X, Y, Z : Big_Natural)
-    with
-      Ghost,
-      Pre  => Z > 0 and then X < Y * Z,
-      Post => X / Z < Y;
- 
-    procedure Lemma_Div_Eq (A, B, S, R : Big_Integer)
-    with
-      Ghost,
-      Pre  => A * S = B * S + R and then S /= 0,
-      Post => A = B + R / S;
- 
-    procedure Lemma_Div_Mult (X : Big_Natural; Y : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y * Y > X - Y;
- 
-    procedure Lemma_Double_Big_2xxSingle
-    with
-      Ghost,
-      Post => Big_2xxSingle * Big_2xxSingle = Big_2xxDouble;
- 
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Double_Uns)
-    with
-      Ghost,
-      Pre  => S <= Double_Uns (Double_Size)
-        and then S1 <= Double_Uns (Double_Size),
-      Post => Shift_Left (Shift_Left (X, Natural (S)), Natural (S1)) =
-              Shift_Left (X, Natural (S + S1));
- 
-    procedure Lemma_Double_Shift (X : Single_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Single_Size - S1,
-      Post => Shift_Left (Shift_Left (X, S), S1) = Shift_Left (X, S + S1);
- 
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Double_Size - S1,
-      Post => Shift_Left (Shift_Left (X, S), S1) = Shift_Left (X, S + S1);
- 
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Double_Uns)
-    with
-      Ghost,
-      Pre  => S <= Double_Uns (Double_Size)
-        and then S1 <= Double_Uns (Double_Size),
-      Post => Shift_Left (Shift_Left (X, Natural (S)), Natural (S1)) =
-              Shift_Left (X, Natural (S + S1));
- 
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Double_Size - S1,
-      Post => Shift_Left (Shift_Left (X, S), S1) = Shift_Left (X, S + S1);
- 
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Double_Uns)
-    with
-      Ghost,
-      Pre  => S <= Double_Uns (Double_Size)
-        and then S1 <= Double_Uns (Double_Size),
-      Post => Shift_Right (Shift_Right (X, Natural (S)), Natural (S1)) =
-              Shift_Right (X, Natural (S + S1));
- 
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Double_Size - S1,
-      Post => Shift_Right (Shift_Right (X, S), S1) = Shift_Right (X, S + S1);
- 
-    procedure Lemma_Ge_Commutation (A, B : Double_Uns)
-    with
-      Ghost,
-      Pre  => A >= B,
-      Post => Big (A) >= Big (B);
- 
-    procedure Lemma_Ge_Mult (A, B, C, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => A >= B and then B * C >= D and then C > 0,
-      Post => A * C >= D;
- 
-    procedure Lemma_Gt_Commutation (A, B : Double_Uns)
-    with
-      Ghost,
-      Pre  => A > B,
-      Post => Big (A) > Big (B);
- 
-    procedure Lemma_Gt_Mult (A, B, C, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => A >= B and then B * C > D and then C > 0,
-      Post => A * C > D;
- 
-    procedure Lemma_Hi_Lo (Xu : Double_Uns; Xhi, Xlo : Single_Uns)
-    with
-      Ghost,
-      Pre  => Xhi = Hi (Xu) and Xlo = Lo (Xu),
-      Post => Big (Xu) =
-        Big_2xxSingle * Big (Double_Uns (Xhi)) + Big (Double_Uns (Xlo));
- 
-    procedure Lemma_Hi_Lo_3 (Xu : Double_Uns; Xhi, Xlo : Single_Uns)
-    with
-      Ghost,
-      Pre  => Xhi = Hi (Xu) and then Xlo = Lo (Xu),
-      Post => Big (Xu) = Big3 (0, Xhi, Xlo);
- 
-    procedure Lemma_Lo_Is_Ident (X : Double_Uns)
-    with
-      Ghost,
-      Pre  => Big (X) < Big_2xxSingle,
-      Post => Double_Uns (Lo (X)) = X;
- 
-    procedure Lemma_Lt_Commutation (A, B : Double_Uns)
-    with
-      Ghost,
-      Pre  => A < B,
-      Post => Big (A) < Big (B);
- 
-    procedure Lemma_Lt_Mult (A, B, C, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => A < B and then B * C <= D and then C > 0,
-      Post => A * C < D;
- 
-    procedure Lemma_Mult_Commutation (X, Y : Single_Uns)
-    with
-      Ghost,
-      Post =>
-        Big (Double_Uns (X)) * Big (Double_Uns (Y)) =
-          Big (Double_Uns (X) * Double_Uns (Y));
- 
-    procedure Lemma_Mult_Commutation (X, Y : Double_Int)
-    with
-      Ghost,
-      Pre  => In_Double_Int_Range (Big (X) * Big (Y)),
-      Post => Big (X) * Big (Y) = Big (X * Y);
- 
-    procedure Lemma_Mult_Commutation (X, Y, Z : Double_Uns)
-    with
-      Ghost,
-      Pre  => Big (X) * Big (Y) < Big_2xxDouble and then Z = X * Y,
-      Post => Big (X) * Big (Y) = Big (Z);
- 
-    procedure Lemma_Mult_Decomposition
-      (Mult               : Big_Integer;
-       Xu, Yu             : Double_Uns;
-       Xhi, Xlo, Yhi, Ylo : Single_Uns)
-    with
-      Ghost,
-      Pre  => Mult = Big (Xu) * Big (Yu)
-        and then Xhi = Hi (Xu)
-        and then Xlo = Lo (Xu)
-        and then Yhi = Hi (Yu)
-        and then Ylo = Lo (Yu),
-      Post => Mult =
-        Big_2xxSingle * Big_2xxSingle * (Big (Double_Uns'(Xhi * Yhi)))
-                      + Big_2xxSingle * (Big (Double_Uns'(Xhi * Ylo)))
-                      + Big_2xxSingle * (Big (Double_Uns'(Xlo * Yhi)))
-                                      + (Big (Double_Uns'(Xlo * Ylo)));
- 
-    procedure Lemma_Mult_Distribution (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Post => X * (Y + Z) = X * Y + X * Z;
- 
-    procedure Lemma_Mult_Div (A, B : Big_Integer)
-    with
-      Ghost,
-      Pre  => B /= 0,
-      Post => A * B / B = A;
- 
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X >= 0 and then Y >= 0)
-        or else (X <= 0 and then Y <= 0),
-      Post => X * Y >= 0;
- 
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X <= Big_0 and then Y >= Big_0)
-        or else (X >= Big_0 and then Y <= Big_0),
-      Post => X * Y <= Big_0;
- 
-    procedure Lemma_Mult_Positive (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X > Big_0 and then Y > Big_0)
-        or else (X < Big_0 and then Y < Big_0),
-      Post => X * Y > Big_0;
- 
-    procedure Lemma_Neg_Div (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X / Y = (-X) / (-Y);
- 
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X rem Y = X rem (-Y);
- 
-    procedure Lemma_Not_In_Range_Big2xx64
-    with
-      Post => not In_Double_Int_Range (Big_2xxDouble)
-        and then not In_Double_Int_Range (-Big_2xxDouble);
- 
-    procedure Lemma_Powers (A : Big_Natural; B, C : Natural)
-    with
-      Ghost,
-      Pre  => B <= Natural'Last - C,
-      Post => A**B * A**C = A**(B + C);
- 
-    procedure Lemma_Powers_Of_2 (M, N : Natural)
-    with
-      Ghost,
-      Pre  => M < Double_Size
-        and then N < Double_Size
-        and then M + N <= Double_Size,
-      Post =>
-        Big_2xx (M) * Big_2xx (N) =
-          (if M + N = Double_Size then Big_2xxDouble else Big_2xx (M + N));
- 
-    procedure Lemma_Powers_Of_2_Commutation (M : Natural)
-    with
-      Ghost,
-      Subprogram_Variant => (Decreases => M),
-      Pre  => M <= Double_Size,
-      Post => Big (Double_Uns'(2))**M =
-               (if M < Double_Size then Big_2xx (M) else Big_2xxDouble);
- 
-    procedure Lemma_Powers_Of_2_Increasing (M, N : Natural)
-    with
-      Ghost,
-      Subprogram_Variant => (Increases => M),
-      Pre  => M < N,
-      Post => Big (Double_Uns'(2))**M < Big (Double_Uns'(2))**N;
- 
-    procedure Lemma_Rem_Abs (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X rem Y = X rem (abs Y);
-    pragma Unreferenced (Lemma_Rem_Abs);
- 
-    procedure Lemma_Rem_Commutation (X, Y : Double_Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) rem Big (Y) = Big (X rem Y);
- 
-    procedure Lemma_Rem_Is_Ident (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => abs X < abs Y,
-      Post => X rem Y = X;
-    pragma Unreferenced (Lemma_Rem_Is_Ident);
- 
-    procedure Lemma_Rem_Sign (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Same_Sign (X rem Y, X);
-    pragma Unreferenced (Lemma_Rem_Sign);
- 
-    procedure Lemma_Rev_Div_Definition (A, B, Q, R : Big_Natural)
-    with
-      Ghost,
-      Pre  => A = B * Q + R and then R < B,
-      Post => Q = A / B and then R = A rem B;
- 
-    procedure Lemma_Shift_Left (X : Double_Uns; Shift : Natural)
-    with
-      Ghost,
-      Pre  => Shift < Double_Size
-        and then Big (X) * Big_2xx (Shift) < Big_2xxDouble,
-      Post => Big (Shift_Left (X, Shift)) = Big (X) * Big_2xx (Shift);
- 
-    procedure Lemma_Shift_Right (X : Double_Uns; Shift : Natural)
-    with
-      Ghost,
-      Pre  => Shift < Double_Size,
-      Post => Big (Shift_Right (X, Shift)) = Big (X) / Big_2xx (Shift);
- 
-    procedure Lemma_Shift_Without_Drop
-      (X, Y  : Double_Uns;
-       Mask  : Single_Uns;
-       Shift : Natural)
-    with
-      Ghost,
-      Pre  => (Hi (X) and Mask) = 0  --  X has the first Shift bits off
-        and then Shift <= Single_Size
-        and then Mask = Shift_Left (Single_Uns'Last, Single_Size - Shift)
-        and then Y = Shift_Left (X, Shift),
-      Post => Big (Y) = Big_2xx (Shift) * Big (X);
- 
-    procedure Lemma_Simplify (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X * Y / Y = X;
- 
-    procedure Lemma_Substitution (A, B, C, C1, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => C = C1 and then A = B * C + D,
-      Post => A = B * C1 + D;
- 
-    procedure Lemma_Subtract_Commutation (X, Y : Double_Uns)
-    with
-      Ghost,
-      Pre  => X >= Y,
-      Post => Big (X) - Big (Y) = Big (X - Y);
- 
-    procedure Lemma_Subtract_Double_Uns (X, Y : Double_Int)
-    with
-      Ghost,
-      Pre  => X >= 0 and then X <= Y,
-      Post => Double_Uns (Y - X) = Double_Uns (Y) - Double_Uns (X);
- 
-    procedure Lemma_Word_Commutation (X : Single_Uns)
-    with
-      Ghost,
-      Post => Big_2xxSingle * Big (Double_Uns (X))
-        = Big (2**Single_Size * Double_Uns (X));
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Inline_Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is null;
-    procedure Lemma_Abs_Commutation (X : Double_Int) is null;
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer) is null;
-    procedure Lemma_Abs_Range (X : Big_Integer) is null;
-    procedure Lemma_Add_Commutation (X : Double_Uns; Y : Single_Uns) is null;
-    procedure Lemma_Add_One (X : Double_Uns) is null;
-    procedure Lemma_Big_Of_Double_Uns (X : Double_Uns) is null;
-    procedure Lemma_Big_Of_Double_Uns_Of_Single_Uns (X : Single_Uns) is null;
-    procedure Lemma_Bounded_Powers_Of_2_Increasing (M, N : Natural) is null;
-    procedure Lemma_Deep_Mult_Commutation
-      (Factor : Big_Integer;
-       X, Y   : Single_Uns)
-    is null;
-    procedure Lemma_Div_Commutation (X, Y : Double_Uns) is null;
-    procedure Lemma_Div_Definition
-      (A : Double_Uns;
-       B : Single_Uns;
-       Q : Double_Uns;
-       R : Double_Uns)
-    is null;
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer) is null;
-    procedure Lemma_Div_Lt (X, Y, Z : Big_Natural) is null;
-    procedure Lemma_Div_Mult (X : Big_Natural; Y : Big_Positive) is null;
-    procedure Lemma_Double_Big_2xxSingle is null;
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Double_Uns) is null;
-    procedure Lemma_Double_Shift (X : Single_Uns; S, S1 : Natural) is null;
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Double_Uns)
-    is null;
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Double_Uns)
-    is null;
-    procedure Lemma_Ge_Commutation (A, B : Double_Uns) is null;
-    procedure Lemma_Ge_Mult (A, B, C, D : Big_Integer) is null;
-    procedure Lemma_Gt_Commutation (A, B : Double_Uns) is null;
-    procedure Lemma_Gt_Mult (A, B, C, D : Big_Integer) is null;
-    procedure Lemma_Lo_Is_Ident (X : Double_Uns) is null;
-    procedure Lemma_Lt_Commutation (A, B : Double_Uns) is null;
-    procedure Lemma_Lt_Mult (A, B, C, D : Big_Integer) is null;
-    procedure Lemma_Mult_Commutation (X, Y : Single_Uns) is null;
-    procedure Lemma_Mult_Commutation (X, Y : Double_Int) is null;
-    procedure Lemma_Mult_Commutation (X, Y, Z : Double_Uns) is null;
-    procedure Lemma_Mult_Distribution (X, Y, Z : Big_Integer) is null;
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer) is null;
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer) is null;
-    procedure Lemma_Mult_Positive (X, Y : Big_Integer) is null;
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer) is null;
-    procedure Lemma_Not_In_Range_Big2xx64 is null;
-    procedure Lemma_Powers (A : Big_Natural; B, C : Natural) is null;
-    procedure Lemma_Rem_Commutation (X, Y : Double_Uns) is null;
-    procedure Lemma_Rem_Is_Ident (X, Y : Big_Integer) is null;
-    procedure Lemma_Rem_Sign (X, Y : Big_Integer) is null;
-    procedure Lemma_Rev_Div_Definition (A, B, Q, R : Big_Natural) is null;
-    procedure Lemma_Simplify (X, Y : Big_Integer) is null;
-    procedure Lemma_Substitution (A, B, C, C1, D : Big_Integer) is null;
-    procedure Lemma_Subtract_Commutation (X, Y : Double_Uns) is null;
-    procedure Lemma_Subtract_Double_Uns (X, Y : Double_Int) is null;
-    procedure Lemma_Word_Commutation (X : Single_Uns) is null;
- 
     --------------------------
     -- Add_With_Ovflo_Check --
     --------------------------
  
     function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) + To_Uns (Y));
- 
-       --  Local lemmas
- 
-       procedure Prove_Negative_X
-       with
-         Ghost,
-         Pre  => X < 0 and then (Y > 0 or else R < 0),
-         Post => R = X + Y;
- 
-       procedure Prove_Non_Negative_X
-       with
-         Ghost,
-         Pre  => X >= 0 and then (Y < 0 or else R >= 0),
-         Post => R = X + Y;
- 
-       procedure Prove_Overflow_Case
-       with
-         Ghost,
-         Pre  =>
-           (if X >= 0 then Y >= 0 and then R < 0
-                      else Y <= 0 and then R >= 0),
-         Post => not In_Double_Int_Range (Big (X) + Big (Y));
- 
-       ----------------------
-       -- Prove_Negative_X --
-       ----------------------
- 
-       procedure Prove_Negative_X is
-       begin
-          if X = Double_Int'First then
-             if Y > 0 then
-                null;
-             else
-                pragma Assert
-                  (To_Uns (X) + To_Uns (Y) =
-                     2 ** (Double_Size - 1) - Double_Uns (-Y));
-                pragma Assert  --  as R < 0
-                  (To_Uns (X) + To_Uns (Y) >= 2 ** (Double_Size - 1));
-                pragma Assert (Y = 0);
-             end if;
- 
-          elsif Y = Double_Int'First then
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) =
-                  2 ** (Double_Size - 1) - Double_Uns (-X));
-             pragma Assert (False);
- 
-          elsif Y <= 0 then
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) = -Double_Uns (-X) - Double_Uns (-Y));
- 
-          else  --  Y > 0, 0 > X > Double_Int'First
-             declare
-                Ru : constant Double_Uns := To_Uns (X) + To_Uns (Y);
-             begin
-                pragma Assert (Ru = -Double_Uns (-X) + Double_Uns (Y));
-                if Ru < 2 ** (Double_Size - 1) then  --  R >= 0
-                   Lemma_Subtract_Double_Uns (-X, Y);
-                   pragma Assert (Ru = Double_Uns (X + Y));
- 
-                elsif Ru = 2 ** (Double_Size - 1) then
-                   pragma Assert (Double_Uns (Y) < 2 ** (Double_Size - 1));
-                   pragma Assert (Double_Uns (-X) < 2 ** (Double_Size - 1));
-                   pragma Assert (False);
- 
-                else
-                   pragma Assert
-                     (R = -Double_Int (-(-Double_Uns (-X) + Double_Uns (Y))));
-                   pragma Assert
-                     (R = -Double_Int (-Double_Uns (Y) + Double_Uns (-X)));
-                end if;
-             end;
-          end if;
-       end Prove_Negative_X;
- 
-       --------------------------
-       -- Prove_Non_Negative_X --
-       --------------------------
- 
-       procedure Prove_Non_Negative_X is
-       begin
-          if Y >= 0 or else Y = Double_Int'First then
-             null;
-          else
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) = Double_Uns (X) - Double_Uns (-Y));
-          end if;
-       end Prove_Non_Negative_X;
- 
-       -------------------------
-       -- Prove_Overflow_Case --
-       -------------------------
- 
-       procedure Prove_Overflow_Case is
-       begin
-          if X < 0 and then X /= Double_Int'First and then Y /= Double_Int'First
-          then
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) = -Double_Uns (-X) - Double_Uns (-Y));
-          end if;
-       end Prove_Overflow_Case;
- 
-    --  Start of processing for Add_With_Ovflo_Check
- 
     begin
        if X >= 0 then
           if Y < 0 or else R >= 0 then
-             Prove_Non_Negative_X;
              return R;
           end if;
  
        else -- X < 0
           if Y > 0 or else R < 0 then
-             Prove_Negative_X;
              return R;
           end if;
        end if;
  
-       Prove_Overflow_Case;
        Raise_Error;
     end Add_With_Ovflo_Check;
  
--- 90,130 ----
       (Single_Uns (Shift_Right (A, Single_Size)));
     --  High order half of double value
  
!    procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns);
     --  Computes X1&X2&X3 := X1&X2&X3 - Y1&Y1&Y3 mod 2 ** (3 * Single_Size)
  
!    function To_Neg_Int (A : Double_Uns) return Double_Int;
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1), then the corresponding nonpositive signed
     --  integer (obtained by negating the given value) is returned, otherwise
     --  constraint error is raised.
  
!    function To_Pos_Int (A : Double_Uns) return Double_Int;
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with No_Return;
     --  Raise constraint error with appropriate message
  
     --------------------------
     -- Add_With_Ovflo_Check --
     --------------------------
  
     function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) + To_Uns (Y));
     begin
        if X >= 0 then
           if Y < 0 or else R >= 0 then
              return R;
           end if;
  
        else -- X < 0
           if Y > 0 or else R < 0 then
              return R;
           end if;
        end if;
  
        Raise_Error;
     end Add_With_Ovflo_Check;
  
*************** is
*** 823,830 ****
     -- Double_Divide --
     -------------------
  
-    pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
-                     "limit exceeded due to proof code");
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
--- 132,137 ----
*************** is
*** 844,1026 ****
        Du, Qu, Ru : Double_Uns;
        Den_Pos    : constant Boolean := (Y < 0) = (Z < 0);
  
-       --  Local ghost variables
- 
-       Mult  : constant Big_Integer := abs (Big (Y) * Big (Z)) with Ghost;
-       Quot  : Big_Integer with Ghost;
-       Big_R : Big_Integer with Ghost;
-       Big_Q : Big_Integer with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Prove_Overflow_Case
-       with
-         Ghost,
-         Pre  => X = Double_Int'First and then Big (Y) * Big (Z) = -1,
-         Post => not In_Double_Int_Range (Big (X) / (Big (Y) * Big (Z)))
-           and then not In_Double_Int_Range
-             (Round_Quotient (Big (X), Big (Y) * Big (Z),
-                              Big (X) / (Big (Y) * Big (Z)),
-                              Big (X) rem (Big (Y) * Big (Z))));
-       --  Proves the special case where -2**(Double_Size - 1) is divided by -1,
-       --  generating an overflow.
- 
-       procedure Prove_Quotient_Zero
-       with
-         Ghost,
-         Pre  => Mult >= Big_2xxDouble
-           and then
-             not (Mult = Big_2xxDouble
-                    and then X = Double_Int'First
-                    and then Round)
-           and then Q = 0
-           and then R = X,
-         Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
-           and then
-             (if Round then
-                Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
-                                          Big (X) / (Big (Y) * Big (Z)),
-                                          Big (R))
-              else Big (Q) = Big (X) / (Big (Y) * Big (Z)));
-       --  Proves the general case where divisor doesn't fit in Double_Uns and
-       --  quotient is 0.
- 
-       procedure Prove_Round_To_One
-       with
-         Ghost,
-         Pre  => Mult = Big_2xxDouble
-           and then X = Double_Int'First
-           and then Q = (if Den_Pos then -1 else 1)
-           and then R = X
-           and then Round,
-         Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
-           and then Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
-                                              Big (X) / (Big (Y) * Big (Z)),
-                                              Big (R));
-       --  Proves the special case where the divisor doesn't fit in Double_Uns
-       --  but quotient is still 1 or -1 due to rounding
-       --  (abs (Y*Z) = 2**Double_Size and X = -2**(Double_Size - 1) and Round).
- 
-       procedure Prove_Rounding_Case
-       with
-         Ghost,
-         Pre  => Mult /= 0
-           and then Quot = Big (X) / (Big (Y) * Big (Z))
-           and then Big_R = Big (X) rem (Big (Y) * Big (Z))
-           and then Big_Q =
-             Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R)
-           and then Big (Ru) = abs Big_R
-           and then Big (Du) = Mult
-           and then Big (Qu) =
-             (if Ru > (Du - Double_Uns'(1)) / Double_Uns'(2)
-              then abs Quot + 1
-              else abs Quot),
-         Post => abs Big_Q = Big (Qu);
-       --  Proves correctness of the rounding of the unsigned quotient
- 
-       procedure Prove_Sign_Quotient
-       with
-         Ghost,
-         Pre  => Mult /= 0
-           and then Quot = Big (X) / (Big (Y) * Big (Z))
-           and then Big_R = Big (X) rem (Big (Y) * Big (Z))
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R)
-              else Quot),
-         Post =>
-           (if X >= 0 then
-              (if Den_Pos then Big_Q >= 0 else Big_Q <= 0)
-            else
-              (if Den_Pos then Big_Q <= 0 else Big_Q >= 0));
-       --  Proves the correct sign of the signed quotient Big_Q
- 
-       procedure Prove_Signs
-       with
-         Ghost,
-         Pre  => Mult /= 0
-           and then Quot = Big (X) / (Big (Y) * Big (Z))
-           and then Big_R = Big (X) rem (Big (Y) * Big (Z))
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R)
-              else Quot)
-           and then Big (Ru) = abs Big_R
-           and then Big (Qu) = abs Big_Q
-           and then R = (if X >= 0 then To_Int (Ru) else To_Int (-Ru))
-           and then
-             Q = (if (X >= 0) = Den_Pos then To_Int (Qu) else To_Int (-Qu))
-           and then not (X = Double_Int'First and then Big (Y) * Big (Z) = -1),
-         Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
-           and then
-             (if Round then
-                Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
-                                          Big (X) / (Big (Y) * Big (Z)),
-                                          Big (R))
-              else Big (Q) = Big (X) / (Big (Y) * Big (Z)));
-       --  Proves final signs match the intended result after the unsigned
-       --  division is done.
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Prove_Overflow_Case is null;
-       procedure Prove_Quotient_Zero is null;
-       procedure Prove_Round_To_One is null;
-       procedure Prove_Sign_Quotient is null;
- 
-       -------------------------
-       -- Prove_Rounding_Case --
-       -------------------------
- 
-       procedure Prove_Rounding_Case is
-       begin
-          if Same_Sign (Big (X), Big (Y) * Big (Z)) then
-             pragma Assert (abs Big_Q = Big (Qu));
-          end if;
-       end Prove_Rounding_Case;
- 
-       -----------------
-       -- Prove_Signs --
-       -----------------
- 
-       procedure Prove_Signs is
-       begin
-          if (X >= 0) = Den_Pos then
-             pragma Assert (Quot >= 0);
-             pragma Assert (Big_Q >= 0);
-             pragma Assert (Q >= 0);
-             pragma Assert (Big (Q) = Big_Q);
-          else
-             pragma Assert ((X >= 0) /= (Big (Y) * Big (Z) >= 0));
-             pragma Assert (Quot <= 0);
-             pragma Assert (Big_Q <= 0);
-             pragma Assert (if X >= 0 then R >= 0);
-             pragma Assert (if X < 0 then R <= 0);
-             pragma Assert (Big (R) = Big_R);
-          end if;
-       end Prove_Signs;
- 
-    --  Start of processing for Double_Divide
- 
     begin
        if Yu = 0 or else Zu = 0 then
           Raise_Error;
        end if;
  
-       pragma Assert (Mult /= 0);
-       pragma Assert (Den_Pos = (Big (Y) * Big (Z) > 0));
-       Quot := Big (X) / (Big (Y) * Big (Z));
-       Big_R := Big (X) rem (Big (Y) * Big (Z));
-       if Round then
-          Big_Q := Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R);
-       else
-          Big_Q := Quot;
-       end if;
-       Lemma_Abs_Mult_Commutation (Big (Y), Big (Z));
-       Lemma_Mult_Decomposition (Mult, Yu, Zu, Yhi, Ylo, Zhi, Zlo);
- 
        --  Compute Y * Z. Note that if the result overflows Double_Uns, then
        --  the rounded result is zero, except for the very special case where
        --  X = -2 ** (Double_Size - 1) and abs (Y * Z) = 2 ** Double_Size, when
--- 151,161 ----
*************** is
*** 1040,1105 ****
                and then Round
              then
                 Q := (if Den_Pos then -1 else 1);
- 
-                Prove_Round_To_One;
- 
              else
                 Q := 0;
- 
-                pragma Assert (Double_Uns'(Yhi * Zhi) >= Double_Uns (Yhi));
-                pragma Assert (Double_Uns'(Yhi * Zhi) >= Double_Uns (Zhi));
-                pragma Assert (Big (Double_Uns'(Yhi * Zhi)) >= 1);
-                if Yhi > 1 or else Zhi > 1 then
-                   pragma Assert (Big (Double_Uns'(Yhi * Zhi)) > 1);
-                   pragma Assert (if X = Double_Int'First and then Round then
-                                     Mult > Big_2xxDouble);
-                elsif Zlo > 0 then
-                   pragma Assert (Big (Double_Uns'(Yhi * Zlo)) > 0);
-                   pragma Assert (if X = Double_Int'First and then Round then
-                                     Mult > Big_2xxDouble);
-                elsif Ylo > 0 then
-                   pragma Assert (Double_Uns'(Ylo * Zhi) > 0);
-                   pragma Assert (Big (Double_Uns'(Ylo * Zhi)) > 0);
-                   pragma Assert (if X = Double_Int'First and then Round then
-                                     Mult > Big_2xxDouble);
-                else
-                   pragma Assert (not (X = Double_Int'First and then Round));
-                end if;
-                Prove_Quotient_Zero;
              end if;
  
              return;
           else
              T2 := Yhi * Zlo;
-             pragma Assert (Big (T2) = Big (Double_Uns'(Yhi * Zlo)));
-             pragma Assert (Big_0 = Big (Double_Uns'(Ylo * Zhi)));
           end if;
- 
        else
           T2 := Ylo * Zhi;
-          pragma Assert (Big (T2) = Big (Double_Uns'(Ylo * Zhi)));
-          pragma Assert (Big_0 = Big (Double_Uns'(Yhi * Zlo)));
        end if;
  
        T1 := Ylo * Zlo;
- 
-       Lemma_Mult_Distribution (Big_2xxSingle,
-                                Big (Double_Uns'(Yhi * Zlo)),
-                                Big (Double_Uns'(Ylo * Zhi)));
-       Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-       Lemma_Mult_Distribution (Big_2xxSingle,
-                                Big (T2),
-                                Big (Double_Uns (Hi (T1))));
-       Lemma_Add_Commutation (T2, Hi (T1));
- 
        T2 := T2 + Hi (T1);
  
-       Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-       Lemma_Mult_Distribution (Big_2xxSingle,
-                                Big (Double_Uns (Hi (T2))),
-                                Big (Double_Uns (Lo (T2))));
-       Lemma_Double_Big_2xxSingle;
- 
        if Hi (T2) /= 0 then
           R := X;
  
--- 175,195 ----
*************** is
*** 1112,1152 ****
             and then Round
           then
              Q := (if Den_Pos then -1 else 1);
- 
-             Prove_Round_To_One;
- 
           else
              Q := 0;
- 
-             pragma Assert (Big (Double_Uns (Hi (T2))) >= 1);
-             pragma Assert (Big (Double_Uns (Lo (T2))) >= 0);
-             pragma Assert (Big (Double_Uns (Lo (T1))) >= 0);
-             pragma Assert (Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                                          + Big (Double_Uns (Lo (T1))) >= 0);
-             pragma Assert (Mult >= Big_2xxDouble * Big (Double_Uns (Hi (T2))));
-             pragma Assert (Mult >= Big_2xxDouble);
-             if Hi (T2) > 1 then
-                pragma Assert (Big (Double_Uns (Hi (T2))) > 1);
-                pragma Assert (if X = Double_Int'First and then Round then
-                                  Mult > Big_2xxDouble);
-             elsif Lo (T2) > 0 then
-                pragma Assert (Big (Double_Uns (Lo (T2))) > 0);
-                pragma Assert (Big_2xxSingle > 0);
-                pragma Assert (Big_2xxSingle * Big (Double_Uns (Lo (T2))) > 0);
-                pragma Assert (Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                                             + Big (Double_Uns (Lo (T1))) > 0);
-                pragma Assert (if X = Double_Int'First and then Round then
-                                  Mult > Big_2xxDouble);
-             elsif Lo (T1) > 0 then
-                pragma Assert (Double_Uns (Lo (T1)) > 0);
-                Lemma_Gt_Commutation (Double_Uns (Lo (T1)), 0);
-                pragma Assert (Big (Double_Uns (Lo (T1))) > 0);
-                pragma Assert (if X = Double_Int'First and then Round then
-                                  Mult > Big_2xxDouble);
-             else
-                pragma Assert (not (X = Double_Int'First and then Round));
-             end if;
-             Prove_Quotient_Zero;
           end if;
  
           return;
--- 202,209 ----
*************** is
*** 1154,1175 ****
  
        Du := Lo (T2) & Lo (T1);
  
-       Lemma_Hi_Lo (Du, Lo (T2), Lo (T1));
-       pragma Assert (Mult = Big (Du));
-       pragma Assert (Du /= 0);
-       --  Multiplication of 2-limb arguments Yu and Zu leads to 4-limb result
-       --  (where each limb is a single value). Cases where 4 limbs are needed
-       --  require Yhi /= 0 and Zhi /= 0 and lead to early exit. Remaining cases
-       --  where 3 limbs are needed correspond to Hi(T2) /= 0 and lead to early
-       --  exit. Thus, at this point, the result fits in 2 limbs which are
-       --  exactly Lo (T2) and Lo (T1), which corresponds to the value of Du.
-       --  As the case where one of Yu or Zu is null also led to early exit,
-       --  we have Du /= 0 here.
- 
        --  Check overflow case of largest negative number divided by -1
  
        if X = Double_Int'First and then Du = 1 and then not Den_Pos then
-          Prove_Overflow_Case;
           Raise_Error;
        end if;
  
--- 211,219 ----
*************** is
*** 1188,1216 ****
        Qu := Xu / Du;
        Ru := Xu rem Du;
  
-       Lemma_Div_Commutation (Xu, Du);
-       Lemma_Abs_Div_Commutation (Big (X), Big (Y) * Big (Z));
-       Lemma_Abs_Commutation (X);
-       pragma Assert (abs Quot = Big (Qu));
-       Lemma_Rem_Commutation (Xu, Du);
-       Lemma_Abs_Rem_Commutation (Big (X), Big (Y) * Big (Z));
-       pragma Assert (abs Big_R = Big (Ru));
- 
        --  Deal with rounding case
  
        if Round then
           if Ru > (Du - Double_Uns'(1)) / Double_Uns'(2) then
-             Lemma_Add_Commutation (Qu, 1);
- 
              Qu := Qu + Double_Uns'(1);
           end if;
- 
-          Prove_Rounding_Case;
        end if;
  
-       pragma Assert (abs Big_Q = Big (Qu));
-       Prove_Sign_Quotient;
- 
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X) sign positive
--- 232,245 ----
*************** is
*** 1229,1238 ****
           R := To_Int (-Ru);
           Q := (if Den_Pos then To_Int (-Qu) else To_Int (Qu));
        end if;
- 
-       Prove_Signs;
     end Double_Divide;
-    pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
  
     ---------
     -- Le3 --
--- 258,264 ----
*************** is
*** 1254,1671 ****
     end Le3;
  
     -------------------------------
-    -- Lemma_Abs_Div_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          if X < 0 then
-             pragma Assert (abs (X / Y) = abs (X / (-Y)));
-          else
-             Lemma_Neg_Div (X, Y);
-             pragma Assert (abs (X / Y) = abs ((-X) / (-Y)));
-          end if;
-       end if;
-    end Lemma_Abs_Div_Commutation;
- 
-    -------------------------------
-    -- Lemma_Abs_Rem_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          Lemma_Neg_Rem (X, Y);
-          if X < 0 then
-             pragma Assert (X rem Y = -((-X) rem (-Y)));
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          else
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          end if;
-       end if;
-    end Lemma_Abs_Rem_Commutation;
- 
-    -----------------------------
-    -- Lemma_Concat_Definition --
-    -----------------------------
- 
-    procedure Lemma_Concat_Definition (X, Y : Single_Uns) is
-       Hi : constant Double_Uns := Shift_Left (Double_Uns (X), Single_Size);
-       Lo : constant Double_Uns := Double_Uns (Y);
-    begin
-       pragma Assert (Hi = Double_Uns'(2 ** Single_Size) * Double_Uns (X));
-       pragma Assert ((Hi or Lo) = Hi + Lo);
-    end Lemma_Concat_Definition;
- 
-    ------------------
-    -- Lemma_Div_Eq --
-    ------------------
- 
-    procedure Lemma_Div_Eq (A, B, S, R : Big_Integer) is
-    begin
-       pragma Assert ((A - B) * S = R);
-       pragma Assert ((A - B) * S / S = R / S);
-       Lemma_Mult_Div (A - B, S);
-       pragma Assert (A - B = R / S);
-    end Lemma_Div_Eq;
- 
-    ------------------------
-    -- Lemma_Double_Shift --
-    ------------------------
- 
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Natural) is
-    begin
-       Lemma_Double_Shift (X, Double_Uns (S), Double_Uns (S1));
-       pragma Assert (Shift_Left (Shift_Left (X, S), S1)
-         = Shift_Left (Shift_Left (X, S), Natural (Double_Uns (S1))));
-       pragma Assert (Shift_Left (X, S + S1)
-         = Shift_Left (X, Natural (Double_Uns (S + S1))));
-    end Lemma_Double_Shift;
- 
-    -----------------------------
-    -- Lemma_Double_Shift_Left --
-    -----------------------------
- 
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Natural) is
-    begin
-       Lemma_Double_Shift_Left (X, Double_Uns (S), Double_Uns (S1));
-       pragma Assert (Shift_Left (Shift_Left (X, S), S1)
-         = Shift_Left (Shift_Left (X, S), Natural (Double_Uns (S1))));
-       pragma Assert (Shift_Left (X, S + S1)
-         = Shift_Left (X, Natural (Double_Uns (S + S1))));
-    end Lemma_Double_Shift_Left;
- 
-    ------------------------------
-    -- Lemma_Double_Shift_Right --
-    ------------------------------
- 
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Natural) is
-    begin
-       Lemma_Double_Shift_Right (X, Double_Uns (S), Double_Uns (S1));
-       pragma Assert (Shift_Right (Shift_Right (X, S), S1)
-         = Shift_Right (Shift_Right (X, S), Natural (Double_Uns (S1))));
-       pragma Assert (Shift_Right (X, S + S1)
-         = Shift_Right (X, Natural (Double_Uns (S + S1))));
-    end Lemma_Double_Shift_Right;
- 
-    -----------------
-    -- Lemma_Hi_Lo --
-    -----------------
- 
-    procedure Lemma_Hi_Lo (Xu : Double_Uns; Xhi, Xlo : Single_Uns) is
-    begin
-       pragma Assert (Double_Uns (Xhi) = Xu / Double_Uns'(2 ** Single_Size));
-       pragma Assert (Double_Uns (Xlo) = Xu mod 2 ** Single_Size);
-    end Lemma_Hi_Lo;
- 
-    -------------------
-    -- Lemma_Hi_Lo_3 --
-    -------------------
- 
-    procedure Lemma_Hi_Lo_3 (Xu : Double_Uns; Xhi, Xlo : Single_Uns) is
-    begin
-       Lemma_Hi_Lo (Xu, Xhi, Xlo);
-    end Lemma_Hi_Lo_3;
- 
-    ------------------------------
-    -- Lemma_Mult_Decomposition --
-    ------------------------------
- 
-    procedure Lemma_Mult_Decomposition
-      (Mult               : Big_Integer;
-       Xu, Yu             : Double_Uns;
-       Xhi, Xlo, Yhi, Ylo : Single_Uns)
-    is
-    begin
-       Lemma_Hi_Lo (Xu, Xhi, Xlo);
-       Lemma_Hi_Lo (Yu, Yhi, Ylo);
- 
-       pragma Assert
-         (Mult =
-            (Big_2xxSingle * Big (Double_Uns (Xhi)) + Big (Double_Uns (Xlo))) *
-            (Big_2xxSingle * Big (Double_Uns (Yhi)) + Big (Double_Uns (Ylo))));
-       pragma Assert (Mult =
-         Big_2xxSingle
-           * Big_2xxSingle * Big (Double_Uns (Xhi)) * Big (Double_Uns (Yhi))
-           + Big_2xxSingle * Big (Double_Uns (Xhi)) * Big (Double_Uns (Ylo))
-           + Big_2xxSingle * Big (Double_Uns (Xlo)) * Big (Double_Uns (Yhi))
-                           + Big (Double_Uns (Xlo)) * Big (Double_Uns (Ylo)));
-       Lemma_Deep_Mult_Commutation (Big_2xxSingle * Big_2xxSingle, Xhi, Yhi);
-       Lemma_Deep_Mult_Commutation (Big_2xxSingle, Xhi, Ylo);
-       Lemma_Deep_Mult_Commutation (Big_2xxSingle, Xlo, Yhi);
-       Lemma_Mult_Commutation (Xlo, Ylo);
-       pragma Assert (Mult =
-         Big_2xxSingle * Big_2xxSingle * Big (Double_Uns'(Xhi * Yhi))
-                       + Big_2xxSingle * Big (Double_Uns'(Xhi * Ylo))
-                       + Big_2xxSingle * Big (Double_Uns'(Xlo * Yhi))
-                                       + Big (Double_Uns'(Xlo * Ylo)));
-    end Lemma_Mult_Decomposition;
- 
-    --------------------
-    -- Lemma_Mult_Div --
-    --------------------
- 
-    procedure Lemma_Mult_Div (A, B : Big_Integer) is
-    begin
-       if B > 0 then
-          pragma Assert (A * B / B = A);
-       else
-          pragma Assert (A * (-B) / (-B) = A);
-       end if;
-    end Lemma_Mult_Div;
- 
-    -------------------
-    -- Lemma_Neg_Div --
-    -------------------
- 
-    procedure Lemma_Neg_Div (X, Y : Big_Integer) is
-    begin
-       pragma Assert ((-X) / (-Y) = -(X / (-Y)));
-       pragma Assert (X / (-Y) = -(X / Y));
-    end Lemma_Neg_Div;
- 
-    -----------------------
-    -- Lemma_Powers_Of_2 --
-    -----------------------
- 
-    procedure Lemma_Powers_Of_2 (M, N : Natural) is
-    begin
-       if M + N < Double_Size then
-          pragma Assert (Double_Uns'(2**M) * Double_Uns'(2**N)
-                         = Double_Uns'(2**(M + N)));
-       end if;
- 
-       Lemma_Powers_Of_2_Commutation (M);
-       Lemma_Powers_Of_2_Commutation (N);
-       Lemma_Powers_Of_2_Commutation (M + N);
-       Lemma_Powers (Big (Double_Uns'(2)), M, N);
- 
-       if M + N < Double_Size then
-          pragma Assert (Big (Double_Uns'(2))**M * Big (Double_Uns'(2))**N
-                         = Big (Double_Uns'(2))**(M + N));
-          Lemma_Powers_Of_2_Increasing (M + N, Double_Size);
-          Lemma_Mult_Commutation (2 ** M, 2 ** N, 2 ** (M + N));
-       else
-          pragma Assert (Big (Double_Uns'(2))**M * Big (Double_Uns'(2))**N
-                         = Big (Double_Uns'(2))**(M + N));
-       end if;
-    end Lemma_Powers_Of_2;
- 
-    -----------------------------------
-    -- Lemma_Powers_Of_2_Commutation --
-    -----------------------------------
- 
-    procedure Lemma_Powers_Of_2_Commutation (M : Natural) is
-    begin
-       if M > 0 then
-          Lemma_Powers_Of_2_Commutation (M - 1);
-          pragma Assert (Big (Double_Uns'(2))**(M - 1) = Big_2xx (M - 1));
-          pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M - 1) * 2);
-          if M < Double_Size then
-             Lemma_Powers_Of_2_Increasing (M - 1, Double_Size - 1);
-             Lemma_Bounded_Powers_Of_2_Increasing (M - 1, Double_Size - 1);
-             pragma Assert (Double_Uns'(2 ** (M - 1)) * 2 = Double_Uns'(2**M));
-             Lemma_Mult_Commutation
-               (Double_Uns'(2 ** (M - 1)), 2, Double_Uns'(2**M));
-             pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M));
-          end if;
-       else
-          pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M));
-       end if;
-    end Lemma_Powers_Of_2_Commutation;
- 
-    ----------------------------------
-    -- Lemma_Powers_Of_2_Increasing --
-    ----------------------------------
- 
-    procedure Lemma_Powers_Of_2_Increasing (M, N : Natural) is
-    begin
-       if M + 1 < N then
-          Lemma_Powers_Of_2_Increasing (M + 1, N);
-       end if;
-    end Lemma_Powers_Of_2_Increasing;
- 
-    -------------------
-    -- Lemma_Rem_Abs --
-    -------------------
- 
-    procedure Lemma_Rem_Abs (X, Y : Big_Integer) is
-    begin
-       Lemma_Neg_Rem (X, Y);
-    end Lemma_Rem_Abs;
- 
-    ----------------------
-    -- Lemma_Shift_Left --
-    ----------------------
- 
-    procedure Lemma_Shift_Left (X : Double_Uns; Shift : Natural) is
- 
-       procedure Lemma_Mult_Pow2 (X : Double_Uns; I : Natural)
-       with
-         Ghost,
-         Pre  => I < Double_Size - 1,
-         Post => X * Double_Uns'(2) ** I * Double_Uns'(2)
-           = X * Double_Uns'(2) ** (I + 1);
- 
-       procedure Lemma_Mult_Pow2 (X : Double_Uns; I : Natural) is
-          Mul1 : constant Double_Uns := Double_Uns'(2) ** I;
-          Mul2 : constant Double_Uns := Double_Uns'(2);
-          Left : constant Double_Uns := X * Mul1 * Mul2;
-       begin
-          pragma Assert (Left = X * (Mul1 * Mul2));
-          pragma Assert (Mul1 * Mul2 = Double_Uns'(2) ** (I + 1));
-       end Lemma_Mult_Pow2;
- 
-       XX : Double_Uns := X;
- 
-    begin
-       for J in 1 .. Shift loop
-          declare
-             Cur_XX : constant Double_Uns := XX;
-          begin
-             XX := Shift_Left (XX, 1);
-             pragma Assert (XX = Cur_XX * Double_Uns'(2));
-             Lemma_Mult_Pow2 (X, J - 1);
-          end;
-          Lemma_Double_Shift_Left (X, J - 1, 1);
-          pragma Loop_Invariant (XX = Shift_Left (X, J));
-          pragma Loop_Invariant (XX = X * Double_Uns'(2) ** J);
-       end loop;
-    end Lemma_Shift_Left;
- 
-    -----------------------
-    -- Lemma_Shift_Right --
-    -----------------------
- 
-    procedure Lemma_Shift_Right (X : Double_Uns; Shift : Natural) is
- 
-       procedure Lemma_Div_Pow2 (X : Double_Uns; I : Natural)
-       with
-         Ghost,
-         Pre  => I < Double_Size - 1,
-         Post => X / Double_Uns'(2) ** I / Double_Uns'(2)
-           = X / Double_Uns'(2) ** (I + 1);
- 
-       procedure Lemma_Quot_Rem (X, Div, Q, R : Double_Uns)
-       with
-         Ghost,
-         Pre  => Div /= 0
-           and then X = Q * Div + R
-           and then Q <= Double_Uns'Last / Div
-           and then R <= Double_Uns'Last - Q * Div
-           and then R < Div,
-         Post => Q = X / Div;
-       pragma Annotate (GNATprove, False_Positive, "postcondition might fail",
-                        "Q is the quotient of X by Div");
- 
-       procedure Lemma_Div_Pow2 (X : Double_Uns; I : Natural) is
- 
-          --  Local lemmas
- 
-          procedure Lemma_Mult_Le (X, Y, Z : Double_Uns)
-          with
-            Ghost,
-            Pre  => X <= 1,
-            Post => X * Z <= Z;
- 
-          procedure Lemma_Mult_Le (X, Y, Z : Double_Uns) is null;
- 
-          --  Local variables
- 
-          Div1 : constant Double_Uns := Double_Uns'(2) ** I;
-          Div2 : constant Double_Uns := Double_Uns'(2);
-          Left : constant Double_Uns := X / Div1 / Div2;
-          R2   : constant Double_Uns := X / Div1 - Left * Div2;
-          pragma Assert (R2 <= Div2 - 1);
-          R1   : constant Double_Uns := X - X / Div1 * Div1;
-          pragma Assert (R1 < Div1);
- 
-       --  Start of processing for Lemma_Div_Pow2
- 
-       begin
-          pragma Assert (X = Left * (Div1 * Div2) + R2 * Div1 + R1);
-          Lemma_Mult_Le (R2, Div2 - 1, Div1);
-          pragma Assert (R2 * Div1 + R1 < Div1 * Div2);
-          Lemma_Quot_Rem (X, Div1 * Div2, Left, R2 * Div1 + R1);
-          pragma Assert (Left = X / (Div1 * Div2));
-          pragma Assert (Div1 * Div2 = Double_Uns'(2) ** (I + 1));
-       end Lemma_Div_Pow2;
- 
-       procedure Lemma_Quot_Rem (X, Div, Q, R : Double_Uns) is null;
- 
-       XX : Double_Uns := X;
- 
-    begin
-       for J in 1 .. Shift loop
-          declare
-             Cur_XX : constant Double_Uns := XX;
-          begin
-             XX := Shift_Right (XX, 1);
-             pragma Assert (XX = Cur_XX / Double_Uns'(2));
-             Lemma_Div_Pow2 (X, J - 1);
-          end;
-          Lemma_Double_Shift_Right (X, J - 1, 1);
-          pragma Loop_Invariant (XX = Shift_Right (X, J));
-          pragma Loop_Invariant (XX = X / Double_Uns'(2) ** J);
-       end loop;
-       Lemma_Div_Commutation (X, Double_Uns'(2) ** Shift);
-    end Lemma_Shift_Right;
- 
-    ------------------------------
-    -- Lemma_Shift_Without_Drop --
-    ------------------------------
- 
-    procedure Lemma_Shift_Without_Drop
-      (X, Y  : Double_Uns;
-       Mask  : Single_Uns;
-       Shift : Natural)
-    is
-       pragma Unreferenced (Mask);
- 
-       procedure Lemma_Bound
-       with
-         Pre  => Shift <= Single_Size
-           and then X <= 2**Single_Size
-             * Double_Uns'(2**(Single_Size - Shift) - 1)
-             + Single_Uns'(2**Single_Size - 1),
-         Post => X <= 2**(Double_Size - Shift) - 1;
- 
-       procedure Lemma_Exp_Pos (N : Integer)
-       with
-         Pre  => N in 0 .. Double_Size - 1,
-         Post => Double_Uns'(2**N) > 0;
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Lemma_Bound is null;
-       procedure Lemma_Exp_Pos (N : Integer) is null;
- 
-    --  Start of processing for Lemma_Shift_Without_Drop
- 
-    begin
-       if Shift = 0 then
-          pragma Assert (Big (Y) = Big_2xx (Shift) * Big (X));
-          return;
-       end if;
- 
-       Lemma_Bound;
-       Lemma_Exp_Pos (Double_Size - Shift);
-       pragma Assert (X < 2**(Double_Size - Shift));
-       pragma Assert (Big (X) < Big_2xx (Double_Size - Shift));
-       pragma Assert (Y = 2**Shift * X);
-       Lemma_Lt_Mult (Big (X), Big_2xx (Double_Size - Shift), Big_2xx (Shift),
-                      Big_2xx (Shift) * Big_2xx (Double_Size - Shift));
-       pragma Assert (Big_2xx (Shift) * Big (X)
-                      < Big_2xx (Shift) * Big_2xx (Double_Size - Shift));
-       Lemma_Powers_Of_2 (Shift, Double_Size - Shift);
-       Lemma_Mult_Commutation (2**Shift, X, Y);
-       pragma Assert (Big (Y) = Big_2xx (Shift) * Big (X));
-    end Lemma_Shift_Without_Drop;
- 
-    -------------------------------
     -- Multiply_With_Ovflo_Check --
     -------------------------------
  
--- 280,285 ----
*************** is
*** 1680,1839 ****
  
        T1, T2 : Double_Uns;
  
-       --  Local ghost variables
- 
-       Mult : constant Big_Integer := abs (Big (X) * Big (Y)) with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Prove_Both_Too_Large
-       with
-         Ghost,
-         Pre  => Xhi /= 0
-           and then Yhi /= 0
-           and then Mult =
-             Big_2xxSingle * Big_2xxSingle * (Big (Double_Uns'(Xhi * Yhi)))
-                       + Big_2xxSingle * (Big (Double_Uns'(Xhi * Ylo)))
-                       + Big_2xxSingle * (Big (Double_Uns'(Xlo * Yhi)))
-                                   + (Big (Double_Uns'(Xlo * Ylo))),
-         Post => not In_Double_Int_Range (Big (X) * Big (Y));
- 
-       procedure Prove_Final_Decomposition
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big (X) * Big (Y))
-           and then Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1)))
-           and then Hi (T2) = 0,
-         Post => Mult = Big (Lo (T2) & Lo (T1));
- 
-       procedure Prove_Neg_Int
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big (X) * Big (Y))
-           and then Mult = Big (T2)
-           and then ((X >= 0 and then Y < 0) or else (X < 0 and then Y >= 0)),
-         Post => To_Neg_Int (T2) = X * Y;
- 
-       procedure Prove_Pos_Int
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big (X) * Big (Y))
-           and then Mult = Big (T2)
-           and then ((X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0)),
-         Post => In_Double_Int_Range (Big (T2))
-           and then To_Pos_Int (T2) = X * Y;
- 
-       procedure Prove_Result_Too_Large
-       with
-         Ghost,
-         Pre  => Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1)))
-           and then Hi (T2) /= 0,
-         Post => not In_Double_Int_Range (Big (X) * Big (Y));
- 
-       procedure Prove_Too_Large
-       with
-         Ghost,
-         Pre  => abs (Big (X) * Big (Y)) >= Big_2xxDouble,
-         Post => not In_Double_Int_Range (Big (X) * Big (Y));
- 
-       --------------------------
-       -- Prove_Both_Too_Large --
-       --------------------------
- 
-       procedure Prove_Both_Too_Large is
-       begin
-          pragma Assert (Mult >=
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns'(Xhi * Yhi)));
-          pragma Assert (Double_Uns (Xhi) * Double_Uns (Yhi) >= 1);
-          pragma Assert (Mult >= Big_2xxSingle * Big_2xxSingle);
-          Prove_Too_Large;
-       end Prove_Both_Too_Large;
- 
-       -------------------------------
-       -- Prove_Final_Decomposition --
-       -------------------------------
- 
-       procedure Prove_Final_Decomposition is
-       begin
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          pragma Assert (Mult = Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                                              + Big (Double_Uns (Lo (T1))));
-          pragma Assert (Mult <= Big_2xxDouble_Minus_1);
-          Lemma_Mult_Commutation (X, Y);
-          pragma Assert (Mult = abs Big (X * Y));
-          Lemma_Word_Commutation (Lo (T2));
-          pragma Assert (Mult = Big (Double_Uns'(2 ** Single_Size)
-                           * Double_Uns (Lo (T2)))
-                           + Big (Double_Uns (Lo (T1))));
-          Lemma_Add_Commutation (Double_Uns'(2 ** Single_Size)
-                                   * Double_Uns (Lo (T2)),
-                                 Lo (T1));
-          pragma Assert (Mult = Big (Double_Uns'(2 ** Single_Size)
-                           * Double_Uns (Lo (T2)) + Lo (T1)));
-          pragma Assert (Lo (T2) & Lo (T1) = Double_Uns'(2 ** Single_Size)
-                           * Double_Uns (Lo (T2)) + Lo (T1));
-       end Prove_Final_Decomposition;
- 
-       -------------------
-       -- Prove_Neg_Int --
-       -------------------
- 
-       procedure Prove_Neg_Int is
-       begin
-          pragma Assert (X * Y <= 0);
-          pragma Assert (Mult = -Big (X * Y));
-       end Prove_Neg_Int;
- 
-       -------------------
-       -- Prove_Pos_Int --
-       -------------------
- 
-       procedure Prove_Pos_Int is
-       begin
-          pragma Assert (X * Y >= 0);
-          pragma Assert (Mult = Big (X * Y));
-       end Prove_Pos_Int;
- 
-       ----------------------------
-       -- Prove_Result_Too_Large --
-       ----------------------------
- 
-       procedure Prove_Result_Too_Large is
-       begin
-          pragma Assert (Mult >= Big_2xxSingle * Big (T2));
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          pragma Assert (Mult >=
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2))));
-          pragma Assert (Double_Uns (Hi (T2)) >= 1);
-          pragma Assert (Mult >= Big_2xxSingle * Big_2xxSingle);
-          Prove_Too_Large;
-       end Prove_Result_Too_Large;
- 
-       ---------------------
-       -- Prove_Too_Large --
-       ---------------------
- 
-       procedure Prove_Too_Large is null;
- 
-    --  Start of processing for Multiply_With_Ovflo_Check
- 
     begin
-       Lemma_Mult_Decomposition (Mult, Xu, Yu, Xhi, Xlo, Yhi, Ylo);
- 
        if Xhi /= 0 then
           if Yhi /= 0 then
-             Prove_Both_Too_Large;
              Raise_Error;
           else
              T2 := Xhi * Ylo;
-             pragma Assert (Big (T2) = Big (Double_Uns'(Xhi * Ylo))
-                                     + Big (Double_Uns'(Xlo * Yhi)));
           end if;
  
        elsif Yhi /= 0 then
           T2 := Xlo * Yhi;
-          pragma Assert (Big (T2) = Big (Double_Uns'(Xhi * Ylo))
-                                  + Big (Double_Uns'(Xlo * Yhi)));
  
        else -- Yhi = Xhi = 0
           T2 := 0;
--- 294,309 ----
*************** is
*** 1843,1899 ****
        --  result from the upper halves of the input values.
  
        T1 := Xlo * Ylo;
- 
-       pragma Assert (Big (T2) = Big (Double_Uns'(Xhi * Ylo))
-                               + Big (Double_Uns'(Xlo * Yhi)));
-       Lemma_Mult_Distribution (Big_2xxSingle, Big (Double_Uns'(Xhi * Ylo)),
-                                               Big (Double_Uns'(Xlo * Yhi)));
-       pragma Assert (Mult = Big_2xxSingle * Big (T2) + Big (T1));
-       Lemma_Add_Commutation (T2, Hi (T1));
-       pragma Assert
-         (Big (T2 + Hi (T1)) = Big (T2) + Big (Double_Uns (Hi (T1))));
- 
        T2 := T2 + Hi (T1);
  
-       Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-       pragma Assert
-         (Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1))));
- 
        if Hi (T2) /= 0 then
-          Prove_Result_Too_Large;
           Raise_Error;
        end if;
  
-       Prove_Final_Decomposition;
- 
        T2 := Lo (T2) & Lo (T1);
  
-       pragma Assert (Mult = Big (T2));
- 
        if X >= 0 then
           if Y >= 0 then
-             Prove_Pos_Int;
              return To_Pos_Int (T2);
-             pragma Annotate (CodePeer, Intentional, "precondition",
-                              "Intentional Unsigned->Signed conversion");
           else
-             Prove_Neg_Int;
-             Lemma_Abs_Range (Big (X) * Big (Y));
              return To_Neg_Int (T2);
           end if;
        else -- X < 0
           if Y < 0 then
-             Prove_Pos_Int;
              return To_Pos_Int (T2);
-             pragma Annotate (CodePeer, Intentional, "precondition",
-                              "Intentional Unsigned->Signed conversion");
           else
-             Prove_Neg_Int;
-             Lemma_Abs_Range (Big (X) * Big (Y));
              return To_Neg_Int (T2);
           end if;
        end if;
- 
     end Multiply_With_Ovflo_Check;
  
     -----------------
--- 313,339 ----
*************** is
*** 1909,1916 ****
     -- Scaled_Divide --
     -------------------
  
-    pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
-                     "limit exceeded due to proof code");
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
--- 349,354 ----
*************** is
*** 1928,1937 ****
        Zhi : Single_Uns := Hi (Zu);
        Zlo : Single_Uns := Lo (Zu);
  
!       D : array (1 .. 4) of Single_Uns with Relaxed_Initialization;
        --  The dividend, four digits (D(1) is high order)
  
!       Qd : array (1 .. 2) of Single_Uns with Relaxed_Initialization;
        --  The quotient digits, two digits (Qd(1) is high order)
  
        S1, S2, S3 : Single_Uns;
--- 366,375 ----
        Zhi : Single_Uns := Hi (Zu);
        Zlo : Single_Uns := Lo (Zu);
  
!       D : array (1 .. 4) of Single_Uns;
        --  The dividend, four digits (D(1) is high order)
  
!       Qd : array (1 .. 2) of Single_Uns;
        --  The quotient digits, two digits (Qd(1) is high order)
  
        S1, S2, S3 : Single_Uns;
*************** is
*** 1956,2560 ****
        T1, T2, T3 : Double_Uns;
        --  Temporary values
  
-       --  Local ghost variables
- 
-       Mult  : constant Big_Natural := abs (Big (X) * Big (Y)) with Ghost;
-       Quot  : Big_Integer with Ghost;
-       Big_R : Big_Integer with Ghost;
-       Big_Q : Big_Integer with Ghost;
-       Inter : Natural with Ghost;
- 
-       --  Local ghost functions
- 
-       function Is_Mult_Decomposition
-         (D1, D2, D3, D4 : Big_Integer)
-          return Boolean
-       is
-         (Mult = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle * D1
-                               + Big_2xxSingle * Big_2xxSingle * D2
-                                               + Big_2xxSingle * D3
-                                                               + D4)
-       with
-         Ghost,
-         Annotate => (GNATprove, Inline_For_Proof);
- 
-       function Is_Scaled_Mult_Decomposition
-         (D1, D2, D3, D4 : Big_Integer)
-          return Boolean
-       is
-         (Mult * Big_2xx (Scale)
-            = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle * D1
-                            + Big_2xxSingle * Big_2xxSingle * D2
-                                            + Big_2xxSingle * D3
-                                                            + D4)
-       with
-         Ghost,
-         Annotate => (GNATprove, Inline_For_Proof),
-         Pre => Scale < Double_Size;
- 
-       --  Local lemmas
- 
-       procedure Prove_Dividend_Scaling
-       with
-         Ghost,
-         Pre  => D'Initialized
-           and then Scale <= Single_Size
-           and then Is_Mult_Decomposition (Big (Double_Uns (D (1))),
-                                           Big (Double_Uns (D (2))),
-                                           Big (Double_Uns (D (3))),
-                                           Big (Double_Uns (D (4))))
-           and then Big (D (1) & D (2)) * Big_2xx (Scale) < Big_2xxDouble
-           and then T1 = Shift_Left (D (1) & D (2), Scale)
-           and then T2 = Shift_Left (Double_Uns (D (3)), Scale)
-           and then T3 = Shift_Left (Double_Uns (D (4)), Scale),
-         Post => Is_Scaled_Mult_Decomposition
-           (Big (Double_Uns (Hi (T1))),
-            Big (Double_Uns (Lo (T1) or Hi (T2))),
-            Big (Double_Uns (Lo (T2) or Hi (T3))),
-            Big (Double_Uns (Lo (T3))));
-       --  Proves the scaling of the 4-digit dividend actually multiplies it by
-       --  2**Scale.
- 
-       procedure Prove_Multiplication (Q : Single_Uns)
-       with
-         Ghost,
-         Pre  => T1 = Q * Lo (Zu)
-           and then T2 = Q * Hi (Zu)
-           and then S3 = Lo (T1)
-           and then T3 = Hi (T1) + Lo (T2)
-           and then S2 = Lo (T3)
-           and then S1 = Hi (T3) + Hi (T2),
-         Post => Big3 (S1, S2, S3) = Big (Double_Uns (Q)) * Big (Zu);
-       --  Proves correctness of the multiplication of divisor by quotient to
-       --  compute amount to subtract.
- 
-       procedure Prove_Mult_Decomposition_Split2
-         (D1, D2, D2_Hi, D2_Lo, D3, D4 : Big_Integer)
-       with
-         Ghost,
-         Pre  => Is_Mult_Decomposition (D1, D2, D3, D4)
-           and then D2 = Big_2xxSingle * D2_Hi + D2_Lo,
-         Post => Is_Mult_Decomposition (D1 + D2_Hi, D2_Lo, D3, D4);
-       --  Proves decomposition of Mult after splitting second component
- 
-       procedure Prove_Mult_Decomposition_Split3
-         (D1, D2, D3, D3_Hi, D3_Lo, D4 : Big_Integer)
-       with
-         Ghost,
-         Pre  => Is_Mult_Decomposition (D1, D2, D3, D4)
-           and then D3 = Big_2xxSingle * D3_Hi + D3_Lo,
-         Post => Is_Mult_Decomposition (D1, D2 + D3_Hi, D3_Lo, D4);
-       --  Proves decomposition of Mult after splitting third component
- 
-       procedure Prove_Negative_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Big (Qu) = abs Big_Q
-           and then In_Double_Int_Range (Big_Q)
-           and then Big (Ru) = abs Big_R
-           and then ((X >= 0 and Y < 0) or (X < 0 and Y >= 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z))
-           and then Big_R = Big (X) * Big (Y) rem Big (Z),
-          Post =>
-            (if Z > 0 then Big_Q <= Big_0
-               and then In_Double_Int_Range (-Big (Qu))
-             else Big_Q >= Big_0
-               and then In_Double_Int_Range (Big (Qu)))
-            and then In_Double_Int_Range (-Big (Ru));
-       --  Proves the sign of rounded quotient when dividend is non-positive
- 
-       procedure Prove_Overflow
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Mult >= Big_2xxDouble * Big (Double_Uns'(abs Z)),
-         Post => not In_Double_Int_Range (Big (X) * Big (Y) / Big (Z))
-           and then not In_Double_Int_Range
-             (Round_Quotient (Big (X) * Big (Y), Big (Z),
-                              Big (X) * Big (Y) / Big (Z),
-                              Big (X) * Big (Y) rem Big (Z)));
-       --  Proves overflow case when the quotient has at least 3 digits
- 
-       procedure Prove_Positive_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Big (Qu) = abs Big_Q
-           and then In_Double_Int_Range (Big_Q)
-           and then Big (Ru) = abs Big_R
-           and then ((X >= 0 and Y >= 0) or (X < 0 and Y < 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z))
-           and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post =>
-            (if Z > 0 then Big_Q >= Big_0
-               and then In_Double_Int_Range (Big (Qu))
-             else Big_Q <= Big_0
-               and then In_Double_Int_Range (-Big (Qu)))
-            and then In_Double_Int_Range (Big (Ru));
-       --  Proves the sign of rounded quotient when dividend is non-negative
- 
-       procedure Prove_Qd_Calculation_Part_1 (J : Integer)
-       with
-         Ghost,
-         Pre  => J in 1 .. 2
-           and then D'Initialized
-           and then D (J) < Zhi
-           and then Hi (Zu) = Zhi
-           and then Qd (J)'Initialized
-           and then Qd (J) = Lo ((D (J) & D (J + 1)) / Zhi),
-         Post => Big (Double_Uns (Qd (J))) >=
-           Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu);
-       --  When dividing 3 digits by 2 digits, proves the initial calculation
-       --  of the quotient given by dividing the first 2 digits of the dividend
-       --  by the first digit of the divisor is not an underestimate (so
-       --  readjusting down works).
- 
-       procedure Prove_Q_Too_Big
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big_Q)
-           and then abs Big_Q = Big_2xxDouble,
-         Post => False;
-       --  Proves the inconsistency when Q is equal to Big_2xx64
- 
-       procedure Prove_Rescaling
-       with
-         Ghost,
-         Pre  => Scale <= Single_Size
-           and then Z /= 0
-           and then Mult * Big_2xx (Scale) = Big (Zu) * Big (Qu) + Big (Ru)
-           and then Big (Ru) < Big (Zu)
-           and then Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale)
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post => abs Quot = Big (Qu)
-           and then abs Big_R = Big (Shift_Right (Ru, Scale));
-       --  Proves scaling back only the remainder is the right thing to do after
-       --  computing the scaled division.
- 
-       procedure Prove_Rounding_Case
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-           and then Big (Ru) = abs Big_R
-           and then Big (Zu) = Big (Double_Uns'(abs Z)),
-         Post => abs Big_Q =
-           (if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2)
-            then abs Quot + 1
-            else abs Quot);
-       --  Proves correctness of the rounding of the unsigned quotient
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup24
-         (D1, D2, D3, D4 : Big_Integer)
-       with
-         Ghost,
-         Pre  => Scale < Double_Size
-           and then Is_Scaled_Mult_Decomposition (D1, D2, D3, D4),
-         Post => Is_Scaled_Mult_Decomposition
-           (0, Big_2xxSingle * D1 + D2, 0, Big_2xxSingle * D3 + D4);
-       --  Proves scaled decomposition of Mult after regrouping on second and
-       --  fourth component.
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup3
-         (D1, D2, D3, D4 : Single_Uns)
-       with
-         Ghost,
-         Pre  => Scale < Double_Size
-           and then Is_Scaled_Mult_Decomposition
-             (Big (Double_Uns (D1)), Big (Double_Uns (D2)),
-              Big (Double_Uns (D3)), Big (Double_Uns (D4))),
-         Post => Is_Scaled_Mult_Decomposition (0, 0, Big3 (D1, D2, D3),
-                                               Big (Double_Uns (D4)));
-       --  Proves scaled decomposition of Mult after regrouping on third
-       --  component.
- 
-       procedure Prove_Sign_R
-       with
-         Ghost,
-         Pre  => Z /= 0 and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post => In_Double_Int_Range (Big_R);
- 
-       procedure Prove_Signs
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-              else Quot)
-           and then Big (Ru) = abs Big_R
-           and then Big (Qu) = abs Big_Q
-           and then In_Double_Int_Range (Big_Q)
-           and then In_Double_Int_Range (Big_R)
-           and then R =
-             (if (X >= 0) = (Y >= 0) then To_Pos_Int (Ru) else To_Neg_Int (Ru))
-           and then Q =
-             (if ((X >= 0) = (Y >= 0)) = (Z >= 0) then To_Pos_Int (Qu)
-              else To_Neg_Int (Qu)),  --  need to ensure To_Pos_Int precondition
-         Post => Big (R) = Big_R and then Big (Q) = Big_Q;
-       --  Proves final signs match the intended result after the unsigned
-       --  division is done.
- 
-       procedure Prove_Z_Low
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then D'Initialized
-           and then Hi (abs Z) = 0
-           and then Lo (abs Z) = Zlo
-           and then Mult =
-             Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (2)))
-                           + Big_2xxSingle * Big (Double_Uns (D (3)))
-                                           + Big (Double_Uns (D (4)))
-           and then D (2) < Zlo
-           and then Quot = (Big (X) * Big (Y)) / Big (Z)
-           and then Big_R = (Big (X) * Big (Y)) rem Big (Z)
-           and then T1 = D (2) & D (3)
-           and then T2 = Lo (T1 rem Zlo) & D (4)
-           and then Qu = Lo (T1 / Zlo) & Lo (T2 / Zlo)
-           and then Ru = T2 rem Zlo,
-         Post => Big (Qu) = abs Quot
-           and then Big (Ru) = abs Big_R;
-       --  Proves the case where the divisor is only one digit
- 
-       ----------------------------
-       -- Prove_Dividend_Scaling --
-       ----------------------------
- 
-       procedure Prove_Dividend_Scaling is
-          Big_D12 : constant Big_Integer :=
-            Big_2xx (Scale) * Big (D (1) & D (2));
-          Big_T1  : constant Big_Integer := Big (T1);
-          Big_D3  : constant Big_Integer :=
-            Big_2xx (Scale) * Big (Double_Uns (D (3)));
-          Big_T2  : constant Big_Integer := Big (T2);
-          Big_D4  : constant Big_Integer :=
-            Big_2xx (Scale) * Big (Double_Uns (D (4)));
-          Big_T3  : constant Big_Integer := Big (T3);
- 
-       begin
-          Lemma_Shift_Left (D (1) & D (2), Scale);
-          Lemma_Ge_Mult (Big_2xxSingle, Big_2xx (Scale), Big_2xxSingle,
-                         Big_2xxSingle * Big_2xx (Scale));
-          Lemma_Lt_Mult (Big (Double_Uns (D (3))), Big_2xxSingle,
-                         Big_2xx (Scale), Big_2xxDouble);
-          Lemma_Shift_Left (Double_Uns (D (3)), Scale);
-          Lemma_Lt_Mult (Big (Double_Uns (D (4))), Big_2xxSingle,
-                         Big_2xx (Scale), Big_2xxDouble);
-          Lemma_Shift_Left (Double_Uns (D (4)), Scale);
-          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
-          pragma Assert (Mult * Big_2xx (Scale) =
-            Big_2xxSingle * Big_2xxSingle * Big_D12
-                          + Big_2xxSingle * Big_D3
-                                          + Big_D4);
-          pragma Assert (Big_2xx (Scale) > 0);
-          declare
-             Two_xx_Scale : constant Double_Uns := Double_Uns'(2 ** Scale);
-             D12          : constant Double_Uns := D (1) & D (2);
-          begin
-             pragma Assert (Big_2xx (Scale) * Big (D12) < Big_2xxDouble);
-             pragma Assert (Big (Two_xx_Scale) * Big (D12) < Big_2xxDouble);
-             Lemma_Mult_Commutation (Two_xx_Scale, D12, T1);
-          end;
-          pragma Assert (Big_D12 = Big_T1);
-          pragma Assert (Big_2xxSingle * Big_2xxSingle * Big_D12
-                         = Big_2xxSingle * Big_2xxSingle * Big_T1);
-          Lemma_Mult_Commutation (2 ** Scale, Double_Uns (D (3)), T2);
-          pragma Assert (Big_D3 = Big_T2);
-          pragma Assert (Big_2xxSingle * Big_D3 = Big_2xxSingle * Big_T2);
-          Lemma_Mult_Commutation (2 ** Scale, Double_Uns (D (4)), T3);
-          pragma Assert
-            (Is_Scaled_Mult_Decomposition (0, Big_T1, Big_T2, Big_T3));
-          Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          Lemma_Hi_Lo (T3, Hi (T3), Lo (T3));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big_2xxSingle * Big (Double_Uns (Hi (T1))),
-                                   Big (Double_Uns (Lo (T1))));
-          Lemma_Mult_Distribution (Big_2xxSingle,
-                                   Big_2xxSingle * Big (Double_Uns (Hi (T2))),
-                                   Big (Double_Uns (Lo (T2))));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big (Double_Uns (Lo (T1))),
-                                   Big (Double_Uns (Hi (T2))));
-          Lemma_Mult_Distribution (Big_2xxSingle,
-                                   Big (Double_Uns (Lo (T2))),
-                                   Big (Double_Uns (Hi (T3))));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big (Double_Uns (Lo (T1))),
-                                   Big (Double_Uns (Hi (T2))));
-          pragma Assert (Double_Uns (Lo (T1) or Hi (T2)) =
-                           Double_Uns (Lo (T1)) + Double_Uns (Hi (T2)));
-          pragma Assert (Double_Uns (Lo (T2) or Hi (T3)) =
-                           Double_Uns (Lo (T2)) + Double_Uns (Hi (T3)));
-          Lemma_Add_Commutation (Double_Uns (Lo (T1)), Hi (T2));
-          Lemma_Add_Commutation (Double_Uns (Lo (T2)), Hi (T3));
-       end Prove_Dividend_Scaling;
- 
-       --------------------------
-       -- Prove_Multiplication --
-       --------------------------
- 
-       procedure Prove_Multiplication (Q : Single_Uns) is
-       begin
-          Lemma_Hi_Lo (Zu, Hi (Zu), Lo (Zu));
-          Lemma_Hi_Lo (T1, Hi (T1), S3);
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          Lemma_Hi_Lo (T3, Hi (T3), S2);
-          Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Lo (Zu)), T1);
-          Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Hi (Zu)), T2);
-          Lemma_Mult_Distribution (Big (Double_Uns (Q)),
-                                   Big_2xxSingle * Big (Double_Uns (Hi (Zu))),
-                                   Big (Double_Uns (Lo (Zu))));
-          Lemma_Substitution
-            (Big (Double_Uns (Q)) * Big (Zu),
-             Big (Double_Uns (Q)),
-             Big (Zu),
-             Big_2xxSingle * Big (Double_Uns (Hi (Zu)))
-               + Big (Double_Uns (Lo (Zu))),
-             Big_0);
-          pragma Assert (Big (Double_Uns (Q)) * Big (Zu) =
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-                          + Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                          + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                                          + Big (Double_Uns (S3)));
-          Lemma_Add_Commutation (Double_Uns (Lo (T2)), Hi (T1));
-          pragma Assert
-            (By (Big (Double_Uns (Q)) * Big (Zu) =
-               Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-                             + Big_2xxSingle * Big (T3)
-                                             + Big (Double_Uns (S3)),
-               By (Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                = Big_2xxSingle * Big (T3),
-                Double_Uns (Lo (T2))
-                + Double_Uns (Hi (T1)) = T3)));
-          pragma Assert (Double_Uns (Hi (T3)) + Hi (T2) = Double_Uns (S1));
-          Lemma_Add_Commutation (Double_Uns (Hi (T3)), Hi (T2));
-          pragma Assert
-            (Big (Double_Uns (Hi (T3))) + Big (Double_Uns (Hi (T2))) =
-               Big (Double_Uns (S1)));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big (Double_Uns (Hi (T3))),
-                                   Big (Double_Uns (Hi (T2))));
-       end Prove_Multiplication;
- 
-       -------------------------------------
-       -- Prove_Mult_Decomposition_Split2 --
-       -------------------------------------
- 
-       procedure Prove_Mult_Decomposition_Split2
-         (D1, D2, D2_Hi, D2_Lo, D3, D4 : Big_Integer)
-       is null;
- 
-       -------------------------------------
-       -- Prove_Mult_Decomposition_Split3 --
-       -------------------------------------
- 
-       procedure Prove_Mult_Decomposition_Split3
-         (D1, D2, D3, D3_Hi, D3_Lo, D4 : Big_Integer)
-       is null;
- 
-       -----------------------------
-       -- Prove_Negative_Dividend --
-       -----------------------------
- 
-       procedure Prove_Negative_Dividend is
-       begin
-          Lemma_Mult_Non_Positive (Big (X), Big (Y));
-       end Prove_Negative_Dividend;
- 
-       --------------------
-       -- Prove_Overflow --
-       --------------------
- 
-       procedure Prove_Overflow is
-       begin
-          Lemma_Div_Ge (Mult, Big_2xxDouble, Big (Double_Uns'(abs Z)));
-          Lemma_Abs_Commutation (Z);
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-       end Prove_Overflow;
- 
-       -----------------------------
-       -- Prove_Positive_Dividend --
-       -----------------------------
- 
-       procedure Prove_Positive_Dividend is
-       begin
-          Lemma_Mult_Non_Negative (Big (X), Big (Y));
-       end Prove_Positive_Dividend;
- 
-       ---------------------------------
-       -- Prove_Qd_Calculation_Part_1 --
-       ---------------------------------
- 
-       procedure Prove_Qd_Calculation_Part_1 (J : Integer) is
-       begin
-          Lemma_Hi_Lo (D (J) & D (J + 1), D (J), D (J + 1));
-          Lemma_Lt_Commutation (Double_Uns (D (J)), Double_Uns (Zhi));
-          Lemma_Gt_Mult (Big (Double_Uns (Zhi)),
-                         Big (Double_Uns (D (J))) + 1,
-                         Big_2xxSingle, Big (D (J) & D (J + 1)));
-          Lemma_Div_Lt
-            (Big (D (J) & D (J + 1)), Big_2xxSingle, Big (Double_Uns (Zhi)));
-          Lemma_Div_Commutation (D (J) & D (J + 1), Double_Uns (Zhi));
-          Lemma_Lo_Is_Ident ((D (J) & D (J + 1)) / Zhi);
-          Lemma_Div_Definition (D (J) & D (J + 1), Zhi, Double_Uns (Qd (J)),
-                                (D (J) & D (J + 1)) rem Zhi);
-          Lemma_Lt_Commutation
-            ((D (J) & D (J + 1)) rem Zhi, Double_Uns (Zhi));
-          Lemma_Gt_Mult
-            ((Big (Double_Uns (Qd (J))) + 1) * Big (Double_Uns (Zhi)),
-             Big (D (J) & D (J + 1)) + 1, Big_2xxSingle,
-             Big3 (D (J), D (J + 1), D (J + 2)));
-          Lemma_Hi_Lo (Zu, Zhi, Lo (Zu));
-          Lemma_Gt_Mult (Big (Zu), Big_2xxSingle * Big (Double_Uns (Zhi)),
-                         Big (Double_Uns (Qd (J))) + 1,
-                         Big3 (D (J), D (J + 1), D (J + 2)));
-          Lemma_Div_Lt (Big3 (D (J), D (J + 1), D (J + 2)),
-                        Big (Double_Uns (Qd (J))) + 1, Big (Zu));
-       end Prove_Qd_Calculation_Part_1;
- 
-       ---------------------
-       -- Prove_Q_Too_Big --
-       ---------------------
- 
-       procedure Prove_Q_Too_Big is
-       begin
-          pragma Assert (Big_Q = Big_2xxDouble or Big_Q = -Big_2xxDouble);
-          Lemma_Not_In_Range_Big2xx64;
-       end Prove_Q_Too_Big;
- 
-       ---------------------
-       -- Prove_Rescaling --
-       ---------------------
- 
-       procedure Prove_Rescaling is
-       begin
-          Lemma_Div_Lt (Big (Ru), Big (Double_Uns'(abs Z)), Big_2xx (Scale));
-          Lemma_Div_Eq (Mult, Big (Double_Uns'(abs Z)) * Big (Qu),
-                        Big_2xx (Scale), Big (Ru));
-          Lemma_Rev_Div_Definition (Mult, Big (Double_Uns'(abs Z)),
-                                    Big (Qu), Big (Ru) / Big_2xx (Scale));
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-          Lemma_Abs_Rem_Commutation (Big (X) * Big (Y), Big (Z));
-          Lemma_Abs_Commutation (Z);
-          Lemma_Shift_Right (Ru, Scale);
-       end Prove_Rescaling;
- 
-       -------------------------
-       -- Prove_Rounding_Case --
-       -------------------------
- 
-       procedure Prove_Rounding_Case is
-       begin
-          if Same_Sign (Big (X) * Big (Y), Big (Z)) then
-             pragma Assert
-               (abs Big_Q =
-                  (if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2)
-                   then abs Quot + 1
-                   else abs Quot));
-          end if;
-       end Prove_Rounding_Case;
- 
-       -----------------------------------------------
-       -- Prove_Scaled_Mult_Decomposition_Regroup24 --
-       -----------------------------------------------
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup24
-         (D1, D2, D3, D4 : Big_Integer)
-       is null;
- 
-       ----------------------------------------------
-       -- Prove_Scaled_Mult_Decomposition_Regroup3 --
-       ----------------------------------------------
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup3
-         (D1, D2, D3, D4 : Single_Uns)
-       is null;
- 
-       ------------------
-       -- Prove_Sign_R --
-       ------------------
- 
-       procedure Prove_Sign_R is
-       begin
-          pragma Assert (In_Double_Int_Range (Big (Z)));
-       end Prove_Sign_R;
- 
-       -----------------
-       -- Prove_Signs --
-       -----------------
- 
-       procedure Prove_Signs is null;
- 
-       -----------------
-       -- Prove_Z_Low --
-       -----------------
- 
-       procedure Prove_Z_Low is
-       begin
-          Lemma_Hi_Lo (T1, D (2), D (3));
-          Lemma_Add_Commutation (Double_Uns (D (2)), 1);
-          pragma Assert
-            (Big (Double_Uns (D (2))) + 1 <= Big (Double_Uns (Zlo)));
-          Lemma_Div_Definition (T1, Zlo, T1 / Zlo, T1 rem Zlo);
-          pragma Assert
-            (By (Lo (T1 rem Zlo) = Hi (T2),
-               By (Double_Uns (Lo (T1 rem Zlo)) = T1 rem Zlo,
-                 T1 rem Zlo <= Double_Uns (Zlo))));
-          Lemma_Hi_Lo (T2, Lo (T1 rem Zlo), D (4));
-          pragma Assert (T1 rem Zlo < Double_Uns (Zlo));
-          pragma Assert (T1 rem Zlo + Double_Uns'(1) <= Double_Uns (Zlo));
-          Lemma_Ge_Commutation (Double_Uns (Zlo), T1 rem Zlo + Double_Uns'(1));
-          Lemma_Add_Commutation (T1 rem Zlo, 1);
-          pragma Assert (Big (T1 rem Zlo) + 1 <= Big (Double_Uns (Zlo)));
-          Lemma_Div_Definition (T2, Zlo, T2 / Zlo, Ru);
-          pragma Assert
-            (By (Big_2xxSingle * Big (Double_Uns (D (2)))
-                 + Big (Double_Uns (D (3)))
-                 < Big_2xxSingle * (Big (Double_Uns (D (2))) + 1),
-               Mult = Big (Double_Uns (Zlo)) *
-               (Big_2xxSingle * Big (T1 / Zlo) + Big (T2 / Zlo)) + Big (Ru)));
-          Lemma_Div_Lt (Big (T1), Big_2xxSingle, Big (Double_Uns (Zlo)));
-          Lemma_Div_Commutation (T1, Double_Uns (Zlo));
-          Lemma_Lo_Is_Ident (T1 / Zlo);
-          pragma Assert
-            (Big (T2) <= Big_2xxSingle * (Big (Double_Uns (Zlo)) - 1)
-                                       + Big (Double_Uns (D (4))));
-          Lemma_Hi_Lo (Qu, Lo (T1 / Zlo), Lo (T2 / Zlo));
-          Lemma_Div_Lt (Big (T2), Big_2xxSingle, Big (Double_Uns (Zlo)));
-          Lemma_Div_Commutation (T2, Double_Uns (Zlo));
-          Lemma_Lo_Is_Ident (T2 / Zlo);
-          Lemma_Substitution (Mult, Big (Double_Uns (Zlo)),
-                              Big_2xxSingle * Big (T1 / Zlo) + Big (T2 / Zlo),
-                              Big (Qu), Big (Ru));
-          pragma Assert
-            (By (Ru < Double_Uns (Zlo), Ru = T2 rem Zlo));
-          Lemma_Lt_Commutation (Ru, Double_Uns (Zlo));
-          Lemma_Rev_Div_Definition
-            (Mult, Big (Double_Uns (Zlo)), Big (Qu), Big (Ru));
-          pragma Assert (Double_Uns (Zlo) = abs Z);
-          Lemma_Abs_Commutation (Z);
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-          Lemma_Abs_Rem_Commutation (Big (X) * Big (Y), Big (Z));
-       end Prove_Z_Low;
- 
     --  Start of processing for Scaled_Divide
  
     begin
--- 394,399 ----
*************** is
*** 2562,2798 ****
           Raise_Error;
        end if;
  
-       Quot := Big (X) * Big (Y) / Big (Z);
-       Big_R := Big (X) * Big (Y) rem Big (Z);
-       if Round then
-          Big_Q := Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R);
-       else
-          Big_Q := Quot;
-       end if;
- 
        --  First do the multiplication, giving the four digit dividend
  
-       Lemma_Abs_Mult_Commutation (Big (X), Big (Y));
-       Lemma_Abs_Commutation (X);
-       Lemma_Abs_Commutation (Y);
-       Lemma_Mult_Decomposition (Mult, Xu, Yu, Xhi, Xlo, Yhi, Ylo);
- 
        T1 := Xlo * Ylo;
        D (4) := Lo (T1);
        D (3) := Hi (T1);
  
-       Lemma_Hi_Lo (T1, D (3), D (4));
- 
        if Yhi /= 0 then
           T1 := Xlo * Yhi;
- 
-          Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
- 
           T2 := D (3) + Lo (T1);
  
-          Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
-          Lemma_Mult_Distribution (Big_2xxSingle,
-                                   Big (Double_Uns (D (3))),
-                                   Big (Double_Uns (Lo (T1))));
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
- 
           D (3) := Lo (T2);
           D (2) := Hi (T1) + Hi (T2);
  
-          pragma Assert (Double_Uns (Hi (T1)) + Hi (T2) = Double_Uns (D (2)));
-          Lemma_Add_Commutation (Double_Uns (Hi (T1)), Hi (T2));
-          pragma Assert
-            (Big (Double_Uns (Hi (T1))) + Big (Double_Uns (Hi (T2))) =
-               Big (Double_Uns (D (2))));
- 
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
- 
-             Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
- 
              T2 := D (3) + Lo (T1);
  
-             Lemma_Add_Commutation (Double_Uns (D (3)), Lo (T1));
-             Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-             Prove_Mult_Decomposition_Split3
-               (D1    => 0,
-                D2    => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (D (2)))
-                  + Big (Double_Uns (Hi (T1))),
-                D3    => Big (T2),
-                D3_Hi => Big (Double_Uns (Hi (T2))),
-                D3_Lo => Big (Double_Uns (Lo (T2))),
-                D4    => Big (Double_Uns (D (4))));
- 
              D (3) := Lo (T2);
              T3 := D (2) + Hi (T1);
  
-             Lemma_Add_Commutation (Double_Uns (D (2)), Hi (T1));
-             Lemma_Add_Commutation (T3, Hi (T2));
- 
              T3 := T3 + Hi (T2);
              T2 := Double_Uns'(Xhi * Yhi);
  
-             Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => Big (Double_Uns (Hi (T2))),
-                   D2 => Big (T3) + Big (Double_Uns (Lo (T2))),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
- 
              T1 := T3 + Lo (T2);
              D (2) := Lo (T1);
- 
-             Lemma_Add_Commutation (T3, Lo (T2));
-             Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-             Prove_Mult_Decomposition_Split2
-               (D1    => Big (Double_Uns (Hi (T2))),
-                D2    => Big (T1),
-                D2_Lo => Big (Double_Uns (Lo (T1))),
-                D2_Hi => Big (Double_Uns (Hi (T1))),
-                D3    => Big (Double_Uns (D (3))),
-                D4    => Big (Double_Uns (D (4))));
- 
              D (1) := Hi (T2) + Hi (T1);
  
-             pragma Assert_And_Cut
-               (D'Initialized
-                and Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
-                                           D2 => Big (Double_Uns (D (2))),
-                                           D3 => Big (Double_Uns (D (3))),
-                                           D4 => Big (Double_Uns (D (4)))));
           else
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (D (2))),
-                   D3 => Big (Double_Uns (D (3)))
-                   + Big (Double_Uns (Xhi)) * Big (Yu),
-                   D4 => Big (Double_Uns (D (4)))));
- 
              D (1) := 0;
- 
-             pragma Assert_And_Cut
-               (D'Initialized
-                and Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
-                                           D2 => Big (Double_Uns (D (2))),
-                                           D3 => Big (Double_Uns (D (3))),
-                                           D4 => Big (Double_Uns (D (4)))));
           end if;
- 
        else
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
- 
-             Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (Hi (T1))),
-                   D3 => Big (Double_Uns (Lo (T1))) + Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
- 
              T2 := D (3) + Lo (T1);
  
-             Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (Hi (T1))),
-                   D3 => Big (T2),
-                   D4 => Big (Double_Uns (D (4)))));
-             Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
- 
              D (3) := Lo (T2);
              D (2) := Hi (T1) + Hi (T2);
  
-             pragma Assert
-               (Double_Uns (Hi (T1)) + Hi (T2) = Double_Uns (D (2)));
-             Lemma_Add_Commutation (Double_Uns (Hi (T1)), Hi (T2));
-             pragma Assert
-               (Big (Double_Uns (Hi (T1))) + Big (Double_Uns (Hi (T2))) =
-                  Big (Double_Uns (D (2))));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (D (2))),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
           else
              D (2) := 0;
- 
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (D (2))),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
           end if;
  
           D (1) := 0;
- 
-          pragma Assert_And_Cut
-            (D'Initialized
-             and Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
-                                        D2 => Big (Double_Uns (D (2))),
-                                        D3 => Big (Double_Uns (D (3))),
-                                        D4 => Big (Double_Uns (D (4)))));
        end if;
  
-       pragma Assert_And_Cut
-         --  Restate the precondition
-         (Z /= 0
-          and then In_Double_Int_Range
-            (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                           Big (X) * Big (Y) / Big (Z),
-                                           Big (X) * Big (Y) rem Big (Z))
-             else Big (X) * Big (Y) / Big (Z))
-          --  Restate the value of local variables
-          and then Zu = abs Z
-          and then Zhi = Hi (Zu)
-          and then Zlo = Lo (Zu)
-          and then Mult = abs (Big (X) * Big (Y))
-          and then Quot = Big (X) * Big (Y) / Big (Z)
-          and then Big_R = Big (X) * Big (Y) rem Big (Z)
-          and then
-            (if Round then
-               Big_Q = Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-             else
-               Big_Q = Quot)
-          --  Summarize first part of the procedure
-          and then D'Initialized
-          and then Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
-                                          D2 => Big (Double_Uns (D (2))),
-                                          D3 => Big (Double_Uns (D (3))),
-                                          D4 => Big (Double_Uns (D (4)))));
- 
        --  Now it is time for the dreaded multiple precision division. First an
        --  easy case, check for the simple case of a one digit divisor.
  
        if Zhi = 0 then
           if D (1) /= 0 or else D (2) >= Zlo then
-             if D (1) > 0 then
-                Lemma_Double_Big_2xxSingle;
-                Lemma_Mult_Positive (Big_2xxDouble, Big_2xxSingle);
-                Lemma_Ge_Mult (Big (Double_Uns (D (1))),
-                               1,
-                               Big_2xxDouble * Big_2xxSingle,
-                               Big_2xxDouble * Big_2xxSingle);
-                Lemma_Mult_Positive (Big_2xxSingle, Big (Double_Uns (D (1))));
-                Lemma_Ge_Mult (Big_2xxSingle * Big_2xxSingle, Big_2xxDouble,
-                               Big_2xxSingle * Big (Double_Uns (D (1))),
-                               Big_2xxDouble * Big_2xxSingle);
-                pragma Assert (Mult >= Big_2xxDouble * Big_2xxSingle);
-                Lemma_Ge_Commutation (2 ** Single_Size, Zu);
-                Lemma_Ge_Mult (Big_2xxSingle, Big (Zu), Big_2xxDouble,
-                               Big_2xxDouble * Big (Zu));
-                pragma Assert (Mult >= Big_2xxDouble * Big (Zu));
-             else
-                Lemma_Ge_Commutation (Double_Uns (D (2)), Zu);
-                pragma Assert (Mult >= Big_2xxDouble * Big (Zu));
-             end if;
- 
-             Prove_Overflow;
              Raise_Error;
  
           --  Here we are dividing at most three digits by one digit
--- 401,456 ----
*************** is
*** 2803,2820 ****
  
              Qu := Lo (T1 / Zlo) & Lo (T2 / Zlo);
              Ru := T2 rem Zlo;
- 
-             Prove_Z_Low;
           end if;
  
        --  If divisor is double digit and dividend is too large, raise error
  
        elsif (D (1) & D (2)) >= Zu then
-          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
-          Lemma_Ge_Commutation (D (1) & D (2), Zu);
-          pragma Assert
-            (Mult >= Big_2xxSingle * Big_2xxSingle * Big (D (1) & D (2)));
-          Prove_Overflow;
           Raise_Error;
  
        --  This is the complex case where we definitely have a double digit
--- 461,471 ----
*************** is
*** 2827,3315 ****
           --  First normalize the divisor so that it has the leading bit on.
           --  We do this by finding the appropriate left shift amount.
  
-          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
-          Lemma_Lt_Commutation (D (1) & D (2), Zu);
-          pragma Assert
-            (Mult < Big_2xxDouble * Big (Zu));
- 
           Shift := Single_Size;
           Mask  := Single_Uns'Last;
           Scale := 0;
  
-          Inter := 0;
-          pragma Assert (Big_2xx (Scale) = 1);
- 
           while Shift > 1 loop
!             pragma Loop_Invariant (Scale <= Single_Size - Shift);
!             pragma Loop_Invariant ((Hi (Zu) and Mask) /= 0);
!             pragma Loop_Invariant
!               (Mask = Shift_Left (Single_Uns'Last, Single_Size - Shift));
!             pragma Loop_Invariant (Zu = Shift_Left (abs Z, Scale));
!             pragma Loop_Invariant (Big (Zu) =
!               Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!             pragma Loop_Invariant (Inter in 0 .. Log_Single_Size - 1);
!             pragma Loop_Invariant (Shift = 2 ** (Log_Single_Size - Inter));
!             pragma Loop_Invariant (Shift mod 2 = 0);
! 
!             declare
!                --  Local ghost variables
! 
!                Shift_Prev : constant Natural := Shift with Ghost;
!                Mask_Prev  : constant Single_Uns := Mask with Ghost;
!                Zu_Prev    : constant Double_Uns := Zu with Ghost;
! 
!                --  Local lemmas
! 
!                procedure Prove_Power
!                with
!                  Ghost,
!                  Pre  => Inter in 0 .. Log_Single_Size - 1
!                    and then Shift = 2 ** (Log_Single_Size - Inter),
!                  Post => Shift / 2 = 2 ** (Log_Single_Size - (Inter + 1))
!                    and then (Shift = 2 or (Shift / 2) mod 2 = 0);
! 
!                procedure Prove_Prev_And_Mask (Prev, Mask : Single_Uns)
!                with
!                  Ghost,
!                  Pre  => Prev /= 0
!                    and then (Prev and Mask) = 0,
!                  Post => (Prev and not Mask) /= 0;
! 
!                procedure Prove_Shift_Progress
!                with
!                  Ghost,
!                  Pre  => Shift <= Single_Size / 2
!                    and then Shift_Prev = 2 * Shift
!                    and then Mask_Prev =
!                      Shift_Left (Single_Uns'Last, Single_Size - Shift_Prev)
!                    and then Mask =
!                      Shift_Left (Single_Uns'Last,
!                                  Single_Size - Shift_Prev + Shift),
!                  Post => Mask_Prev =
!                      Shift_Left (Single_Uns'Last, Single_Size - 2 * Shift)
!                    and then Mask =
!                      Shift_Left (Single_Uns'Last, Single_Size - Shift);
! 
!                procedure Prove_Shifting
!                with
!                  Ghost,
!                  Pre  => Shift <= Single_Size / 2
!                    and then Zu = Shift_Left (Zu_Prev, Shift)
!                    and then Mask_Prev =
!                      Shift_Left (Single_Uns'Last, Single_Size - 2 * Shift)
!                    and then Mask =
!                      Shift_Left (Single_Uns'Last, Single_Size - Shift)
!                    and then (Hi (Zu_Prev) and Mask_Prev and not Mask) /= 0,
!                  Post => (Hi (Zu) and Mask) /= 0;
! 
!                -----------------------------
!                -- Local lemma null bodies --
!                -----------------------------
! 
!                procedure Prove_Prev_And_Mask (Prev, Mask : Single_Uns) is null;
!                procedure Prove_Power is null;
!                procedure Prove_Shifting is null;
!                procedure Prove_Shift_Progress is null;
! 
!             begin
!                pragma Assert (Mask = Shift_Left (Single_Uns'Last,
!                               Single_Size - Shift_Prev));
!                Prove_Power;
! 
!                Shift := Shift / 2;
! 
!                Inter := Inter + 1;
!                pragma Assert (Shift_Prev = 2 * Shift);
! 
!                Mask := Shift_Left (Mask, Shift);
! 
!                Lemma_Double_Shift
!                  (Single_Uns'Last, Single_Size - Shift_Prev, Shift);
!                Prove_Shift_Progress;
! 
!                if (Hi (Zu) and Mask) = 0 then
!                   Zu := Shift_Left (Zu, Shift);
! 
!                   pragma Assert ((Hi (Zu_Prev) and Mask_Prev) /= 0);
!                   pragma Assert
!                     (By ((Hi (Zu_Prev) and Mask_Prev and Mask) = 0,
!                      (Hi (Zu_Prev) and Mask) = 0
!                      and then
!                      (Hi (Zu_Prev) and Mask_Prev and Mask)
!                      = (Hi (Zu_Prev) and Mask and Mask_Prev)
!                     ));
!                   Prove_Prev_And_Mask (Hi (Zu_Prev) and Mask_Prev, Mask);
!                   Prove_Shifting;
!                   pragma Assert (Big (Zu_Prev) =
!                     Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!                   Lemma_Shift_Without_Drop (Zu_Prev, Zu, Mask, Shift);
!                   Lemma_Substitution
!                     (Big (Zu), Big_2xx (Shift),
!                      Big (Zu_Prev), Big (Double_Uns'(abs Z)) * Big_2xx (Scale),
!                      0);
!                   Lemma_Powers_Of_2 (Shift, Scale);
!                   Lemma_Substitution
!                     (Big (Zu), Big (Double_Uns'(abs Z)),
!                      Big_2xx (Shift) * Big_2xx (Scale),
!                      Big_2xx (Shift + Scale), 0);
!                   Lemma_Double_Shift (abs Z, Scale, Shift);
! 
!                   Scale := Scale + Shift;
! 
!                   pragma Assert (Zu = Shift_Left (abs Z, Scale));
!                   pragma Assert
!                     (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!                end if;
  
!                pragma Assert
!                  (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!             end;
           end loop;
-          pragma Assert_And_Cut
-            (Scale <= Single_Size - 1
-             and then (Hi (Zu) and Mask) /= 0
-             and then Mask = Shift_Left (Single_Uns'Last, Single_Size - 1)
-             and then Zu = Shift_Left (abs Z, Scale)
-             and then Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale)
-             and then Mult < Big_2xxDouble * Big (Double_Uns'(abs Z)));
  
           Zhi := Hi (Zu);
           Zlo := Lo (Zu);
  
-          pragma Assert ((Zhi and Mask) /= 0);
-          pragma Assert (Zhi >= 2 ** (Single_Size - 1));
-          pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
-          --  We have Hi (Zu) /= 0 before normalization. The sequence of
-          --  Shift_Left operations results in the leading bit of Zu being 1 by
-          --  moving the leftmost 1-bit in Zu to leading position, thus
-          --  Zhi = Hi (Zu) >= 2 ** (Single_Size - 1) here.
- 
           --  Note that when we scale up the dividend, it still fits in four
           --  digits, since we already tested for overflow, and scaling does
           --  not change the invariant that (D (1) & D (2)) < Zu.
  
-          Lemma_Lt_Commutation (D (1) & D (2), abs Z);
-          Lemma_Big_Of_Double_Uns (Zu);
-          Lemma_Lt_Mult (Big (D (1) & D (2)),
-                         Big (Double_Uns'(abs Z)), Big_2xx (Scale),
-                         Big_2xxDouble);
- 
           T1 := Shift_Left (D (1) & D (2), Scale);
           T2 := Shift_Left (Double_Uns (D (3)), Scale);
           T3 := Shift_Left (Double_Uns (D (4)), Scale);
  
-          Prove_Dividend_Scaling;
- 
           D (1) := Hi (T1);
           D (2) := Lo (T1) or Hi (T2);
           D (3) := Lo (T2) or Hi (T3);
           D (4) := Lo (T3);
  
-          pragma Assert (D (1) = Hi (T1) and D (2) = (Lo (T1) or Hi (T2))
-                         and D (3) = (Lo (T2) or Hi (T3)) and D (4) = Lo (T3));
-          Lemma_Substitution (Big_2xxDouble * Big (Zu), Big_2xxDouble, Big (Zu),
-                              Big (Double_Uns'(abs Z)) * Big_2xx (Scale), 0);
-          pragma Assert (Mult < Big_2xxDouble * Big (Double_Uns'(abs Z)));
-          Lemma_Lt_Mult (Mult, Big_2xxDouble * Big (Double_Uns'(abs Z)),
-                         Big_2xx (Scale), Big_2xxDouble * Big (Zu));
-          pragma Assert (Mult >= Big_0);
-          pragma Assert (Big_2xx (Scale) >= Big_0);
-          Lemma_Mult_Non_Negative (Mult, Big_2xx (Scale));
-          Lemma_Div_Lt (Mult * Big_2xx (Scale), Big (Zu), Big_2xxDouble);
-          Lemma_Concat_Definition (D (1), D (2));
-          Lemma_Double_Big_2xxSingle;
-          Prove_Scaled_Mult_Decomposition_Regroup24
-            (Big (Double_Uns (D (1))),
-             Big (Double_Uns (D (2))),
-             Big (Double_Uns (D (3))),
-             Big (Double_Uns (D (4))));
-          Lemma_Substitution
-            (Mult * Big_2xx (Scale), Big_2xxSingle * Big_2xxSingle,
-               Big_2xxSingle * Big (Double_Uns (D (1)))
-                             + Big (Double_Uns (D (2))),
-               Big (D (1) & D (2)),
-               Big_2xxSingle * Big (Double_Uns (D (3)))
-                             + Big (Double_Uns (D (4))));
-          pragma Assert
-            (By (Big (D (1) & D (2)) < Big (Zu),
-             Big_2xxDouble * (Big (Zu) - Big (D (1) & D (2))) >
-               Big_2xxSingle * Big (Double_Uns (D (3)))
-             + Big (Double_Uns (D (4)))));
- 
           --  Loop to compute quotient digits, runs twice for Qd (1) and Qd (2)
  
!          declare
!             --  Local lemmas
! 
!             procedure Prove_First_Iteration (X1, X2, X3, X4 : Single_Uns)
!             with
!               Ghost,
!               Pre  => X1 = 0,
!               Post =>
!                 Big_2xxSingle * Big3 (X1, X2, X3) + Big (Double_Uns (X4))
!                   = Big3 (X2, X3, X4);
! 
!             ---------------------------
!             -- Prove_First_Iteration --
!             ---------------------------
! 
!             procedure Prove_First_Iteration (X1, X2, X3, X4 : Single_Uns) is
!             null;
! 
!             --  Local ghost variables
! 
!             Qd1  : Single_Uns := 0 with Ghost;
!             D234 : Big_Integer with Ghost, Relaxed_Initialization;
!             D123 : constant Big_Integer := Big3 (D (1), D (2), D (3))
!               with Ghost;
!             D4   : constant Big_Integer := Big (Double_Uns (D (4)))
!               with Ghost;
! 
!          begin
!             Prove_Scaled_Mult_Decomposition_Regroup3
!               (D (1), D (2), D (3), D (4));
!             pragma Assert
!               (By (Mult * Big_2xx (Scale) = Big_2xxSingle * D123 + D4,
!                Is_Scaled_Mult_Decomposition (0, 0, D123, D4)));
! 
!             for J in 1 .. 2 loop
!                Lemma_Hi_Lo (D (J) & D (J + 1), D (J), D (J + 1));
!                pragma Assert (Big (D (J) & D (J + 1)) < Big (Zu));
! 
!                --  Compute next quotient digit. We have to divide three digits
!                --  by two digits. We estimate the quotient by dividing the
!                --  leading two digits by the leading digit. Given the scaling
!                --  we did above which ensured the first bit of the divisor is
!                --  set, this gives an estimate of the quotient that is at most
!                --  two too high.
! 
!                if D (J) > Zhi then
!                   Lemma_Lt_Commutation (Zu, D (J) & D (J + 1));
!                   pragma Assert (False);
! 
!                elsif D (J) = Zhi then
!                   Qd (J) := Single_Uns'Last;
! 
!                   Lemma_Concat_Definition (D (J), D (J + 1));
!                   Lemma_Big_Of_Double_Uns_Of_Single_Uns (D (J + 2));
!                   pragma Assert (Big_2xxSingle > Big (Double_Uns (D (J + 2))));
!                   pragma Assert
!                     (By (Big3 (D (J), D (J + 1), 0) + Big_2xxSingle
!                         > Big3 (D (J), D (J + 1), D (J + 2)),
!                     Big3 (D (J), D (J + 1), 0) =
!                        Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (J)))
!                     + Big_2xxSingle * Big (Double_Uns (D (J + 1)))));
!                   pragma Assert (Big (Double_Uns'(0)) = 0);
!                   pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle =
!                     Big_2xxSingle * (Big_2xxSingle * Big (Double_Uns (D (J)))
!                                               + Big (Double_Uns (D (J + 1)))));
!                   pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle =
!                     Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (J)))
!                                + Big_2xxSingle * Big (Double_Uns (D (J + 1))));
!                   pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle
!                                  = Big3 (D (J), D (J + 1), 0));
!                   pragma Assert ((Big (D (J) & D (J + 1)) + 1) * Big_2xxSingle
!                                  = Big3 (D (J), D (J + 1), 0) + Big_2xxSingle);
!                   Lemma_Gt_Mult (Big (Zu), Big (D (J) & D (J + 1)) + 1,
!                                  Big_2xxSingle,
!                                  Big3 (D (J), D (J + 1), D (J + 2)));
!                   Lemma_Div_Lt
!                     (Big3 (D (J), D (J + 1), D (J + 2)),
!                      Big_2xxSingle, Big (Zu));
!                   pragma Assert
!                     (By (Big (Double_Uns (Qd (J))) >=
!                        Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu),
!                      Big (Double_Uns (Qd (J))) = Big_2xxSingle - 1));
! 
!                else
!                   Qd (J) := Lo ((D (J) & D (J + 1)) / Zhi);
! 
!                   Prove_Qd_Calculation_Part_1 (J);
!                end if;
! 
!                pragma Assert (for all K in 1 .. J => Qd (K)'Initialized);
!                Lemma_Div_Mult (Big3 (D (J), D (J + 1), D (J + 2)), Big (Zu));
!                Lemma_Gt_Mult
!                  (Big (Double_Uns (Qd (J))),
!                   Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu),
!                   Big (Zu), Big3 (D (J), D (J + 1), D (J + 2)) - Big (Zu));
! 
!                --  Compute amount to subtract
! 
!                T1 := Qd (J) * Zlo;
!                T2 := Qd (J) * Zhi;
!                S3 := Lo (T1);
!                T3 := Hi (T1) + Lo (T2);
!                S2 := Lo (T3);
!                S1 := Hi (T3) + Hi (T2);
! 
!                Prove_Multiplication (Qd (J));
! 
!                --  Adjust quotient digit if it was too high
! 
!                --  We use the version of the algorithm in the 2nd Edition
!                --  of "The Art of Computer Programming". This had a bug not
!                --  discovered till 1995, see Vol 2 errata:
!                --     http://www-cs-faculty.stanford.edu/~uno/err2-2e.ps.gz.
!                --  Under rare circumstances the expression in the test could
!                --  overflow. This version was further corrected in 2005, see
!                --  Vol 2 errata:
!                --     http://www-cs-faculty.stanford.edu/~uno/all2-pre.ps.gz.
!                --  This implementation is not impacted by these bugs, due
!                --  to the use of a word-size comparison done in function Le3
!                --  instead of a comparison on two-word integer quantities in
!                --  the original algorithm.
! 
!                Lemma_Hi_Lo_3 (Zu, Zhi, Zlo);
! 
!                while not Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2)) loop
!                   pragma Loop_Invariant
!                     (Qd (1)'Initialized
!                      and (if J = 2 then Qd (2)'Initialized));
!                   pragma Loop_Invariant (if J = 2 then Qd (1) = Qd1);
!                   pragma Loop_Invariant
!                     (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
!                   pragma Loop_Invariant
!                     (Big3 (S1, S2, S3) > Big3 (D (J), D (J + 1), D (J + 2)));
!                   pragma Assert (Big3 (S1, S2, S3) > 0);
!                   if Qd (J) = 0 then
!                      pragma Assert (Big3 (S1, S2, S3) = 0);
!                      pragma Assert (False);
!                   end if;
!                   Lemma_Ge_Commutation (Double_Uns (Qd (J)), 1);
!                   Lemma_Ge_Mult
!                     (Big (Double_Uns (Qd (J))), 1, Big (Zu), Big (Zu));
! 
!                   Sub3 (S1, S2, S3, 0, Zhi, Zlo);
! 
!                   pragma Assert
!                     (Big3 (S1, S2, S3) >
!                        Big3 (D (J), D (J + 1), D (J + 2)) - Big (Zu));
!                   Lemma_Subtract_Commutation (Double_Uns (Qd (J)), 1);
!                   pragma Assert (Double_Uns (Qd (J)) - Double_Uns'(1)
!                                  = Double_Uns (Qd (J) - 1));
!                   pragma Assert (Big (Double_Uns'(1)) = 1);
! 
!                   declare
!                      Prev : constant Single_Uns := Qd (J) with Ghost;
!                   begin
!                      Qd (J) := Qd (J) - 1;
!                      Lemma_Substitution (Big3 (S1, S2, S3), Big (Zu),
!                                          Big (Double_Uns (Prev)) - 1,
!                                          Big (Double_Uns (Qd (J))), 0);
!                   end;
! 
!                   pragma Assert
!                     (Big3 (S1, S2, S3) = Big (Double_Uns (Qd (J))) * Big (Zu));
!                end loop;
! 
!                pragma Assert_And_Cut
!                  (Qd (1)'Initialized
!                   and then (if J = 2 then Qd (2)'Initialized and Qd (1) = Qd1)
!                   and then D'Initialized
!                   and then (if J = 2 then D234'Initialized)
!                   and then Big3 (D (J), D (J + 1), D (J + 2)) =
!                     (if J = 1 then D123 else D234)
!                   and then (if J = 1 then D4 = Big (Double_Uns (D (4))))
!                   and then Big3 (S1, S2, S3) =
!                       Big (Double_Uns (Qd (J))) * Big (Zu)
!                   and then Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2))
!                   and then Big3 (D (J), D (J + 1), D (J + 2)) -
!                     Big3 (S1, S2, S3) < Big (Zu));
  
!                --  Now subtract S1&S2&S3 from D1&D2&D3 ready for next step
  
!                Inline_Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2));
  
!                declare
!                   D4_G : constant Single_Uns := D (4) with Ghost;
!                begin
!                   Sub3 (D (J), D (J + 1), D (J + 2), S1, S2, S3);
!                   pragma Assert (if J = 1 then D (4) = D4_G);
!                   pragma Assert
!                     (By
!                        (D'Initialized,
!                         D (1)'Initialized and D (2)'Initialized
!                         and D (3)'Initialized and D (4)'Initialized));
!                   pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) =
!                      (if J = 1 then D123 else D234)
!                      - Big3 (S1, S2, S3));
!                end;
  
!                pragma Assert
!                  (Big3 (D (J), D (J + 1), D (J + 2)) < Big (Zu));
  
!                if D (J) > 0 then
!                   Lemma_Double_Big_2xxSingle;
!                   pragma Assert (Big3 (D (J), D (J + 1), D (J + 2)) =
!                     Big_2xxSingle
!                       * Big_2xxSingle * Big (Double_Uns (D (J)))
!                       + Big_2xxSingle * Big (Double_Uns (D (J + 1)))
!                                       + Big (Double_Uns (D (J + 2))));
!                   pragma Assert (Big_2xxSingle >= 0);
!                   Lemma_Big_Of_Double_Uns_Of_Single_Uns (D (J + 1));
!                   pragma Assert (Big (Double_Uns (D (J + 1))) >= 0);
!                   Lemma_Mult_Non_Negative
!                     (Big_2xxSingle, Big (Double_Uns (D (J + 1))));
!                   pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) >=
!                        Big_2xxSingle * Big_2xxSingle
!                        * Big (Double_Uns (D (J))));
!                   Lemma_Ge_Commutation (Double_Uns (D (J)), Double_Uns'(1));
!                   Lemma_Ge_Mult (Big (Double_Uns (D (J))),
!                                  Big (Double_Uns'(1)),
!                                  Big_2xxDouble,
!                                  Big (Double_Uns'(1)) * Big_2xxDouble);
!                   pragma Assert
!                     (Big_2xxDouble * Big (Double_Uns'(1)) = Big_2xxDouble);
!                   pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) >= Big_2xxDouble);
!                   pragma Assert (False);
!                end if;
  
!                if J = 1 then
!                   Qd1 := Qd (1);
!                   D234 := Big3 (D (2), D (3), D (4));
!                   pragma Assert (D4 = Big (Double_Uns (D (4))));
!                   Lemma_Substitution
!                     (Mult * Big_2xx (Scale), Big_2xxSingle, D123,
!                      Big3 (D (1), D (2), D (3)) + Big3 (S1, S2, S3),
!                      Big (Double_Uns (D (4))));
!                   Prove_First_Iteration (D (1), D (2), D (3), D (4));
!                   Lemma_Substitution (Mult * Big_2xx (Scale), Big_2xxSingle,
!                                       Big3 (S1, S2, S3),
!                                       Big (Double_Uns (Qd1)) * Big (Zu),
!                                       D234);
!                else
!                   pragma Assert (Qd1 = Qd (1));
!                   pragma Assert
!                     (By (Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                                      + Big (Double_Uns (Qd (2))) * Big (Zu)
!                      + Big_2xxSingle * Big (Double_Uns (D (3)))
!                                      + Big (Double_Uns (D (4))),
!                      By (Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        + Big3 (D (2), D (3), D (4)) + Big3 (S1, S2, S3),
!                      Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        + D234)));
  
!                end if;
              end loop;
  
!             pragma Assert_And_Cut
!               (Qd (1)'Initialized and then Qd (2)'Initialized
!                and then D'Initialized
!                and then Big_2xxSingle * Big (Double_Uns (D (3)))
!                    + Big (Double_Uns (D (4))) < Big (Zu)
!                and then Mult * Big_2xx (Scale) =
!                    Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                                  + Big (Double_Uns (Qd (2))) * Big (Zu)
!                    + Big_2xxSingle * Big (Double_Uns (D (3)))
!                                    + Big (Double_Uns (D (4))));
!          end;
  
           --  The two quotient digits are now set, and the remainder of the
           --  scaled division is in D3&D4. To get the remainder for the
--- 478,564 ----
           --  First normalize the divisor so that it has the leading bit on.
           --  We do this by finding the appropriate left shift amount.
  
           Shift := Single_Size;
           Mask  := Single_Uns'Last;
           Scale := 0;
  
           while Shift > 1 loop
!             Shift := Shift / 2;
!             Mask  := Shift_Left (Mask, Shift);
  
!             if (Hi (Zu) and Mask) = 0 then
!                Zu    := Shift_Left (Zu, Shift);
!                Scale := Scale + Shift;
!             end if;
           end loop;
  
           Zhi := Hi (Zu);
           Zlo := Lo (Zu);
  
           --  Note that when we scale up the dividend, it still fits in four
           --  digits, since we already tested for overflow, and scaling does
           --  not change the invariant that (D (1) & D (2)) < Zu.
  
           T1 := Shift_Left (D (1) & D (2), Scale);
           T2 := Shift_Left (Double_Uns (D (3)), Scale);
           T3 := Shift_Left (Double_Uns (D (4)), Scale);
  
           D (1) := Hi (T1);
           D (2) := Lo (T1) or Hi (T2);
           D (3) := Lo (T2) or Hi (T3);
           D (4) := Lo (T3);
  
           --  Loop to compute quotient digits, runs twice for Qd (1) and Qd (2)
  
!          for J in 1 .. 2 loop
!             --  Compute next quotient digit. We have to divide three digits
!             --  by two digits. We estimate the quotient by dividing the
!             --  leading two digits by the leading digit. Given the scaling
!             --  we did above which ensured the first bit of the divisor is
!             --  set, this gives an estimate of the quotient that is at most
!             --  two too high.
  
!             pragma Assert (D (J) <= Zhi);
  
!             if D (J) = Zhi then
!                Qd (J) := Single_Uns'Last;
!             else
!                Qd (J) := Lo ((D (J) & D (J + 1)) / Zhi);
!             end if;
  
!             --  Compute amount to subtract
  
!             T1 := Qd (J) * Zlo;
!             T2 := Qd (J) * Zhi;
!             S3 := Lo (T1);
!             T3 := Hi (T1) + Lo (T2);
!             S2 := Lo (T3);
!             S1 := Hi (T3) + Hi (T2);
  
!             --  Adjust quotient digit if it was too high
  
!             --  We use the version of the algorithm in the 2nd Edition
!             --  of "The Art of Computer Programming". This had a bug not
!             --  discovered till 1995, see Vol 2 errata:
!             --     http://www-cs-faculty.stanford.edu/~uno/err2-2e.ps.gz.
!             --  Under rare circumstances the expression in the test could
!             --  overflow. This version was further corrected in 2005, see
!             --  Vol 2 errata:
!             --     http://www-cs-faculty.stanford.edu/~uno/all2-pre.ps.gz.
!             --  This implementation is not impacted by these bugs, due
!             --  to the use of a word-size comparison done in function Le3
!             --  instead of a comparison on two-word integer quantities in
!             --  the original algorithm.
  
!             while not Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2)) loop
!                Sub3 (S1, S2, S3, 0, Zhi, Zlo);
!                Qd (J) := Qd (J) - 1;
              end loop;
  
!             --  Now subtract S1&S2&S3 from D1&D2&D3 ready for next step
! 
!             Sub3 (D (J), D (J + 1), D (J + 2), S1, S2, S3);
!          end loop;
  
           --  The two quotient digits are now set, and the remainder of the
           --  scaled division is in D3&D4. To get the remainder for the
*************** is
*** 3321,3591 ****
           Qu := Qd (1) & Qd (2);
           Ru := D (3) & D (4);
  
-          Lemma_Hi_Lo (Qu, Qd (1), Qd (2));
-          Lemma_Hi_Lo (Ru, D (3), D (4));
-          Lemma_Substitution
-            (Mult * Big_2xx (Scale), Big (Zu),
-             Big_2xxSingle * Big (Double_Uns (Qd (1)))
-               + Big (Double_Uns (Qd (2))),
-             Big (Qu), Big (Ru));
-          Prove_Rescaling;
- 
           Ru := Shift_Right (Ru, Scale);
  
!          declare
!             --  Local lemma required to help automatic provers
!             procedure Lemma_Div_Congruent
!               (X, Y : Big_Natural;
!                Z    : Big_Positive)
!             with
!               Ghost,
!               Pre  => X = Y,
!               Post => X / Z = Y / Z;
! 
!             procedure Lemma_Div_Congruent
!               (X, Y : Big_Natural;
!                Z    : Big_Positive)
!             is null;
! 
!          begin
!             Lemma_Shift_Right (Zu, Scale);
!             Lemma_Div_Congruent (Big (Zu),
!                                  Big (Double_Uns'(abs Z)) * Big_2xx (Scale),
!                                  Big_2xx (Scale));
! 
!             Zu := Shift_Right (Zu, Scale);
! 
!             Lemma_Simplify (Big (Double_Uns'(abs Z)), Big_2xx (Scale));
!             pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)));
!          end;
        end if;
  
-       pragma Assert (Big (Ru) = abs Big_R);
-       pragma Assert (Big (Qu) = abs Quot);
-       pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)));
- 
        --  Deal with rounding case
  
        if Round then
-          Prove_Rounding_Case;
- 
           if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2) then
-             pragma Assert (abs Big_Q = Big (Qu) + 1);
- 
              --  Protect against wrapping around when rounding, by signaling
              --  an overflow when the quotient is too large.
  
              if Qu = Double_Uns'Last then
-                Prove_Q_Too_Big;
                 Raise_Error;
              end if;
  
-             Lemma_Add_One (Qu);
- 
              Qu := Qu + Double_Uns'(1);
           end if;
        end if;
  
-       pragma Assert (Big (Qu) = abs Big_Q);
- 
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X * Y) sign positive
  
        if (X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0) then
-          Prove_Positive_Dividend;
- 
           R := To_Pos_Int (Ru);
           Q := (if Z > 0 then To_Pos_Int (Qu) else To_Neg_Int (Qu));
  
        --  Case of dividend (X * Y) sign negative
  
        else
-          Prove_Negative_Dividend;
- 
           R := To_Neg_Int (Ru);
           Q := (if Z > 0 then To_Neg_Int (Qu) else To_Pos_Int (Qu));
        end if;
- 
-       Prove_Sign_R;
-       Prove_Signs;
     end Scaled_Divide;
-    pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
  
     ----------
     -- Sub3 --
     ----------
  
     procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns) is
- 
-       --  Local ghost variables
- 
-       XX1 : constant Single_Uns := X1 with Ghost;
-       XX2 : constant Single_Uns := X2 with Ghost;
-       XX3 : constant Single_Uns := X3 with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Lemma_Add3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X1 <= Single_Uns'Last - Y1
-           and then X2 <= Single_Uns'Last - Y2
-           and then X3 <= Single_Uns'Last - Y3,
-         Post => Big3 (X1 + Y1, X2 + Y2, X3 + Y3)
-               = Big3 (X1, X2, X3) + Big3 (Y1, Y2, Y3);
- 
-       procedure Lemma_Ge_Expand (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => Big3 (X1, X2, X3) >= Big3 (Y1, Y2, Y3),
-         Post => X1 > Y1
-           or else (X1 = Y1 and then X2 > Y2)
-           or else (X1 = Y1 and then X2 = Y2 and then X3 >= Y3);
- 
-       procedure Lemma_Sub3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X1 >= Y1 and then X2 >= Y2 and then X3 >= Y3,
-         Post => Big3 (X1 - Y1, X2 - Y2, X3 - Y3)
-               = Big3 (X1, X2, X3) - Big3 (Y1, Y2, Y3);
- 
-       procedure Lemma_Sub3_With_Carry2 (X1, X2, X3, Y2 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X2 < Y2,
-         Post => Big3 (X1, X2 - Y2, X3)
-           = Big3 (X1, X2, X3) + Big3 (Single_Uns'(1), 0, 0) - Big3 (0, Y2, 0);
- 
-       procedure Lemma_Sub3_With_Carry3 (X1, X2, X3, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X3 < Y3,
-         Post => Big3 (X1, X2, X3 - Y3)
-           = Big3 (X1, X2, X3) + Big3 (Single_Uns'(0), 1, 0) - Big3 (0, 0, Y3);
- 
-       -------------------------
-       -- Lemma_Add3_No_Carry --
-       -------------------------
- 
-       procedure Lemma_Add3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is
-       begin
-          Lemma_Add_Commutation (Double_Uns (X1), Y1);
-          Lemma_Add_Commutation (Double_Uns (X2), Y2);
-          Lemma_Add_Commutation (Double_Uns (X3), Y3);
-       end Lemma_Add3_No_Carry;
- 
-       ---------------------
-       -- Lemma_Ge_Expand --
-       ---------------------
- 
-       procedure Lemma_Ge_Expand (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is null;
- 
-       -------------------------
-       -- Lemma_Sub3_No_Carry --
-       -------------------------
- 
-       procedure Lemma_Sub3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is
-       begin
-          Lemma_Subtract_Commutation (Double_Uns (X1), Double_Uns (Y1));
-          Lemma_Subtract_Commutation (Double_Uns (X2), Double_Uns (Y2));
-          Lemma_Subtract_Commutation (Double_Uns (X3), Double_Uns (Y3));
-       end Lemma_Sub3_No_Carry;
- 
-       ----------------------------
-       -- Lemma_Sub3_With_Carry2 --
-       ----------------------------
- 
-       procedure Lemma_Sub3_With_Carry2 (X1, X2, X3, Y2 : Single_Uns) is
-          pragma Unreferenced (X1, X3);
-       begin
-          Lemma_Add_Commutation
-            (Double_Uns'(2 ** Single_Size) - Double_Uns (Y2), X2);
-          Lemma_Subtract_Commutation
-            (Double_Uns'(2 ** Single_Size), Double_Uns (Y2));
-       end Lemma_Sub3_With_Carry2;
- 
-       ----------------------------
-       -- Lemma_Sub3_With_Carry3 --
-       ----------------------------
- 
-       procedure Lemma_Sub3_With_Carry3 (X1, X2, X3, Y3 : Single_Uns) is
-          pragma Unreferenced (X1, X2);
-       begin
-          Lemma_Add_Commutation
-            (Double_Uns'(2 ** Single_Size) - Double_Uns (Y3), X3);
-          Lemma_Subtract_Commutation
-            (Double_Uns'(2 ** Single_Size), Double_Uns (Y3));
-       end Lemma_Sub3_With_Carry3;
- 
-    --  Start of processing for Sub3
- 
     begin
-       Lemma_Ge_Expand (X1, X2, X3, Y1, Y2, Y3);
- 
        if Y3 > X3 then
           if X2 = 0 then
              pragma Assert (X1 >= 1);
-             Lemma_Sub3_No_Carry (X1, X2, X3, 1, 0, 0);
  
              X1 := X1 - 1;
- 
-             pragma Assert
-               (Big3 (X1, X2, X3) =
-                  Big3 (XX1, XX2, XX3) - Big3 (Single_Uns'(1), 0, 0));
-             pragma Assert
-               (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3)
-                - Big3 (Single_Uns'(0), Single_Uns'Last, 0)
-                - Big3 (Single_Uns'(0), 1, 0));
-             Lemma_Add3_No_Carry (X1, X2, X3, 0, Single_Uns'Last, 0);
-          else
-             Lemma_Sub3_No_Carry (X1, X2, X3, 0, 1, 0);
           end if;
  
           X2 := X2 - 1;
- 
-          pragma Assert
-            (Big3 (X1, X2, X3) =
-               Big3 (XX1, XX2, XX3) - Big3 (Single_Uns'(0), 1, 0));
-          Lemma_Sub3_With_Carry3 (X1, X2, X3, Y3);
-       else
-          Lemma_Sub3_No_Carry (X1, X2, X3, 0, 0, Y3);
        end if;
  
        X3 := X3 - Y3;
  
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3) - Big3 (0, 0, Y3));
- 
        if Y2 > X2 then
           pragma Assert (X1 >= 1);
-          Lemma_Sub3_No_Carry (X1, X2, X3, 1, 0, 0);
  
           X1 := X1 - 1;
- 
-          pragma Assert
-            (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3)
-             - Big3 (0, 0, Y3) - Big3 (Single_Uns'(1), 0, 0));
-          Lemma_Sub3_With_Carry2 (X1, X2, X3, Y2);
-       else
-          Lemma_Sub3_No_Carry (X1, X2, X3, 0, Y2, 0);
        end if;
  
        X2 := X2 - Y2;
- 
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3) - Big3 (0, Y2, Y3));
-       pragma Assert (X1 >= Y1);
-       Lemma_Sub3_No_Carry (X1, Y2, X3, Y1, 0, 0);
- 
        X1 := X1 - Y1;
- 
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3)
-          - Big3 (0, Y2, Y3) - Big3 (Y1, 0, 0));
-       Lemma_Add3_No_Carry (0, Y2, Y3, Y1, 0, 0);
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3) - Big3 (Y1, Y2, Y3));
     end Sub3;
  
     -------------------------------
--- 570,637 ----
           Qu := Qd (1) & Qd (2);
           Ru := D (3) & D (4);
  
           Ru := Shift_Right (Ru, Scale);
  
!          Zu := Shift_Right (Zu, Scale);
        end if;
  
        --  Deal with rounding case
  
        if Round then
           if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2) then
              --  Protect against wrapping around when rounding, by signaling
              --  an overflow when the quotient is too large.
  
              if Qu = Double_Uns'Last then
                 Raise_Error;
              end if;
  
              Qu := Qu + Double_Uns'(1);
           end if;
        end if;
  
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X * Y) sign positive
  
        if (X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0) then
           R := To_Pos_Int (Ru);
           Q := (if Z > 0 then To_Pos_Int (Qu) else To_Neg_Int (Qu));
  
        --  Case of dividend (X * Y) sign negative
  
        else
           R := To_Neg_Int (Ru);
           Q := (if Z > 0 then To_Neg_Int (Qu) else To_Pos_Int (Qu));
        end if;
     end Scaled_Divide;
  
     ----------
     -- Sub3 --
     ----------
  
     procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns) is
     begin
        if Y3 > X3 then
           if X2 = 0 then
              pragma Assert (X1 >= 1);
  
              X1 := X1 - 1;
           end if;
  
           X2 := X2 - 1;
        end if;
  
        X3 := X3 - Y3;
  
        if Y2 > X2 then
           pragma Assert (X1 >= 1);
  
           X1 := X1 - 1;
        end if;
  
        X2 := X2 - Y2;
        X1 := X1 - Y1;
     end Sub3;
  
     -------------------------------
*************** is
*** 3594,3721 ****
  
     function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) - To_Uns (Y));
- 
-       --  Local lemmas
- 
-       procedure Prove_Negative_X
-       with
-         Ghost,
-         Pre  => X < 0 and then (Y <= 0 or else R < 0),
-         Post => R = X - Y;
- 
-       procedure Prove_Non_Negative_X
-       with
-         Ghost,
-         Pre  => X >= 0 and then (Y > 0 or else R >= 0),
-         Post => R = X - Y;
- 
-       procedure Prove_Overflow_Case
-       with
-         Ghost,
-         Pre  =>
-           (if X >= 0 then Y <= 0 and then R < 0
-                      else Y > 0 and then R >= 0),
-         Post => not In_Double_Int_Range (Big (X) - Big (Y));
- 
-       ----------------------
-       -- Prove_Negative_X --
-       ----------------------
- 
-       procedure Prove_Negative_X is
-       begin
-          if X = Double_Int'First then
-             if Y = Double_Int'First or else Y > 0 then
-                null;
-             else
-                pragma Assert
-                  (To_Uns (X) - To_Uns (Y) =
-                     2 ** (Double_Size - 1) + Double_Uns (-Y));
-             end if;
- 
-          elsif Y >= 0 or else Y = Double_Int'First then
-             null;
- 
-          else
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = -Double_Uns (-X) + Double_Uns (-Y));
-          end if;
-       end Prove_Negative_X;
- 
-       --------------------------
-       -- Prove_Non_Negative_X --
-       --------------------------
- 
-       procedure Prove_Non_Negative_X is
-       begin
-          if Y > 0 then
-             declare
-                Ru : constant Double_Uns := To_Uns (X) - To_Uns (Y);
-             begin
-                pragma Assert (Ru = Double_Uns (X) - Double_Uns (Y));
-                if Ru < 2 ** (Double_Size - 1) then  --  R >= 0
-                   pragma Assert (To_Uns (Y) <= To_Uns (X));
-                   Lemma_Subtract_Double_Uns (X => Y, Y => X);
-                   pragma Assert (Ru = Double_Uns (X - Y));
- 
-                elsif Ru = 2 ** (Double_Size - 1) then
-                   pragma Assert (Double_Uns (Y) < 2 ** (Double_Size - 1));
-                   pragma Assert (False);
- 
-                else
-                   pragma Assert
-                     (R = -Double_Int (-(Double_Uns (X) - Double_Uns (Y))));
-                   pragma Assert
-                     (R = -Double_Int (-Double_Uns (X) + Double_Uns (Y)));
-                   pragma Assert
-                     (R = -Double_Int (Double_Uns (Y) - Double_Uns (X)));
-                end if;
-             end;
- 
-          elsif Y = Double_Int'First then
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) =
-                  Double_Uns (X) - 2 ** (Double_Size - 1));
-             pragma Assert (False);
- 
-          else
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = Double_Uns (X) + Double_Uns (-Y));
-          end if;
-       end Prove_Non_Negative_X;
- 
-       -------------------------
-       -- Prove_Overflow_Case --
-       -------------------------
- 
-       procedure Prove_Overflow_Case is
-       begin
-          if X >= 0 and then Y /= Double_Int'First then
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = Double_Uns (X) + Double_Uns (-Y));
- 
-          elsif X < 0 and then X /= Double_Int'First then
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = -Double_Uns (-X) - Double_Uns (Y));
-          end if;
-       end Prove_Overflow_Case;
- 
-    --  Start of processing for Subtract_With_Ovflo_Check
- 
     begin
        if X >= 0 then
           if Y > 0 or else R >= 0 then
-             Prove_Non_Negative_X;
              return R;
           end if;
  
        else -- X < 0
           if Y <= 0 or else R < 0 then
-             Prove_Negative_X;
              return R;
           end if;
        end if;
  
-       Prove_Overflow_Case;
        Raise_Error;
     end Subtract_With_Ovflo_Check;
  
--- 640,657 ----
*************** is
*** 3752,3756 ****
  
     pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Arith_Double;
- 
- pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_LSLOC");
--- 688,690 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-aridou.ads gcc-16-20250608/gcc/ada/libgnat/s-aridou.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-aridou.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-aridou.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,40 ****
  --  double word signed integer values in cases where either overflow checking
  --  is required, or intermediate results are longer than the result type.
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  generic
  
     type Double_Int is range <>;
--- 33,38 ----
*************** generic
*** 55,105 ****
  package System.Arith_Double
    with Pure, SPARK_Mode
  is
!    --  Preconditions in this unit are meant for analysis only, not for run-time
!    --  checking, so that the expected exceptions are raised. This is enforced
!    --  by setting the corresponding assertion policy to Ignore. Postconditions
!    --  and contract cases should not be executed at runtime as well, in order
!    --  not to slow down the execution of these functions.
! 
!    pragma Assertion_Policy (Pre            => Ignore,
!                             Post           => Ignore,
!                             Contract_Cases => Ignore,
!                             Ghost          => Ignore);
! 
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    subtype Big_Natural is BI_Ghost.Big_Natural with Ghost;
!    subtype Big_Positive is BI_Ghost.Big_Positive with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Signed_Conversion is
!      new BI_Ghost.Signed_Conversions (Int => Double_Int);
! 
!    function Big (Arg : Double_Int) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
! 
!    package Unsigned_Conversion is
!      new BI_Ghost.Unsigned_Conversions (Int => Double_Uns);
! 
!    function Big (Arg : Double_Uns) return Big_Integer is
!      (Unsigned_Conversion.To_Big_Integer (Arg))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
! 
!    function In_Double_Int_Range (Arg : Big_Integer) return Boolean is
!      (BI_Ghost.In_Range (Arg, Big (Double_Int'First), Big (Double_Int'Last)))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
! 
!    function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (Big (X) + Big (Y)),
!      Post => Add_With_Ovflo_Check'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows Double_Int,
     --  otherwise returns this sum of operands as Double_Int.
     --
--- 53,59 ----
  package System.Arith_Double
    with Pure, SPARK_Mode
  is
!    function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int;
     --  Raises Constraint_Error if sum of operands overflows Double_Int,
     --  otherwise returns this sum of operands as Double_Int.
     --
*************** is
*** 114,123 ****
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (Big (X) - Big (Y)),
!      Post => Subtract_With_Ovflo_Check'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows Double_Int,
     --  otherwise returns this difference of operands as Double_Int.
     --
--- 68,74 ----
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int;
     --  Raises Constraint_Error if difference of operands overflows Double_Int,
     --  otherwise returns this difference of operands as Double_Int.
     --
*************** is
*** 127,136 ****
     --  overflow.
  
     function Multiply_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (Big (X) * Big (Y)),
!      Post => Multiply_With_Ovflo_Check'Result = X * Y;
!    pragma Convention (C, Multiply_With_Ovflo_Check);
     --  Raises Constraint_Error if product of operands overflows Double_Int,
     --  otherwise returns this product of operands as Double_Int. The code
     --  generator may also generate direct calls to this routine.
--- 78,84 ----
     --  overflow.
  
     function Multiply_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with Convention => C;
     --  Raises Constraint_Error if product of operands overflows Double_Int,
     --  otherwise returns this product of operands as Double_Int. The code
     --  generator may also generate direct calls to this routine.
*************** is
*** 140,179 ****
     --  signed value is returned. Overflow check is performed by looking at
     --  higher digits.
  
-    function Same_Sign (X, Y : Big_Integer) return Boolean is
-      (X = Big (Double_Int'(0))
-         or else Y = Big (Double_Int'(0))
-         or else (X < Big (Double_Int'(0))) = (Y < Big (Double_Int'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
-      (if abs R > (abs Y - Big (Double_Int'(1))) / Big (Double_Int'(2)) then
-        (if Same_Sign (X, Y) then Q + Big (Double_Int'(1))
-         else Q - Big (Double_Int'(1)))
-       else
-         Q)
-    with
-      Ghost,
-      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
- 
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Double_Int_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       Big (X) * Big (Y) / Big (Z), Big (R))
!           else
!             Big (Q) = Big (X) * Big (Y) / Big (Z));
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
--- 88,97 ----
     --  signed value is returned. Overflow check is performed by looking at
     --  higher digits.
  
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean);
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
*************** is
*** 204,225 ****
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean)
!    with
!      Pre  => Y /= 0
!        and then Z /= 0
!        and then In_Double_Int_Range
!          (if Round then Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                         Big (X) / (Big (Y) * Big (Z)),
!                                         Big (X) rem (Big (Y) * Big (Z)))
!           else Big (X) / (Big (Y) * Big (Z))),
!      Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                       Big (X) / (Big (Y) * Big (Z)), Big (R))
!           else
!             Big (Q) = Big (X) / (Big (Y) * Big (Z)));
     --  Performs the division ``X`` / (``Y`` * ``Z``), storing the quotient in
     --  ``Q`` and the remainder in ``R``. Constraint_Error is raised if ``Y`` or
     --  ``Z`` is zero, or if the quotient does not fit in ``Double_Int``.
--- 122,128 ----
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean);
     --  Performs the division ``X`` / (``Y`` * ``Z``), storing the quotient in
     --  ``Q`` and the remainder in ``R``. Constraint_Error is raised if ``Y`` or
     --  ``Z`` is zero, or if the quotient does not fit in ``Double_Int``.
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-arit128.adb gcc-16-20250608/gcc/ada/libgnat/s-arit128.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-arit128.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-arit128.adb	Sun Jun  8 22:32:16 2025
*************** with System.Arith_Double;
*** 34,40 ****
  package body System.Arith_128
    with SPARK_Mode
  is
- 
     subtype Uns128 is Interfaces.Unsigned_128;
     subtype Uns64  is Interfaces.Unsigned_64;
  
--- 34,39 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-arit128.ads gcc-16-20250608/gcc/ada/libgnat/s-arit128.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-arit128.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-arit128.ads	Sun Jun  8 22:32:16 2025
***************
*** 36,137 ****
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced
- --  by setting the corresponding assertion policy to Ignore. Postconditions
- --  and contract cases should not be executed at runtime as well, in order
- --  not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  with Interfaces;
  
  package System.Arith_128
    with Pure, SPARK_Mode
  is
-    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
-    use type Interfaces.Integer_128;
- 
     subtype Int128 is Interfaces.Integer_128;
  
!    subtype Big_Integer is
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
!    with Ghost;
! 
!    package Signed_Conversion is new
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Signed_Conversions
!      (Int => Int128);
! 
!    function Big (Arg : Int128) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int128_Range (Arg : Big_Integer) return Boolean is
!      (Ada.Numerics.Big_Numbers.Big_Integers_Ghost.In_Range
!        (Arg, Big (Int128'First), Big (Int128'Last)))
!    with Ghost;
! 
!    function Add_With_Ovflo_Check128 (X, Y : Int128) return Int128
!    with
!      Pre  => In_Int128_Range (Big (X) + Big (Y)),
!      Post => Add_With_Ovflo_Check128'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows 128 bits,
     --  otherwise returns the 128-bit signed integer sum.
  
!    function Subtract_With_Ovflo_Check128 (X, Y : Int128) return Int128
!    with
!      Pre  => In_Int128_Range (Big (X) - Big (Y)),
!      Post => Subtract_With_Ovflo_Check128'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer difference.
  
!    function Multiply_With_Ovflo_Check128 (X, Y : Int128) return Int128
!    with
!      Pre  => In_Int128_Range (Big (X) * Big (Y)),
!      Post => Multiply_With_Ovflo_Check128'Result = X * Y;
     pragma Export (C, Multiply_With_Ovflo_Check128, "__gnat_mulv128");
     --  Raises Constraint_Error if product of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer product.
     --  The code generator may also generate direct calls to this routine.
  
-    function Same_Sign (X, Y : Big_Integer) return Boolean is
-      (X = Big (Int128'(0))
-         or else Y = Big (Int128'(0))
-         or else (X < Big (Int128'(0))) = (Y < Big (Int128'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
-      (if abs R > (abs Y - Big (Int128'(1))) / Big (Int128'(2)) then
-        (if Same_Sign (X, Y) then Q + Big (Int128'(1))
-         else Q - Big (Int128'(1)))
-       else
-         Q)
-    with
-      Ghost,
-      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
- 
     procedure Scaled_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Int128_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       Big (X) * Big (Y) / Big (Z), Big (R))
!           else
!             Big (Q) = Big (X) * Big (Y) / Big (Z));
     --  Performs the division of (X * Y) / Z, storing the quotient in Q
     --  and the remainder in R. Constraint_Error is raised if Z is zero,
     --  or if the quotient does not fit in 128 bits. Round indicates if
--- 36,66 ----
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
  with Interfaces;
  
  package System.Arith_128
    with Pure, SPARK_Mode
  is
     subtype Int128 is Interfaces.Integer_128;
  
!    function Add_With_Ovflo_Check128 (X, Y : Int128) return Int128;
     --  Raises Constraint_Error if sum of operands overflows 128 bits,
     --  otherwise returns the 128-bit signed integer sum.
  
!    function Subtract_With_Ovflo_Check128 (X, Y : Int128) return Int128;
     --  Raises Constraint_Error if difference of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer difference.
  
!    function Multiply_With_Ovflo_Check128 (X, Y : Int128) return Int128;
     pragma Export (C, Multiply_With_Ovflo_Check128, "__gnat_mulv128");
     --  Raises Constraint_Error if product of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer product.
     --  The code generator may also generate direct calls to this routine.
  
     procedure Scaled_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean);
     --  Performs the division of (X * Y) / Z, storing the quotient in Q
     --  and the remainder in R. Constraint_Error is raised if Z is zero,
     --  or if the quotient does not fit in 128 bits. Round indicates if
*************** is
*** 143,164 ****
     procedure Double_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean)
!    with
!      Pre  => Y /= 0
!        and then Z /= 0
!        and then In_Int128_Range
!          (if Round then Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                         Big (X) / (Big (Y) * Big (Z)),
!                                         Big (X) rem (Big (Y) * Big (Z)))
!           else Big (X) / (Big (Y) * Big (Z))),
!      Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                       Big (X) / (Big (Y) * Big (Z)), Big (R))
!           else
!             Big (Q) = Big (X) / (Big (Y) * Big (Z)));
     --  Performs the division X / (Y * Z), storing the quotient in Q and
     --  the remainder in R. Constraint_Error is raised if Y or Z is zero,
     --  or if the quotient does not fit in 128 bits. Round indicates if the
--- 72,78 ----
     procedure Double_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean);
     --  Performs the division X / (Y * Z), storing the quotient in Q and
     --  the remainder in R. Constraint_Error is raised if Y or Z is zero,
     --  or if the quotient does not fit in 128 bits. Round indicates if the
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-arit32.adb gcc-16-20250608/gcc/ada/libgnat/s-arit32.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-arit32.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-arit32.adb	Sun Jun  8 22:32:16 2025
***************
*** 34,53 ****
  --  would be too costly otherwise. This is enforced by setting the assertion
  --  policy to Ignore.
  
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  with Ada.Unchecked_Conversion;
  
  package body System.Arith_32
    with SPARK_Mode
  is
- 
     pragma Suppress (Overflow_Check);
     pragma Suppress (Range_Check);
  
--- 34,44 ----
*************** is
*** 58,90 ****
  
     function To_Int is new Ada.Unchecked_Conversion (Uns32, Int32);
  
-    package Unsigned_Conversion is new Unsigned_Conversions (Int => Uns32);
- 
-    function Big (Arg : Uns32) return Big_Integer is
-      (Unsigned_Conversion.To_Big_Integer (Arg))
-    with Ghost;
- 
-    package Unsigned_Conversion_64 is new Unsigned_Conversions (Int => Uns64);
- 
-    function Big (Arg : Uns64) return Big_Integer is
-      (Unsigned_Conversion_64.To_Big_Integer (Arg))
-    with Ghost;
- 
-    pragma Warnings
-      (Off, "non-preelaborable call not allowed in preelaborated unit",
-       Reason => "Ghost code is not compiled");
-    Big_0 : constant Big_Integer :=
-      Big (Uns32'(0))
-    with Ghost;
-    Big_2xx32 : constant Big_Integer :=
-      Big (Uns32'(2 ** 32 - 1)) + 1
-    with Ghost;
-    Big_2xx64 : constant Big_Integer :=
-      Big (Uns64'(2 ** 64 - 1)) + 1
-    with Ghost;
-    pragma Warnings
-      (On, "non-preelaborable call not allowed in preelaborated unit");
- 
     -----------------------
     -- Local Subprograms --
     -----------------------
--- 49,54 ----
*************** is
*** 96,261 ****
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Int32'First.
  
-    function Lo (A : Uns64) return Uns32 is (Uns32 (A and (2 ** 32 - 1)));
-    --  Low order half of 64-bit value
- 
     function Hi (A : Uns64) return Uns32 is (Uns32 (Shift_Right (A, 32)));
     --  High order half of 64-bit value
  
!    function To_Neg_Int (A : Uns32) return Int32
!    with
!      Pre  => In_Int32_Range (-Big (A)),
!      Post => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2**31, then the corresponding nonpositive signed integer (obtained
     --  by negating the given value) is returned, otherwise constraint error is
     --  raised.
  
!    function To_Pos_Int (A : Uns32) return Int32
!    with
!      Pre  => In_Int32_Range (Big (A)),
!      Post => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with
!      Always_Terminates,
!      Exceptional_Cases => (Constraint_Error => True);
!    pragma No_Return (Raise_Error);
     --  Raise constraint error with appropriate message
  
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Abs_Commutation (X : Int32)
-    with
-      Ghost,
-      Post => abs Big (X) = Big (Uns32'(abs X));
- 
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X / Y) = abs X / abs Y;
- 
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Post => abs (X * Y) = abs X * abs Y;
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X rem Y) = (abs X) rem (abs Y);
- 
-    procedure Lemma_Div_Commutation (X, Y : Uns64)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Z > 0 and then X >= Y * Z,
-      Post => X / Z >= Y;
- 
-    procedure Lemma_Ge_Commutation (A, B : Uns32)
-    with
-      Ghost,
-      Pre  => A >= B,
-      Post => Big (A) >= Big (B);
- 
-    procedure Lemma_Hi_Lo (Xu : Uns64; Xhi, Xlo : Uns32)
-    with
-      Ghost,
-      Pre  => Xhi = Hi (Xu) and Xlo = Lo (Xu),
-      Post => Big (Xu) = Big_2xx32 * Big (Xhi) + Big (Xlo);
- 
-    procedure Lemma_Mult_Commutation (X, Y, Z : Uns64)
-    with
-      Ghost,
-      Pre  => Big (X) * Big (Y) < Big_2xx64 and then Z = X * Y,
-      Post => Big (X) * Big (Y) = Big (Z);
- 
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X >= Big_0 and then Y >= Big_0)
-        or else (X <= Big_0 and then Y <= Big_0),
-      Post => X * Y >= Big_0;
- 
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X <= Big_0 and then Y >= Big_0)
-        or else (X >= Big_0 and then Y <= Big_0),
-      Post => X * Y <= Big_0;
- 
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X rem Y = X rem (-Y);
- 
-    procedure Lemma_Not_In_Range_Big2xx32
-    with
-      Post => not In_Int32_Range (Big_2xx32)
-        and then not In_Int32_Range (-Big_2xx32);
- 
-    procedure Lemma_Rem_Commutation (X, Y : Uns64)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) rem Big (Y) = Big (X rem Y);
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Abs_Commutation (X : Int32) is null;
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer) is null;
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer) is null;
-    procedure Lemma_Div_Commutation (X, Y : Uns64) is null;
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer) is null;
-    procedure Lemma_Ge_Commutation (A, B : Uns32) is null;
-    procedure Lemma_Mult_Commutation (X, Y, Z : Uns64) is null;
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer) is null;
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer) is null;
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer) is null;
-    procedure Lemma_Not_In_Range_Big2xx32 is null;
-    procedure Lemma_Rem_Commutation (X, Y : Uns64) is null;
- 
-    -------------------------------
-    -- Lemma_Abs_Rem_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          Lemma_Neg_Rem (X, Y);
-          if X < 0 then
-             pragma Assert (X rem Y = -((-X) rem (-Y)));
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          else
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          end if;
-       end if;
-    end Lemma_Abs_Rem_Commutation;
- 
-    -----------------
-    -- Lemma_Hi_Lo --
-    -----------------
- 
-    procedure Lemma_Hi_Lo (Xu : Uns64; Xhi, Xlo : Uns32) is
-    begin
-       pragma Assert (Uns64 (Xhi) = Xu / Uns64'(2 ** 32));
-       pragma Assert (Uns64 (Xlo) = Xu mod 2 ** 32);
-    end Lemma_Hi_Lo;
- 
     -----------------
     -- Raise_Error --
     -----------------
--- 60,82 ----
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Int32'First.
  
     function Hi (A : Uns64) return Uns32 is (Uns32 (Shift_Right (A, 32)));
     --  High order half of 64-bit value
  
!    function To_Neg_Int (A : Uns32) return Int32;
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2**31, then the corresponding nonpositive signed integer (obtained
     --  by negating the given value) is returned, otherwise constraint error is
     --  raised.
  
!    function To_Pos_Int (A : Uns32) return Int32;
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with No_Return;
     --  Raise constraint error with appropriate message
  
     -----------------
     -- Raise_Error --
     -----------------
*************** is
*** 263,271 ****
     procedure Raise_Error is
     begin
        raise Constraint_Error with "32-bit arithmetic overflow";
-       pragma Annotate
-         (GNATprove, Intentional, "exception might be raised",
-          "Procedure Raise_Error is called to signal input errors");
     end Raise_Error;
  
     -------------------
--- 84,89 ----
*************** is
*** 288,484 ****
        Ru : Uns32;
        --  Unsigned quotient and remainder
  
-       --  Local ghost variables
- 
-       Mult  : constant Big_Integer := abs (Big (X) * Big (Y)) with Ghost;
-       Quot  : Big_Integer with Ghost;
-       Big_R : Big_Integer with Ghost;
-       Big_Q : Big_Integer with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Prove_Negative_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then ((X >= 0 and Y < 0) or (X < 0 and Y >= 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z)),
-          Post =>
-            (if Z > 0 then Big_Q <= Big_0 else Big_Q >= Big_0);
-       --  Proves the sign of rounded quotient when dividend is non-positive
- 
-       procedure Prove_Overflow
-       with
-         Ghost,
-         Pre  => Z /= 0 and then Mult >= Big_2xx32 * Big (Uns32'(abs Z)),
-         Post => not In_Int32_Range (Big (X) * Big (Y) / Big (Z))
-           and then not In_Int32_Range
-             (Round_Quotient (Big (X) * Big (Y), Big (Z),
-                              Big (X) * Big (Y) / Big (Z),
-                              Big (X) * Big (Y) rem Big (Z)));
-       --  Proves overflow case
- 
-       procedure Prove_Positive_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then ((X >= 0 and Y >= 0) or (X < 0 and Y < 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z)),
-          Post =>
-            (if Z > 0 then Big_Q >= Big_0 else Big_Q <= Big_0);
-       --  Proves the sign of rounded quotient when dividend is non-negative
- 
-       procedure Prove_Rounding_Case
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-           and then Big (Ru) = abs Big_R
-           and then Big (Zu) = Big (Uns32'(abs Z)),
-         Post => abs Big_Q =
-           (if Ru > (Zu - Uns32'(1)) / Uns32'(2)
-            then abs Quot + 1
-            else abs Quot);
-       --  Proves correctness of the rounding of the unsigned quotient
- 
-       procedure Prove_Sign_R
-       with
-         Ghost,
-         Pre  => Z /= 0 and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post => In_Int32_Range (Big_R);
- 
-       procedure Prove_Signs
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-              else Quot)
-           and then Big (Ru) = abs Big_R
-           and then Big (Qu) = abs Big_Q
-           and then In_Int32_Range (Big_Q)
-           and then In_Int32_Range (Big_R)
-           and then R =
-             (if (X >= 0) = (Y >= 0) then To_Pos_Int (Ru) else To_Neg_Int (Ru))
-           and then Q =
-             (if ((X >= 0) = (Y >= 0)) = (Z >= 0) then To_Pos_Int (Qu)
-              else To_Neg_Int (Qu)),  --  need to ensure To_Pos_Int precondition
-         Post => Big (R) = Big_R and then Big (Q) = Big_Q;
-       --  Proves final signs match the intended result after the unsigned
-       --  division is done.
- 
-       -----------------------------
-       -- Prove_Negative_Dividend --
-       -----------------------------
- 
-       procedure Prove_Negative_Dividend is
-       begin
-          Lemma_Mult_Non_Positive (Big (X), Big (Y));
-       end Prove_Negative_Dividend;
- 
-       --------------------
-       -- Prove_Overflow --
-       --------------------
- 
-       procedure Prove_Overflow is
-       begin
-          Lemma_Div_Ge (Mult, Big_2xx32, Big (Uns32'(abs Z)));
-          Lemma_Abs_Commutation (Z);
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-       end Prove_Overflow;
- 
-       -----------------------------
-       -- Prove_Positive_Dividend --
-       -----------------------------
- 
-       procedure Prove_Positive_Dividend is
-       begin
-          Lemma_Mult_Non_Negative (Big (X), Big (Y));
-       end Prove_Positive_Dividend;
- 
-       -------------------------
-       -- Prove_Rounding_Case --
-       -------------------------
- 
-       procedure Prove_Rounding_Case is
-       begin
-          if Same_Sign (Big (X) * Big (Y), Big (Z)) then
-             pragma Assert
-               (abs Big_Q =
-                  (if Ru > (Zu - Uns32'(1)) / Uns32'(2)
-                   then abs Quot + 1
-                   else abs Quot));
-          end if;
-       end Prove_Rounding_Case;
- 
-       ------------------
-       -- Prove_Sign_R --
-       ------------------
- 
-       procedure Prove_Sign_R is
-       begin
-          pragma Assert (In_Int32_Range (Big (Z)));
-       end Prove_Sign_R;
- 
-       -----------------
-       -- Prove_Signs --
-       -----------------
- 
-       procedure Prove_Signs is
-       begin
-          if (X >= 0) = (Y >= 0) then
-             pragma Assert (Big (R) = Big_R and then Big (Q) = Big_Q);
-          else
-             pragma Assert (Big (R) = Big_R and then Big (Q) = Big_Q);
-          end if;
-       end Prove_Signs;
- 
-    --  Start of processing for Scaled_Divide32
- 
     begin
        --  First do the 64-bit multiplication
  
        D := Uns64 (Xu) * Uns64 (Yu);
  
-       Lemma_Abs_Mult_Commutation (Big (X), Big (Y));
-       pragma Assert (Mult = Big (D));
-       Lemma_Hi_Lo (D, Hi (D), Lo (D));
-       pragma Assert (Mult = Big_2xx32 * Big (Hi (D)) + Big (Lo (D)));
- 
        --  If divisor is zero, raise error
  
        if Z = 0 then
           Raise_Error;
        end if;
  
-       Quot := Big (X) * Big (Y) / Big (Z);
-       Big_R := Big (X) * Big (Y) rem Big (Z);
-       if Round then
-          Big_Q := Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R);
-       else
-          Big_Q := Quot;
-       end if;
- 
        --  If dividend is too large, raise error
  
        if Hi (D) >= Zu then
-          Lemma_Ge_Commutation (Hi (D), Zu);
-          pragma Assert (Mult >= Big_2xx32 * Big (Zu));
-          Prove_Overflow;
           Raise_Error;
        end if;
  
--- 106,125 ----
*************** is
*** 487,521 ****
        Qu := Uns32 (D / Uns64 (Zu));
        Ru := Uns32 (D rem Uns64 (Zu));
  
-       Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-       Lemma_Abs_Rem_Commutation (Big (X) * Big (Y), Big (Z));
-       Lemma_Abs_Commutation (X);
-       Lemma_Abs_Commutation (Y);
-       Lemma_Abs_Commutation (Z);
-       Lemma_Mult_Commutation (Uns64 (Xu), Uns64 (Yu), D);
-       Lemma_Div_Commutation (D, Uns64 (Zu));
-       Lemma_Rem_Commutation (D, Uns64 (Zu));
- 
-       pragma Assert (Uns64 (Qu) = D / Uns64 (Zu));
-       pragma Assert (Uns64 (Ru) = D rem Uns64 (Zu));
-       pragma Assert (Big (Ru) = abs Big_R);
-       pragma Assert (Big (Qu) = abs Quot);
-       pragma Assert (Big (Zu) = Big (Uns32'(abs Z)));
- 
        --  Deal with rounding case
  
        if Round then
-          Prove_Rounding_Case;
- 
           if Ru > (Zu - Uns32'(1)) / Uns32'(2) then
-             pragma Assert (abs Big_Q = Big (Qu) + 1);
- 
              --  Protect against wrapping around when rounding, by signaling
              --  an overflow when the quotient is too large.
  
              if Qu = Uns32'Last then
-                pragma Assert (abs Big_Q = Big_2xx32);
-                Lemma_Not_In_Range_Big2xx32;
                 Raise_Error;
              end if;
  
--- 128,141 ----
*************** is
*** 523,553 ****
           end if;
        end if;
  
-       pragma Assert (In_Int32_Range (Big_Q));
-       pragma Assert (Big (Qu) = abs Big_Q);
-       pragma Assert (Big (Ru) = abs Big_R);
-       Prove_Sign_R;
- 
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X * Y) sign positive
  
        if (X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0) then
-          Prove_Positive_Dividend;
- 
           R := To_Pos_Int (Ru);
           Q := (if Z > 0 then To_Pos_Int (Qu) else To_Neg_Int (Qu));
  
        --  Case of dividend (X * Y) sign negative
  
        else
-          Prove_Negative_Dividend;
- 
           R := To_Neg_Int (Ru);
           Q := (if Z > 0 then To_Neg_Int (Qu) else To_Pos_Int (Qu));
        end if;
- 
-       Prove_Signs;
     end Scaled_Divide32;
  
     ----------------
--- 143,162 ----
*************** is
*** 559,564 ****
--- 168,174 ----
          (if A = 2**31 then Int32'First else -To_Int (A));
        --  Note that we can't just use the expression of the Else, because it
        --  overflows for A = 2**31.
+ 
     begin
        if R <= 0 then
           return R;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-arit32.ads gcc-16-20250608/gcc/ada/libgnat/s-arit32.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-arit32.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-arit32.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,111 ****
  --  signed integer values in cases where either overflow checking is
  --  required, or intermediate results are longer than 32 bits.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced
- --  by setting the corresponding assertion policy to Ignore. Postconditions
- --  and contract cases should not be executed at runtime as well, in order
- --  not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with Interfaces;
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
  package System.Arith_32
    with Pure, SPARK_Mode
  is
-    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
     use type Interfaces.Integer_32;
  
     subtype Int32 is Interfaces.Integer_32;
  
-    subtype Big_Integer is
-      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
-    with Ghost;
- 
-    package Signed_Conversion is new
-      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Signed_Conversions
-      (Int => Int32);
- 
-    function Big (Arg : Int32) return Big_Integer is
-      (Signed_Conversion.To_Big_Integer (Arg))
-    with Ghost;
- 
-    function In_Int32_Range (Arg : Big_Integer) return Boolean is
-      (Ada.Numerics.Big_Numbers.Big_Integers_Ghost.In_Range
-        (Arg, Big (Int32'First), Big (Int32'Last)))
-    with Ghost;
- 
-    function Same_Sign (X, Y : Big_Integer) return Boolean is
-      (X = Big (Int32'(0))
-         or else Y = Big (Int32'(0))
-         or else (X < Big (Int32'(0))) = (Y < Big (Int32'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
-      (if abs R > (abs Y - Big (Int32'(1))) / Big (Int32'(2)) then
-        (if Same_Sign (X, Y) then Q + Big (Int32'(1))
-         else Q - Big (Int32'(1)))
-       else
-         Q)
-    with
-      Ghost,
-      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
- 
     procedure Scaled_Divide32
       (X, Y, Z : Int32;
        Q, R    : out Int32;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Int32_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       Big (X) * Big (Y) / Big (Z), Big (R))
!           else
!             Big (Q) = Big (X) * Big (Y) / Big (Z));
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
--- 33,51 ----
  --  signed integer values in cases where either overflow checking is
  --  required, or intermediate results are longer than 32 bits.
  
  with Interfaces;
  
  package System.Arith_32
    with Pure, SPARK_Mode
  is
     use type Interfaces.Integer_32;
  
     subtype Int32 is Interfaces.Integer_32;
  
     procedure Scaled_Divide32
       (X, Y, Z : Int32;
        Q, R    : out Int32;
!       Round   : Boolean);
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-arit64.adb gcc-16-20250608/gcc/ada/libgnat/s-arit64.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-arit64.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-arit64.adb	Sun Jun  8 22:32:16 2025
***************
*** 28,41 ****
  -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  --                                                                          --
  ------------------------------------------------------------------------------
- pragma Assertion_Policy (Ghost => Ignore);
  
  with System.Arith_Double;
  
  package body System.Arith_64
    with SPARK_Mode
  is
- 
     subtype Uns64 is Interfaces.Unsigned_64;
     subtype Uns32 is Interfaces.Unsigned_32;
  
--- 28,39 ----
*************** is
*** 52,60 ****
     function Multiply_With_Ovflo_Check64 (X, Y : Int64) return Int64
       renames Impl.Multiply_With_Ovflo_Check;
  
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer
-      renames Impl.Round_Quotient;
- 
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
--- 50,55 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-arit64.ads gcc-16-20250608/gcc/ada/libgnat/s-arit64.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-arit64.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-arit64.ads	Sun Jun  8 22:32:16 2025
***************
*** 36,84 ****
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced
- --  by setting the corresponding assertion policy to Ignore. Postconditions
- --  and contract cases should not be executed at runtime as well, in order
- --  not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  with Interfaces;
  
  package System.Arith_64
    with Pure, SPARK_Mode
  is
-    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
-    use type Interfaces.Integer_64;
- 
     subtype Int64 is Interfaces.Integer_64;
  
!    subtype Big_Integer is
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
!    with Ghost;
! 
!    package Signed_Conversion is new
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Signed_Conversions
!      (Int => Int64);
! 
!    function Big (Arg : Int64) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int64_Range (Arg : Big_Integer) return Boolean is
!      (Ada.Numerics.Big_Numbers.Big_Integers_Ghost.In_Range
!        (Arg, Big (Int64'First), Big (Int64'Last)))
!    with Ghost;
! 
!    function Add_With_Ovflo_Check64 (X, Y : Int64) return Int64
!    with
!      Pre  => In_Int64_Range (Big (X) + Big (Y)),
!      Post => Add_With_Ovflo_Check64'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows 64 bits,
     --  otherwise returns the 64-bit signed integer sum.
     --
--- 36,49 ----
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
  with Interfaces;
  
  package System.Arith_64
    with Pure, SPARK_Mode
  is
     subtype Int64 is Interfaces.Integer_64;
  
!    function Add_With_Ovflo_Check64 (X, Y : Int64) return Int64;
     --  Raises Constraint_Error if sum of operands overflows 64 bits,
     --  otherwise returns the 64-bit signed integer sum.
     --
*************** is
*** 93,102 ****
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check64 (X, Y : Int64) return Int64
!    with
!      Pre  => In_Int64_Range (Big (X) - Big (Y)),
!      Post => Subtract_With_Ovflo_Check64'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer difference.
     --
--- 58,64 ----
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check64 (X, Y : Int64) return Int64;
     --  Raises Constraint_Error if difference of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer difference.
     --
*************** is
*** 105,114 ****
     --  a sign of the result is compared with the sign of ``X`` to check for
     --  overflow.
  
!    function Multiply_With_Ovflo_Check64 (X, Y : Int64) return Int64
!    with
!      Pre  => In_Int64_Range (Big (X) * Big (Y)),
!      Post => Multiply_With_Ovflo_Check64'Result = X * Y;
     pragma Export (C, Multiply_With_Ovflo_Check64, "__gnat_mulv64");
     --  Raises Constraint_Error if product of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer product.
--- 67,73 ----
     --  a sign of the result is compared with the sign of ``X`` to check for
     --  overflow.
  
!    function Multiply_With_Ovflo_Check64 (X, Y : Int64) return Int64;
     pragma Export (C, Multiply_With_Ovflo_Check64, "__gnat_mulv64");
     --  Raises Constraint_Error if product of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer product.
*************** is
*** 119,158 ****
     --  signed value is returned. Overflow check is performed by looking at
     --  higher digits.
  
-    function Same_Sign (X, Y : Big_Integer) return Boolean is
-      (X = Big (Int64'(0))
-         or else Y = Big (Int64'(0))
-         or else (X < Big (Int64'(0))) = (Y < Big (Int64'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer with
-      Ghost,
-      Pre  => Y /= 0 and then Q = X / Y and then R = X rem Y,
-      Post => Round_Quotient'Result =
-        (if abs R > (abs Y - Big (Int64'(1))) / Big (Int64'(2)) then
-          (if Same_Sign (X, Y) then Q + Big (Int64'(1))
-           else Q - Big (Int64'(1)))
-         else
-           Q);
- 
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Int64_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       Big (X) * Big (Y) / Big (Z), Big (R))
!           else
!             Big (Q) = Big (X) * Big (Y) / Big (Z));
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
--- 78,87 ----
     --  signed value is returned. Overflow check is performed by looking at
     --  higher digits.
  
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean);
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
*************** is
*** 189,210 ****
     procedure Double_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean)
!    with
!      Pre  => Y /= 0
!        and then Z /= 0
!        and then In_Int64_Range
!          (if Round then Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                         Big (X) / (Big (Y) * Big (Z)),
!                                         Big (X) rem (Big (Y) * Big (Z)))
!           else Big (X) / (Big (Y) * Big (Z))),
!      Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                       Big (X) / (Big (Y) * Big (Z)), Big (R))
!           else
!             Big (Q) = Big (X) / (Big (Y) * Big (Z)));
     --  Performs the division ``X`` / (``Y`` * ``Z``), storing the quotient in
     --  ``Q`` and the remainder in ``R``. Constraint_Error is raised if ``Y`` or
     --  ``Z`` is zero, or if the quotient does not fit in 64-bits.
--- 118,124 ----
     procedure Double_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean);
     --  Performs the division ``X`` / (``Y`` * ``Z``), storing the quotient in
     --  ``Q`` and the remainder in ``R``. Constraint_Error is raised if ``Y`` or
     --  ``Z`` is zero, or if the quotient does not fit in 64-bits.
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-casuti.adb gcc-16-20250608/gcc/ada/libgnat/s-casuti.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-casuti.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-casuti.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body System.Case_Util
    with SPARK_Mode
  is
--- 29,34 ----
*************** is
*** 62,70 ****
     begin
        for J in A'Range loop
           A (J) := To_Lower (A (J));
- 
-          pragma Loop_Invariant
-            (for all K in A'First .. J => A (K) = To_Lower (A'Loop_Entry (K)));
        end loop;
     end To_Lower;
  
--- 54,59 ----
*************** is
*** 90,104 ****
              A (J) := To_Lower (A (J));
           end if;
  
-          pragma Loop_Invariant
-            (for all K in A'First .. J =>
-               (if K = A'First
-                  or else A'Loop_Entry (K - 1) = '_'
-                then
-                  A (K) = To_Upper (A'Loop_Entry (K))
-                else
-                  A (K) = To_Lower (A'Loop_Entry (K))));
- 
           Ucase := A (J) = '_';
        end loop;
     end To_Mixed;
--- 79,84 ----
*************** is
*** 132,140 ****
     begin
        for J in A'Range loop
           A (J) := To_Upper (A (J));
- 
-          pragma Loop_Invariant
-            (for all K in A'First .. J => A (K) = To_Upper (A'Loop_Entry (K)));
        end loop;
     end To_Upper;
  
--- 112,117 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exnint.ads gcc-16-20250608/gcc/ada/libgnat/s-exnint.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-exnint.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exnint.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,47 ****
  
  --  This package implements Integer exponentiation (checks off)
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Exponn;
  
  package System.Exn_Int
--- 31,36 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exnlli.ads gcc-16-20250608/gcc/ada/libgnat/s-exnlli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-exnlli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exnlli.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,47 ****
  
  --  This package implements Long_Long_Integer exponentiation (checks off)
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Exponn;
  
  package System.Exn_LLI
--- 31,36 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exnllli.ads gcc-16-20250608/gcc/ada/libgnat/s-exnllli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-exnllli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exnllli.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,53 ****
  
  --  Long_Long_Long_Integer exponentiation (checks off)
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Exponn;
  
  package System.Exn_LLLI
    with SPARK_Mode
  is
- 
     package Exponn_Integer is new Exponn (Long_Long_Long_Integer);
  
     function Exn_Long_Long_Long_Integer
--- 31,41 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expint.ads gcc-16-20250608/gcc/ada/libgnat/s-expint.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-expint.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expint.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,53 ****
  
  --  This package implements Integer exponentiation (checks on)
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Expont;
  
  package System.Exp_Int
    with SPARK_Mode
  is
- 
     package Expont_Integer is new Expont (Integer);
  
     function Exp_Integer (Left : Integer; Right : Natural) return Integer
--- 31,41 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-explli.ads gcc-16-20250608/gcc/ada/libgnat/s-explli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-explli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-explli.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,53 ****
  
  --  This package implements Long_Long_Integer exponentiation
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Expont;
  
  package System.Exp_LLI
    with SPARK_Mode
  is
- 
     package Expont_Integer is new Expont (Long_Long_Integer);
  
     function Exp_Long_Long_Integer
--- 31,41 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expllli.ads gcc-16-20250608/gcc/ada/libgnat/s-expllli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-expllli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expllli.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,53 ****
  
  --  Long_Long_Long_Integer exponentiation (checks on)
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Expont;
  
  package System.Exp_LLLI
    with SPARK_Mode
  is
- 
     package Expont_Integer is new Expont (Long_Long_Long_Integer);
  
     function Exp_Long_Long_Long_Integer
--- 31,41 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-explllu.ads gcc-16-20250608/gcc/ada/libgnat/s-explllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-explllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-explllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 34,57 ****
  --  The result is always full width, the caller must do a masking operation if
  --  the modulus is less than 2 ** Long_Long_Long_Unsigned'Size.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced
- --  by setting the corresponding assertion policy to Ignore. Postconditions
- --  and contract cases should not be executed at runtime as well, in order
- --  not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_LLLU
    with SPARK_Mode
  is
- 
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     function Exp_Long_Long_Long_Unsigned is
--- 34,45 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expllu.ads gcc-16-20250608/gcc/ada/libgnat/s-expllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-expllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 34,57 ****
  --  is always full width, the caller must do a masking operation if the
  --  modulus is less than 2 ** (Long_Long_Unsigned'Size).
  
- --  Note: preconditions in this unit are meant for analysis only, not for
- --  run-time checking, so that the expected exceptions are raised. This is
- --  enforced by setting the corresponding assertion policy to Ignore.
- --  Postconditions and contract cases should not be executed at run-time as
- --  well, in order not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_LLU
    with SPARK_Mode
  is
- 
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
     function Exp_Long_Long_Unsigned is new Exponu (Long_Long_Unsigned);
--- 34,45 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expmod.adb gcc-16-20250608/gcc/ada/libgnat/s-expmod.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-expmod.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expmod.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,231 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Preconditions, postconditions, ghost code, loop invariants and assertions
- --  in this unit are meant for analysis only, not for run-time checking, as it
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  package body System.Exp_Mod
    with SPARK_Mode
  is
     use System.Unsigned_Types;
  
-    --  Local lemmas
- 
-    procedure Lemma_Add_Mod (X, Y : Big_Natural; B : Big_Positive)
-    with
-      Ghost,
-      Post => (X + Y) mod B = ((X mod B) + (Y mod B)) mod B;
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Post =>
-        (if Exp rem 2 = 0 then
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2)
-         else
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
- 
-    procedure Lemma_Exp_Mod (A : Big_Natural; Exp : Natural; B : Big_Positive)
-    with
-      Ghost,
-      Subprogram_Variant => (Decreases => Exp),
-      Post => ((A mod B) ** Exp) mod B = (A ** Exp) mod B;
- 
-    procedure Lemma_Mod_Ident (A : Big_Natural; B : Big_Positive)
-    with
-      Ghost,
-      Pre => A < B,
-      Post => A mod B = A;
- 
-    procedure Lemma_Mod_Mod (A : Big_Integer; B : Big_Positive)
-    with
-      Ghost,
-      Post => A mod B mod B = A mod B;
- 
-    procedure Lemma_Mult_Div (X : Big_Natural; Y : Big_Positive)
-    with
-      Ghost,
-      Post => X * Y / Y = X;
- 
-    procedure Lemma_Mult_Mod (X, Y : Big_Natural; B : Big_Positive)
-    with
-      Ghost,
-      --  The following subprogram variant can be added as soon as supported
-      --  Subprogram_Variant => (Decreases => Y),
-      Post => (X * Y) mod B = ((X mod B) * (Y mod B)) mod B;
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Mod_Ident (A : Big_Natural; B : Big_Positive) is null;
-    procedure Lemma_Mod_Mod (A : Big_Integer; B : Big_Positive) is null;
-    procedure Lemma_Mult_Div (X : Big_Natural; Y : Big_Positive) is null;
- 
-    -------------------
-    -- Lemma_Add_Mod --
-    -------------------
- 
-    procedure Lemma_Add_Mod (X, Y : Big_Natural; B : Big_Positive) is
- 
-       procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) with
-         Pre  => F /= 0,
-         Post => (Q * F + R) mod F = R mod F,
-         Subprogram_Variant => (Decreases => Q);
- 
-       -------------------------
-       -- Lemma_Euclidean_Mod --
-       -------------------------
- 
-       procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) is
-       begin
-          if Q > 0 then
-             Lemma_Euclidean_Mod (Q - 1, F, R);
-          end if;
-       end Lemma_Euclidean_Mod;
- 
-       --  Local variables
- 
-       Left  : constant Big_Natural := (X + Y) mod B;
-       Right : constant Big_Natural := ((X mod B) + (Y mod B)) mod B;
-       XQuot : constant Big_Natural := X / B;
-       YQuot : constant Big_Natural := Y / B;
-       AQuot : constant Big_Natural := (X mod B + Y mod B) / B;
-    begin
-       if Y /= 0 and B > 1 then
-          pragma Assert (X = XQuot * B + X mod B);
-          pragma Assert (Y = YQuot * B + Y mod B);
-          pragma Assert
-            (Left = ((XQuot + YQuot) * B + X mod B + Y mod B) mod B);
-          pragma Assert (X mod B + Y mod B = AQuot * B + Right);
-          pragma Assert (Left = ((XQuot + YQuot + AQuot) * B + Right) mod B);
-          Lemma_Euclidean_Mod (XQuot + YQuot + AQuot, B, Right);
-          pragma Assert (Left = (Right mod B));
-          pragma Assert (Left = Right);
-       end if;
-    end Lemma_Add_Mod;
- 
-    ----------------------
-    -- Lemma_Exp_Expand --
-    ----------------------
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
- 
-       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) with
-         Pre  => Natural'Last - Exp_2 >= Exp_1,
-         Post => A ** (Exp_1 + Exp_2) = A ** (Exp_1) * A ** (Exp_2);
- 
-       ----------------------------
-       -- Lemma_Exp_Distribution --
-       ----------------------------
- 
-       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) is null;
- 
-    begin
-       if Exp rem 2 = 0 then
-          pragma Assert (Exp = Exp / 2 + Exp / 2);
-       else
-          pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
-          Lemma_Exp_Distribution (Exp / 2, Exp / 2 + 1);
-          Lemma_Exp_Distribution (Exp / 2, 1);
-       end if;
-    end Lemma_Exp_Expand;
- 
-    -------------------
-    -- Lemma_Exp_Mod --
-    -------------------
- 
-    procedure Lemma_Exp_Mod (A : Big_Natural; Exp : Natural; B : Big_Positive)
-    is
-    begin
-       if Exp /= 0 then
-          declare
-             Left  : constant Big_Integer := ((A mod B) ** Exp) mod B;
-             Right : constant Big_Integer := (A ** Exp) mod B;
-          begin
-             Lemma_Mult_Mod (A mod B, (A mod B) ** (Exp - 1), B);
-             Lemma_Mod_Mod (A, B);
-             Lemma_Exp_Mod (A, Exp - 1, B);
-             Lemma_Mult_Mod (A, A ** (Exp - 1), B);
-             pragma Assert
-               ((A mod B) * (A mod B) ** (Exp - 1) = (A mod B) ** Exp);
-             pragma Assert (A * A ** (Exp - 1) = A ** Exp);
-             pragma Assert (Left = Right);
-          end;
-       end if;
-    end Lemma_Exp_Mod;
- 
-    --------------------
-    -- Lemma_Mult_Mod --
-    --------------------
- 
-    procedure Lemma_Mult_Mod (X, Y : Big_Natural; B : Big_Positive) is
-       Left : constant Big_Natural := (X * Y) mod B;
-       Right : constant Big_Natural := ((X mod B) * (Y mod B)) mod B;
-    begin
-       if Y /= 0 and B > 1 then
-          Lemma_Add_Mod (X * (Y - 1), X, B);
-          Lemma_Mult_Mod (X, Y - 1, B);
-          Lemma_Mod_Mod (X, B);
-          Lemma_Add_Mod ((X mod B) * ((Y - 1) mod B), X mod B, B);
-          Lemma_Add_Mod (Y - 1, 1, B);
-          pragma Assert (((Y - 1) mod B + 1) mod B = Y mod B);
-          if (Y - 1) mod B + 1 < B then
-             Lemma_Mod_Ident ((Y - 1) mod B + 1, B);
-             Lemma_Mod_Mod ((X mod B) * (Y mod B), B);
-             pragma Assert (Left = Right);
-          else
-             pragma Assert (Y mod B = 0);
-             pragma Assert (Y / B * B = Y);
-             pragma Assert ((X * Y) mod B = (X * Y) - (X * Y) / B * B);
-             pragma Assert
-               ((X * Y) mod B = (X * Y) - (X * (Y / B) * B) / B * B);
-             Lemma_Mult_Div (X * (Y / B), B);
-             pragma Assert (Left = 0);
-             pragma Assert (Left = Right);
-          end if;
-       end if;
-    end Lemma_Mult_Mod;
- 
     -----------------
     -- Exp_Modular --
     -----------------
--- 29,39 ----
*************** is
*** 241,275 ****
  
        function Mult (X, Y : Unsigned) return Unsigned is
          (Unsigned (Long_Long_Unsigned (X) * Long_Long_Unsigned (Y)
!                     mod Long_Long_Unsigned (Modulus)))
!       with
!         Pre => Modulus /= 0;
!       --  Modular multiplication. Note that we can't take advantage of the
!       --  compiler's circuit, because the modulus is not known statically.
! 
!       --  Local ghost variables, functions and lemmas
! 
!       M : constant Big_Positive := Big (Modulus) with Ghost;
! 
!       function Equal_Modulo (X, Y : Big_Integer) return Boolean is
!          (X mod M = Y mod M)
!       with
!         Ghost,
!         Pre => Modulus /= 0;
! 
!       procedure Lemma_Mult (X, Y : Unsigned)
!       with
!         Ghost,
!         Post => Big (Mult (X, Y)) = (Big (X) * Big (Y)) mod M
!           and then Big (Mult (X, Y)) < M;
! 
!       procedure Lemma_Mult (X, Y : Unsigned) is
!       begin
!          pragma Assert (Big (Mult (X, Y)) = (Big (X) * Big (Y)) mod M);
!       end Lemma_Mult;
! 
!       Rest : Big_Integer with Ghost;
!       --  Ghost variable to hold Factor**Exp between Exp and Factor updates
  
     begin
        pragma Assert (Modulus /= 1);
--- 49,55 ----
  
        function Mult (X, Y : Unsigned) return Unsigned is
          (Unsigned (Long_Long_Unsigned (X) * Long_Long_Unsigned (Y)
!                     mod Long_Long_Unsigned (Modulus)));
  
     begin
        pragma Assert (Modulus /= 1);
*************** is
*** 284,355 ****
  
        if Exp /= 0 then
           loop
-             pragma Loop_Invariant (Exp > 0);
-             pragma Loop_Invariant (Result < Modulus);
-             pragma Loop_Invariant (Equal_Modulo
-               (Big (Result) * Big (Factor) ** Exp, Big (Left) ** Right));
-             pragma Loop_Variant (Decreases => Exp);
- 
              if Exp rem 2 /= 0 then
-                pragma Assert
-                  (Big (Factor) ** Exp
-                   = Big (Factor) * Big (Factor) ** (Exp - 1));
-                pragma Assert (Equal_Modulo
-                  ((Big (Result) * Big (Factor)) * Big (Factor) ** (Exp - 1),
-                   Big (Left) ** Right));
-                pragma Assert (Big (Factor) >= 0);
-                Lemma_Mult_Mod (Big (Result) * Big (Factor),
-                                   Big (Factor) ** (Exp - 1),
-                                   Big (Modulus));
-                Lemma_Mult (Result, Factor);
- 
                 Result := Mult (Result, Factor);
- 
-                Lemma_Mod_Ident (Big (Result), Big (Modulus));
-                Lemma_Mod_Mod (Big (Factor) ** (Exp - 1), Big (Modulus));
-                Lemma_Mult_Mod (Big (Result),
-                                   Big (Factor) ** (Exp - 1),
-                                   Big (Modulus));
-                pragma Assert (Equal_Modulo
-                  (Big (Result) * Big (Factor) ** (Exp - 1),
-                   Big (Left) ** Right));
-                Lemma_Exp_Expand (Big (Factor), Exp - 1);
-                pragma Assert (Exp / 2 = (Exp - 1) / 2);
              end if;
  
-             Lemma_Exp_Expand (Big (Factor), Exp);
- 
              Exp := Exp / 2;
              exit when Exp = 0;
  
-             Rest := Big (Factor) ** Exp;
-             pragma Assert (Equal_Modulo
-               (Big (Result) * (Rest * Rest), Big (Left) ** Right));
-             Lemma_Exp_Mod (Big (Factor) * Big (Factor), Exp, Big (Modulus));
-             pragma Assert
-               ((Big (Factor) * Big (Factor)) ** Exp = Rest * Rest);
-             pragma Assert (Equal_Modulo
-               ((Big (Factor) * Big (Factor)) ** Exp,
-                Rest * Rest));
-             Lemma_Mult (Factor, Factor);
- 
              Factor := Mult (Factor, Factor);
- 
-             Lemma_Mod_Mod (Rest * Rest, Big (Modulus));
-             Lemma_Mod_Ident (Big (Result), Big (Modulus));
-             Lemma_Mult_Mod (Big (Result), Rest * Rest, Big (Modulus));
-             pragma Assert (Big (Factor) >= 0);
-             Lemma_Mult_Mod (Big (Result), Big (Factor) ** Exp,
-                                Big (Modulus));
-             pragma Assert (Equal_Modulo
-               (Big (Result) * Big (Factor) ** Exp, Big (Left) ** Right));
           end loop;
- 
-          pragma Assert (Big (Result) = Big (Left) ** Right mod Big (Modulus));
        end if;
  
        return Result;
- 
     end Exp_Modular;
  
  end System.Exp_Mod;
--- 64,81 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expmod.ads gcc-16-20250608/gcc/ada/libgnat/s-expmod.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-expmod.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expmod.ads	Sun Jun  8 22:32:16 2025
***************
*** 36,54 ****
  --  Note that 1 is a binary modulus (2**0), so the compiler should not (and
  --  will not) call this function with Modulus equal to 1.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  with System.Unsigned_Types;
  
  package System.Exp_Mod
--- 36,41 ----
*************** is
*** 57,86 ****
     use type System.Unsigned_Types.Unsigned;
     subtype Unsigned is System.Unsigned_Types.Unsigned;
  
-    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
-    subtype Big_Integer is
-      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
-    with Ghost;
- 
-    package Unsigned_Conversion is
-      new Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Unsigned_Conversions
-        (Int => Unsigned);
- 
-    function Big (Arg : Unsigned) return Big_Integer is
-      (Unsigned_Conversion.To_Big_Integer (Arg))
-    with Ghost;
- 
-    subtype Power_Of_2 is Unsigned with
-      Dynamic_Predicate =>
-         Power_Of_2 /= 0 and then (Power_Of_2 and (Power_Of_2 - 1)) = 0;
- 
     function Exp_Modular
       (Left    : Unsigned;
        Modulus : Unsigned;
!       Right   : Natural) return Unsigned
!    with
!      Pre  => Modulus /= 0 and then Modulus not in Power_Of_2,
!      Post => Big (Exp_Modular'Result) = Big (Left) ** Right mod Big (Modulus);
     --  Return the power of ``Left`` by ``Right` modulo ``Modulus``.
     --
     --  This function is implemented using the standard logarithmic approach:
--- 44,53 ----
     use type System.Unsigned_Types.Unsigned;
     subtype Unsigned is System.Unsigned_Types.Unsigned;
  
     function Exp_Modular
       (Left    : Unsigned;
        Modulus : Unsigned;
!       Right   : Natural) return Unsigned;
     --  Return the power of ``Left`` by ``Right` modulo ``Modulus``.
     --
     --  This function is implemented using the standard logarithmic approach:
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exponn.adb gcc-16-20250608/gcc/ada/libgnat/s-exponn.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-exponn.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exponn.adb	Sun Jun  8 22:32:16 2025
***************
*** 32,96 ****
  package body System.Exponn
    with SPARK_Mode
  is
- 
-    --  Preconditions, postconditions, ghost code, loop invariants and
-    --  assertions in this unit are meant for analysis only, not for run-time
-    --  checking, as it would be too costly otherwise. This is enforced by
-    --  setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Pre            => Ignore,
-                             Post           => Ignore,
-                             Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore);
- 
-    --  Local lemmas
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post =>
-        (if Exp rem 2 = 0 then
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2)
-         else
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive)
-    with
-      Ghost,
-      Pre  => In_Int_Range (A ** Exp * A ** Exp),
-      Post => In_Int_Range (A * A);
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post => A ** Exp /= 0;
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0
-        and then Exp rem 2 = 0,
-      Post => A ** Exp > 0;
- 
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0
-        and then not (X = -Big (Int'First) and Y = -1)
-        and then X * Y = Z
-        and then In_Int_Range (Z),
-      Post => In_Int_Range (X);
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural) is null;
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer) is null;
- 
     -----------
     -- Expon --
     -----------
--- 32,37 ----
*************** is
*** 104,116 ****
        Factor : Int     := Left;
        Exp    : Natural := Right;
  
-       Rest : Big_Integer with Ghost;
-       --  Ghost variable to hold Factor**Exp between Exp and Factor updates
- 
     begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "early returns for performance");
- 
        --  We use the standard logarithmic approach, Exp gets shifted right
        --  testing successive low order bits and Factor is the value of the
        --  base raised to the next power of 2.
--- 45,51 ----
*************** is
*** 122,238 ****
        --  simpler, so we do it.
  
        if Right = 0 then
!          return 1;
        elsif Left = 0 then
!          return 0;
!       end if;
  
!       loop
!          pragma Loop_Invariant (Exp > 0);
!          pragma Loop_Invariant (Factor /= 0);
!          pragma Loop_Invariant
!            (Big (Result) * Big (Factor) ** Exp = Big (Left) ** Right);
!          pragma Loop_Variant (Decreases => Exp);
  
-          if Exp rem 2 /= 0 then
              declare
                 pragma Suppress (Overflow_Check);
              begin
!                pragma Assert
!                  (Big (Factor) ** Exp
!                   = Big (Factor) * Big (Factor) ** (Exp - 1));
!                Lemma_Exp_Positive (Big (Factor), Exp - 1);
!                Lemma_Mult_In_Range (Big (Result) * Big (Factor),
!                                     Big (Factor) ** (Exp - 1),
!                                     Big (Left) ** Right);
! 
!                Result := Result * Factor;
              end;
!          end if;
! 
!          Lemma_Exp_Expand (Big (Factor), Exp);
! 
!          Exp := Exp / 2;
!          exit when Exp = 0;
! 
!          Rest := Big (Factor) ** Exp;
!          pragma Assert
!            (Big (Result) * (Rest * Rest) = Big (Left) ** Right);
! 
!          declare
!             pragma Suppress (Overflow_Check);
!          begin
!             Lemma_Mult_In_Range (Rest * Rest,
!                                  Big (Result),
!                                  Big (Left) ** Right);
!             Lemma_Exp_In_Range (Big (Factor), Exp);
! 
!             Factor := Factor * Factor;
!          end;
! 
!          pragma Assert (Big (Factor) ** Exp = Rest * Rest);
!       end loop;
! 
!       pragma Assert (Big (Result) = Big (Left) ** Right);
  
        return Result;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Expon;
  
-    ----------------------
-    -- Lemma_Exp_Expand --
-    ----------------------
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
- 
-       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) with
-         Pre  => A /= 0 and then Natural'Last - Exp_2 >= Exp_1,
-         Post => A ** (Exp_1 + Exp_2) = A ** (Exp_1) * A ** (Exp_2);
- 
-       ----------------------------
-       -- Lemma_Exp_Distribution --
-       ----------------------------
- 
-       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) is null;
- 
-    begin
-       if Exp rem 2 = 0 then
-          pragma Assert (Exp = Exp / 2 + Exp / 2);
-       else
-          pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
-          Lemma_Exp_Distribution (Exp / 2, Exp / 2 + 1);
-          Lemma_Exp_Distribution (Exp / 2, 1);
-       end if;
-    end Lemma_Exp_Expand;
- 
-    ------------------------
-    -- Lemma_Exp_In_Range --
-    ------------------------
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive) is
-    begin
-       if A /= 0 and Exp /= 1 then
-          pragma Assert (A ** Exp = A * A ** (Exp - 1));
-          Lemma_Mult_In_Range
-            (A * A, A ** (Exp - 1) * A ** (Exp - 1), A ** Exp * A ** Exp);
-       end if;
-    end Lemma_Exp_In_Range;
- 
-    ------------------------
-    -- Lemma_Exp_Positive --
-    ------------------------
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural) is
-    begin
-       if Exp = 0 then
-          pragma Assert (A ** Exp = 1);
-       else
-          pragma Assert (Exp = 2 * (Exp / 2));
-          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2));
-          pragma Assert (A ** Exp = (A ** (Exp / 2)) ** 2);
-          Lemma_Exp_Not_Zero (A, Exp / 2);
-       end if;
-    end Lemma_Exp_Positive;
- 
  end System.Exponn;
--- 57,87 ----
        --  simpler, so we do it.
  
        if Right = 0 then
!          Result := 1;
        elsif Left = 0 then
!          Result := 0;
!       else
!          loop
!             if Exp rem 2 /= 0 then
!                declare
!                   pragma Suppress (Overflow_Check);
!                begin
!                   Result := Result * Factor;
!                end;
!             end if;
  
!             Exp := Exp / 2;
!             exit when Exp = 0;
  
              declare
                 pragma Suppress (Overflow_Check);
              begin
!                Factor := Factor * Factor;
              end;
!          end loop;
!       end if;
  
        return Result;
     end Expon;
  
  end System.Exponn;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exponn.ads gcc-16-20250608/gcc/ada/libgnat/s-exponn.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-exponn.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exponn.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,75 ****
  --  This package provides functions for signed integer exponentiation. This
  --  is the version of the package with checks disabled.
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  generic
- 
     type Int is range <>;
  
  package System.Exponn
    with Pure, SPARK_Mode
  is
!    --  Preconditions in this unit are meant for analysis only, not for run-time
!    --  checking, so that the expected exceptions are raised. This is enforced
!    --  by setting the corresponding assertion policy to Ignore. Postconditions
!    --  and contract cases should not be executed at runtime as well, in order
!    --  not to slow down the execution of these functions.
! 
!    pragma Assertion_Policy (Pre            => Ignore,
!                             Post           => Ignore,
!                             Contract_Cases => Ignore,
!                             Ghost          => Ignore);
! 
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Signed_Conversion is new BI_Ghost.Signed_Conversions (Int => Int);
! 
!    function Big (Arg : Int) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int_Range (Arg : Big_Integer) return Boolean is
!      (BI_Ghost.In_Range (Arg, Big (Int'First), Big (Int'Last)))
!    with Ghost;
! 
!    function Expon (Left : Int; Right : Natural) return Int
!    with
!      Pre  => In_Int_Range (Big (Left) ** Right),
!      Post => Expon'Result = Left ** Right;
     --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
     --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
     --  is set to 1 and then computed in a loop as follows:
--- 32,44 ----
  --  This package provides functions for signed integer exponentiation. This
  --  is the version of the package with checks disabled.
  
  generic
     type Int is range <>;
  
  package System.Exponn
    with Pure, SPARK_Mode
  is
!    function Expon (Left : Int; Right : Natural) return Int;
     --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
     --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
     --  is set to 1 and then computed in a loop as follows:
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expont.adb gcc-16-20250608/gcc/ada/libgnat/s-expont.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-expont.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expont.adb	Sun Jun  8 22:32:16 2025
***************
*** 32,96 ****
  package body System.Expont
    with SPARK_Mode
  is
- 
-    --  Preconditions, postconditions, ghost code, loop invariants and
-    --  assertions in this unit are meant for analysis only, not for run-time
-    --  checking, as it would be too costly otherwise. This is enforced by
-    --  setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Pre            => Ignore,
-                             Post           => Ignore,
-                             Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore);
- 
-    --  Local lemmas
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post =>
-        (if Exp rem 2 = 0 then
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2)
-         else
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive)
-    with
-      Ghost,
-      Pre  => In_Int_Range (A ** Exp * A ** Exp),
-      Post => In_Int_Range (A * A);
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post => A ** Exp /= 0;
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0
-        and then Exp rem 2 = 0,
-      Post => A ** Exp > 0;
- 
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0
-        and then not (X = -Big (Int'First) and Y = -1)
-        and then X * Y = Z
-        and then In_Int_Range (Z),
-      Post => In_Int_Range (X);
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural) is null;
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer) is null;
- 
     -----------
     -- Expon --
     -----------
--- 32,37 ----
*************** is
*** 104,116 ****
        Factor : Int     := Left;
        Exp    : Natural := Right;
  
-       Rest : Big_Integer with Ghost;
-       --  Ghost variable to hold Factor**Exp between Exp and Factor updates
- 
     begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "early returns for performance");
- 
        --  We use the standard logarithmic approach, Exp gets shifted right
        --  testing successive low order bits and Factor is the value of the
        --  base raised to the next power of 2.
--- 45,51 ----
*************** is
*** 122,238 ****
        --  simpler, so we do it.
  
        if Right = 0 then
!          return 1;
        elsif Left = 0 then
!          return 0;
!       end if;
  
!       loop
!          pragma Loop_Invariant (Exp > 0);
!          pragma Loop_Invariant (Factor /= 0);
!          pragma Loop_Invariant
!            (Big (Result) * Big (Factor) ** Exp = Big (Left) ** Right);
!          pragma Loop_Variant (Decreases => Exp);
  
-          if Exp rem 2 /= 0 then
              declare
                 pragma Unsuppress (Overflow_Check);
              begin
!                pragma Assert
!                  (Big (Factor) ** Exp
!                   = Big (Factor) * Big (Factor) ** (Exp - 1));
!                Lemma_Exp_Positive (Big (Factor), Exp - 1);
!                Lemma_Mult_In_Range (Big (Result) * Big (Factor),
!                                     Big (Factor) ** (Exp - 1),
!                                     Big (Left) ** Right);
! 
!                Result := Result * Factor;
              end;
!          end if;
! 
!          Lemma_Exp_Expand (Big (Factor), Exp);
! 
!          Exp := Exp / 2;
!          exit when Exp = 0;
! 
!          Rest := Big (Factor) ** Exp;
!          pragma Assert
!            (Big (Result) * (Rest * Rest) = Big (Left) ** Right);
! 
!          declare
!             pragma Unsuppress (Overflow_Check);
!          begin
!             Lemma_Mult_In_Range (Rest * Rest,
!                                  Big (Result),
!                                  Big (Left) ** Right);
!             Lemma_Exp_In_Range (Big (Factor), Exp);
! 
!             Factor := Factor * Factor;
!          end;
! 
!          pragma Assert (Big (Factor) ** Exp = Rest * Rest);
!       end loop;
! 
!       pragma Assert (Big (Result) = Big (Left) ** Right);
  
        return Result;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Expon;
  
-    ----------------------
-    -- Lemma_Exp_Expand --
-    ----------------------
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural) is
- 
-       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) with
-         Pre  => A /= 0 and then Natural'Last - Exp_2 >= Exp_1,
-         Post => A ** (Exp_1 + Exp_2) = A ** (Exp_1) * A ** (Exp_2);
- 
-       ----------------------------
-       -- Lemma_Exp_Distribution --
-       ----------------------------
- 
-       procedure Lemma_Exp_Distribution (Exp_1, Exp_2 : Natural) is null;
- 
-    begin
-       if Exp rem 2 = 0 then
-          pragma Assert (Exp = Exp / 2 + Exp / 2);
-       else
-          pragma Assert (Exp = Exp / 2 + Exp / 2 + 1);
-          Lemma_Exp_Distribution (Exp / 2, Exp / 2 + 1);
-          Lemma_Exp_Distribution (Exp / 2, 1);
-       end if;
-    end Lemma_Exp_Expand;
- 
-    ------------------------
-    -- Lemma_Exp_In_Range --
-    ------------------------
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive) is
-    begin
-       if A /= 0 and Exp /= 1 then
-          pragma Assert (A ** Exp = A * A ** (Exp - 1));
-          Lemma_Mult_In_Range
-            (A * A, A ** (Exp - 1) * A ** (Exp - 1), A ** Exp * A ** Exp);
-       end if;
-    end Lemma_Exp_In_Range;
- 
-    ------------------------
-    -- Lemma_Exp_Positive --
-    ------------------------
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural) is
-    begin
-       if Exp = 0 then
-          pragma Assert (A ** Exp = 1);
-       else
-          pragma Assert (Exp = 2 * (Exp / 2));
-          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2));
-          pragma Assert (A ** Exp = (A ** (Exp / 2)) ** 2);
-          Lemma_Exp_Not_Zero (A, Exp / 2);
-       end if;
-    end Lemma_Exp_Positive;
- 
  end System.Expont;
--- 57,87 ----
        --  simpler, so we do it.
  
        if Right = 0 then
!          Result := 1;
        elsif Left = 0 then
!          Result := 0;
!       else
!          loop
!             if Exp rem 2 /= 0 then
!                declare
!                   pragma Unsuppress (Overflow_Check);
!                begin
!                   Result := Result * Factor;
!                end;
!             end if;
  
!             Exp := Exp / 2;
!             exit when Exp = 0;
  
              declare
                 pragma Unsuppress (Overflow_Check);
              begin
!                Factor := Factor * Factor;
              end;
!          end loop;
!       end if;
  
        return Result;
     end Expon;
  
  end System.Expont;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expont.ads gcc-16-20250608/gcc/ada/libgnat/s-expont.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-expont.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expont.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,75 ****
  --  This package provides functions for signed integer exponentiation. This
  --  is the version of the package with checks enabled.
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  generic
- 
     type Int is range <>;
  
  package System.Expont
    with Pure, SPARK_Mode
  is
!    --  Preconditions in this unit are meant for analysis only, not for run-time
!    --  checking, so that the expected exceptions are raised. This is enforced
!    --  by setting the corresponding assertion policy to Ignore. Postconditions
!    --  and contract cases should not be executed at runtime as well, in order
!    --  not to slow down the execution of these functions.
! 
!    pragma Assertion_Policy (Pre            => Ignore,
!                             Post           => Ignore,
!                             Contract_Cases => Ignore,
!                             Ghost          => Ignore);
! 
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Signed_Conversion is new BI_Ghost.Signed_Conversions (Int => Int);
! 
!    function Big (Arg : Int) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int_Range (Arg : Big_Integer) return Boolean is
!      (BI_Ghost.In_Range (Arg, Big (Int'First), Big (Int'Last)))
!    with Ghost;
! 
!    function Expon (Left : Int; Right : Natural) return Int
!    with
!      Pre  => In_Int_Range (Big (Left) ** Right),
!      Post => Expon'Result = Left ** Right;
     --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
     --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
     --  is set to 1 and then computed in a loop as follows:
--- 32,44 ----
  --  This package provides functions for signed integer exponentiation. This
  --  is the version of the package with checks enabled.
  
  generic
     type Int is range <>;
  
  package System.Expont
    with Pure, SPARK_Mode
  is
!    function Expon (Left : Int; Right : Natural) return Int;
     --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
     --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
     --  is set to 1 and then computed in a loop as follows:
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exponu.adb gcc-16-20250608/gcc/ada/libgnat/s-exponu.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-exponu.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exponu.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,48 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! function System.Exponu (Left : Int; Right : Natural) return Int
!   with SPARK_Mode
! is
!    --  Preconditions, postconditions, ghost code, loop invariants and
!    --  assertions in this unit are meant for analysis only, not for run-time
!    --  checking, as it would be too costly otherwise. This is enforced by
!    --  setting the assertion policy to Ignore.
! 
!    pragma Assertion_Policy (Pre            => Ignore,
!                             Post           => Ignore,
!                             Ghost          => Ignore,
!                             Loop_Invariant => Ignore,
!                             Assert         => Ignore);
! 
     --  Note that negative exponents get a constraint error because the
     --  subtype of the Right argument (the exponent) is Natural.
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! function System.Exponu (Left : Int; Right : Natural) return Int is
     --  Note that negative exponents get a constraint error because the
     --  subtype of the Right argument (the exponent) is Natural.
  
*************** begin
*** 61,76 ****
  
     if Exp /= 0 then
        loop
-          pragma Loop_Invariant (Exp > 0);
-          pragma Loop_Invariant (Result * Factor ** Exp = Left ** Right);
-          pragma Loop_Variant (Decreases => Exp);
- 
           if Exp rem 2 /= 0 then
-             pragma Assert
-               (Result * (Factor * Factor ** (Exp - 1)) = Left ** Right);
-             pragma Assert
-               ((Result * Factor) * Factor ** (Exp - 1) = Left ** Right);
- 
              Result := Result * Factor;
           end if;
  
--- 48,54 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-exponu.ads gcc-16-20250608/gcc/ada/libgnat/s-exponu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-exponu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-exponu.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,55 ****
  
  --  This function implements unsigned integer exponentiation
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced
- --  by setting the corresponding assertion policy to Ignore. Postconditions
- --  and contract cases should not be executed at runtime as well, in order
- --  not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  generic
- 
     type Int is mod <>;
  
! function System.Exponu (Left : Int; Right : Natural) return Int
! with
!   SPARK_Mode,
!   Post => System.Exponu'Result = Left ** Right;
  --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
  --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
  --  is set to 1 and then computed in a loop as follows:
--- 31,40 ----
  
  --  This function implements unsigned integer exponentiation
  
  generic
     type Int is mod <>;
  
! function System.Exponu (Left : Int; Right : Natural) return Int;
  --  Calculate ``Left`` ** ``Right``. If ``Left`` is 0 then 0 is returned
  --  and if ``Right`` is 0 then 1 is returned. In all other cases the result
  --  is set to 1 and then computed in a loop as follows:
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-expuns.ads gcc-16-20250608/gcc/ada/libgnat/s-expuns.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-expuns.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-expuns.ads	Sun Jun  8 22:32:16 2025
***************
*** 35,58 ****
  --  The result is always full width, the caller must do a masking operation
  --  the modulus is less than 2 ** (Unsigned'Size).
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced
- --  by setting the corresponding assertion policy to Ignore. Postconditions
- --  and contract cases should not be executed at runtime as well, in order
- --  not to slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_Uns
    with SPARK_Mode
  is
- 
     subtype Unsigned is Unsigned_Types.Unsigned;
  
     function Exp_Unsigned is new Exponu (Unsigned);
--- 35,46 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imaged.adb gcc-16-20250608/gcc/ada/libgnat/s-imaged.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-imaged.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imaged.adb	Sun Jun  8 22:32:16 2025
***************
*** 31,63 ****
  
  with System.Image_I;
  with System.Img_Util; use System.Img_Util;
- with System.Value_I_Spec;
- with System.Value_U_Spec;
  
  package body System.Image_D is
  
!    --  Contracts, ghost code, loop invariants and assertions in this unit are
!    --  meant for analysis only, not for run-time checking, as it would be too
!    --  costly otherwise. This is enforced by setting the assertion policy to
!    --  Ignore.
! 
!    pragma Assertion_Policy (Assert             => Ignore,
!                             Assert_And_Cut     => Ignore,
!                             Contract_Cases     => Ignore,
!                             Ghost              => Ignore,
!                             Loop_Invariant     => Ignore,
!                             Pre                => Ignore,
!                             Post               => Ignore,
!                             Subprogram_Variant => Ignore);
! 
!    package Uns_Spec is new System.Value_U_Spec (Uns);
!    package Int_Spec is new System.Value_I_Spec (Int, Uns, Uns_Spec);
! 
!    package Image_I is new System.Image_I
!      (Int    => Int,
!       Uns    => Uns,
!       U_Spec => Uns_Spec,
!       I_Spec => Int_Spec);
  
     procedure Set_Image_Integer
       (V : Int;
--- 31,40 ----
  
  with System.Image_I;
  with System.Img_Util; use System.Img_Util;
  
  package body System.Image_D is
  
!    package Image_I is new System.Image_I (Int);
  
     procedure Set_Image_Integer
       (V : Int;
*************** package body System.Image_D is
*** 76,82 ****
        Scale : Integer)
     is
        pragma Assert (S'First = 1);
- 
     begin
        --  Add space at start for non-negative numbers
  
--- 53,58 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imaged.ads gcc-16-20250608/gcc/ada/libgnat/s-imaged.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imaged.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imaged.ads	Sun Jun  8 22:32:16 2025
***************
*** 34,43 ****
  --  types.
  
  generic
- 
     type Int is range <>;
-    type Uns is mod <>;
- 
  package System.Image_D is
  
     procedure Image_Decimal
--- 34,40 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imagef.adb gcc-16-20250608/gcc/ada/libgnat/s-imagef.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-imagef.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imagef.adb	Sun Jun  8 22:32:16 2025
***************
*** 31,55 ****
  
  with System.Image_I;
  with System.Img_Util; use System.Img_Util;
- with System.Value_I_Spec;
- with System.Value_U_Spec;
  
  package body System.Image_F is
  
-    --  Contracts, ghost code, loop invariants and assertions in this unit are
-    --  meant for analysis only, not for run-time checking, as it would be too
-    --  costly otherwise. This is enforced by setting the assertion policy to
-    --  Ignore.
- 
-    pragma Assertion_Policy (Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Contract_Cases     => Ignore,
-                             Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Pre                => Ignore,
-                             Post               => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     Maxdigs : constant Natural := Int'Width - 2;
     --  Maximum number of decimal digits that can be represented in an Int.
     --  The "-2" accounts for the sign and one extra digit, since we need the
--- 31,39 ----
*************** package body System.Image_F is
*** 70,83 ****
     --  if the small is larger than 1, and smaller than 2**(Int'Size - 1) / 10
     --  if the small is smaller than 1.
  
!    package Uns_Spec is new System.Value_U_Spec (Uns);
!    package Int_Spec is new System.Value_I_Spec (Int, Uns, Uns_Spec);
! 
!    package Image_I is new System.Image_I
!      (Int    => Int,
!       Uns    => Uns,
!       U_Spec => Uns_Spec,
!       I_Spec => Int_Spec);
  
     procedure Set_Image_Integer
       (V : Int;
--- 54,60 ----
     --  if the small is larger than 1, and smaller than 2**(Int'Size - 1) / 10
     --  if the small is smaller than 1.
  
!    package Image_I is new System.Image_I (Int);
  
     procedure Set_Image_Integer
       (V : Int;
*************** package body System.Image_F is
*** 233,239 ****
        Aft0 : Natural)
     is
        pragma Assert (S'First = 1);
- 
     begin
        --  Add space at start for non-negative numbers
  
--- 210,215 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imagef.ads gcc-16-20250608/gcc/ada/libgnat/s-imagef.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imagef.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imagef.ads	Sun Jun  8 22:32:16 2025
***************
*** 34,42 ****
  --  point types whose Small is the ratio of two Int values.
  
  generic
- 
     type Int is range <>;
-    type Uns is mod <>;
  
     with procedure Scaled_Divide
            (X, Y, Z : Int;
--- 34,40 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imagei.adb gcc-16-20250608/gcc/ada/libgnat/s-imagei.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-imagei.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imagei.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,134 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
- with System.Val_Spec;
- 
  package body System.Image_I is
  
-    --  Ghost code, loop invariants and assertions in this unit are meant for
-    --  analysis only, not for run-time checking, as it would be too costly
-    --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Pre                => Ignore,
-                             Post               => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     subtype Non_Positive is Int range Int'First .. 0;
  
-    function Uns_Of_Non_Positive (T : Non_Positive) return Uns is
-      (if T = Int'First then Uns (Int'Last) + 1 else Uns (-T));
- 
     procedure Set_Digits
       (T : Non_Positive;
        S : in out String;
!       P : in out Natural)
!    with
!      Pre  => P < Integer'Last
!        and then S'Last < Integer'Last
!        and then S'First <= P + 1
!        and then S'First <= S'Last
!        and then P <= S'Last - Unsigned_Width_Ghost + 1,
!      Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
!        and then P in P'Old + 1 .. S'Last
!        and then UP.Only_Decimal_Ghost (S, From => P'Old + 1, To => P)
!        and then UP.Scan_Based_Number_Ghost (S, From => P'Old + 1, To => P)
!          = UP.Wrap_Option (Uns_Of_Non_Positive (T));
     --  Set digits of absolute value of T, which is zero or negative. We work
     --  with the negative of the value so that the largest negative number is
     --  not a special case.
  
-    package Unsigned_Conversion is new Unsigned_Conversions (Int => Uns);
- 
-    function Big (Arg : Uns) return Big_Integer renames
-      Unsigned_Conversion.To_Big_Integer;
- 
-    function From_Big (Arg : Big_Integer) return Uns renames
-      Unsigned_Conversion.From_Big_Integer;
- 
-    Big_10 : constant Big_Integer := Big (10) with Ghost;
- 
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Non_Zero (X : Uns)
-    with
-      Ghost,
-      Pre  => X /= 0,
-      Post => Big (X) /= 0;
- 
-    procedure Lemma_Div_Commutation (X, Y : Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y / Z = X / (Y * Z);
- 
-    ---------------------------
-    -- Lemma_Div_Commutation --
-    ---------------------------
- 
-    procedure Lemma_Non_Zero (X : Uns) is null;
-    procedure Lemma_Div_Commutation (X, Y : Uns) is null;
- 
-    ---------------------
-    -- Lemma_Div_Twice --
-    ---------------------
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-       XY  : constant Big_Natural := X / Y;
-       YZ  : constant Big_Natural := Y * Z;
-       XYZ : constant Big_Natural := X / Y / Z;
-       R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-    begin
-       pragma Assert (X = XY * Y + (X rem Y));
-       pragma Assert (XY = XY / Z * Z + (XY rem Z));
-       pragma Assert (X = XYZ * YZ + R);
-       pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-       pragma Assert (R <= YZ - 1);
-       pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-       pragma Assert (X / YZ = XYZ + R / YZ);
-    end Lemma_Div_Twice;
- 
     -------------------
     -- Image_Integer --
     -------------------
--- 29,46 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  package body System.Image_I is
  
     subtype Non_Positive is Int range Int'First .. 0;
  
     procedure Set_Digits
       (T : Non_Positive;
        S : in out String;
!       P : in out Natural);
     --  Set digits of absolute value of T, which is zero or negative. We work
     --  with the negative of the value so that the largest negative number is
     --  not a special case.
  
     -------------------
     -- Image_Integer --
     -------------------
*************** package body System.Image_I is
*** 139,182 ****
        P : out Natural)
     is
        pragma Assert (S'First = 1);
- 
-       procedure Prove_Value_Integer
-       with
-         Ghost,
-         Pre => S'First = 1
-           and then S'Last < Integer'Last
-           and then P in 2 .. S'Last
-           and then S (1) in ' ' | '-'
-           and then (S (1) = '-') = (V < 0)
-           and then UP.Only_Decimal_Ghost (S, From => 2, To => P)
-           and then UP.Scan_Based_Number_Ghost (S, From => 2, To => P)
-             = UP.Wrap_Option (IP.Abs_Uns_Of_Int (V)),
-         Post => not System.Val_Spec.Only_Space_Ghost (S, 1, P)
-           and then IP.Is_Integer_Ghost (S (1 .. P))
-           and then IP.Is_Value_Integer_Ghost (S (1 .. P), V);
-       --  Ghost lemma to prove the value of Value_Integer from the value of
-       --  Scan_Based_Number_Ghost and the sign on a decimal string.
- 
-       -------------------------
-       -- Prove_Value_Integer --
-       -------------------------
- 
-       procedure Prove_Value_Integer is
-          Str : constant String := S (1 .. P);
-       begin
-          pragma Assert (Str'First = 1);
-          pragma Assert (Str (2) /= ' ');
-          pragma Assert
-            (UP.Only_Decimal_Ghost (Str, From => 2, To => P));
-          UP.Prove_Scan_Based_Number_Ghost_Eq (S, Str, From => 2, To => P);
-          pragma Assert
-            (UP.Scan_Based_Number_Ghost (Str, From => 2, To => P)
-             = UP.Wrap_Option (IP.Abs_Uns_Of_Int (V)));
-          IP.Prove_Scan_Only_Decimal_Ghost (Str, V);
-       end Prove_Value_Integer;
- 
-    --  Start of processing for Image_Integer
- 
     begin
        if V >= 0 then
           pragma Annotate (CodePeer, False_Positive, "test always false",
--- 51,56 ----
*************** package body System.Image_I is
*** 190,207 ****
           pragma Assert (P < S'Last - 1);
        end if;
  
!       declare
!          P_Prev : constant Integer := P with Ghost;
!          Offset : constant Positive := (if V >= 0 then 1 else 2) with Ghost;
!       begin
!          Set_Image_Integer (V, S, P);
! 
!          pragma Assert (P_Prev + Offset = 2);
!       end;
!       pragma Assert (if V >= 0 then S (1) = ' ');
!       pragma Assert (S (1) in ' ' | '-');
! 
!       Prove_Value_Integer;
     end Image_Integer;
  
     ----------------
--- 64,70 ----
           pragma Assert (P < S'Last - 1);
        end if;
  
!       Set_Image_Integer (V, S, P);
     end Image_Integer;
  
     ----------------
*************** package body System.Image_I is
*** 215,350 ****
     is
        Nb_Digits : Natural := 0;
        Value     : Non_Positive := T;
- 
-       --  Local ghost variables
- 
-       Pow        : Big_Positive := 1 with Ghost;
-       S_Init     : constant String := S with Ghost;
-       Uns_T      : constant Uns := Uns_Of_Non_Positive (T) with Ghost;
-       Uns_Value  : Uns := Uns_Of_Non_Positive (Value) with Ghost;
-       Prev_Value : Uns with Ghost;
-       Prev_S     : String := S with Ghost;
- 
-       --  Local ghost lemmas
- 
-       procedure Prove_Character_Val (RU : Uns; RI : Non_Positive)
-       with
-         Ghost,
-         Post => RU rem 10 in 0 .. 9
-           and then -(RI rem 10) in 0 .. 9
-           and then Character'Val (48 + RU rem 10) in '0' .. '9'
-           and then Character'Val (48 - RI rem 10) in '0' .. '9';
-       --  Ghost lemma to prove the value of a character corresponding to the
-       --  next figure.
- 
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns)
-       with
-         Ghost,
-         Pre  => Quot = Val / 10
-           and then Rest = Val rem 10,
-         Post => Uns'Last - Rest >= 10 * Quot and then Val = 10 * Quot + Rest;
-       --  Ghost lemma to prove the relation between the quotient/remainder of
-       --  division by 10 and the initial value.
- 
-       procedure Prove_Hexa_To_Unsigned_Ghost (RU : Uns; RI : Int)
-       with
-         Ghost,
-         Pre  => RU in 0 .. 9
-           and then RI in 0 .. 9,
-         Post => UP.Hexa_To_Unsigned_Ghost
-             (Character'Val (48 + RU)) = RU
-           and then UP.Hexa_To_Unsigned_Ghost
-             (Character'Val (48 + RI)) = Uns (RI);
-       --  Ghost lemma to prove that Hexa_To_Unsigned_Ghost returns the source
-       --  figure when applied to the corresponding character.
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-         with
-           Ghost,
-           Pre =>
-             S'First = Prev_S'First and then S'Last = Prev_S'Last
-             and then S'Last < Natural'Last and then
-             Max in S'Range and then P in S'First .. Max and then
-             (for all I in P + 1 .. Max => Prev_S (I) in '0' .. '9')
-             and then (for all I in P + 1 .. Max => Prev_S (I) = S (I))
-             and then S (P) in '0' .. '9'
-             and then V <= Uns'Last / 10
-             and then Uns'Last - UP.Hexa_To_Unsigned_Ghost (S (P))
-               >= 10 * V
-             and then Prev_V =
-               V * 10 + UP.Hexa_To_Unsigned_Ghost (S (P))
-             and then
-               (if P = Max then Prev_V = Res
-                else UP.Scan_Based_Number_Ghost
-                  (Str  => Prev_S,
-                   From => P + 1,
-                   To   => Max,
-                   Base => 10,
-                   Acc  => Prev_V) = UP.Wrap_Option (Res)),
-           Post =>
-             (for all I in P .. Max => S (I) in '0' .. '9')
-             and then UP.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P,
-                To   => Max,
-                Base => 10,
-                Acc  => V) = UP.Wrap_Option (Res);
-       --  Ghost lemma to prove that Scan_Based_Number_Ghost is preserved
-       --  through an iteration of the loop.
- 
-       procedure Prove_Uns_Of_Non_Positive_Value
-       with
-         Ghost,
-         Pre  => Uns_Value = Uns_Of_Non_Positive (Value),
-         Post => Uns_Value / 10 = Uns_Of_Non_Positive (Value / 10)
-           and then Uns_Value rem 10 = Uns_Of_Non_Positive (Value rem 10);
-       --  Ghost lemma to prove that the relation between Value and its unsigned
-       --  version is preserved.
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Prove_Character_Val (RU : Uns; RI : Non_Positive) is null;
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns) is null;
-       procedure Prove_Hexa_To_Unsigned_Ghost (RU : Uns; RI : Int) is null;
-       procedure Prove_Uns_Of_Non_Positive_Value is null;
- 
-       ---------------------
-       -- Prove_Scan_Iter --
-       ---------------------
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-       is
-          pragma Unreferenced (Res);
-       begin
-          UP.Lemma_Scan_Based_Number_Ghost_Step
-            (Str  => S,
-             From => P,
-             To   => Max,
-             Base => 10,
-             Acc  => V);
-          if P < Max then
-             UP.Prove_Scan_Based_Number_Ghost_Eq
-               (Prev_S, S, P + 1, Max, 10, Prev_V);
-          else
-             UP.Lemma_Scan_Based_Number_Ghost_Base
-               (Str  => S,
-                From => P + 1,
-                To   => Max,
-                Base => 10,
-                Acc  => Prev_V);
-          end if;
-       end Prove_Scan_Iter;
- 
-    --  Start of processing for Set_Digits
- 
     begin
        pragma Assert (P >= S'First - 1 and P < S'Last);
        --  No check is done since, as documented in the Set_Image_Integer
--- 78,83 ----
*************** package body System.Image_I is
*** 354,443 ****
        --  First we compute the number of characters needed for representing
        --  the number.
        loop
-          Lemma_Div_Commutation (Uns_Of_Non_Positive (Value), 10);
-          Lemma_Div_Twice (Big (Uns_Of_Non_Positive (T)),
-                           Big_10 ** Nb_Digits, Big_10);
-          Prove_Uns_Of_Non_Positive_Value;
- 
           Value := Value / 10;
           Nb_Digits := Nb_Digits + 1;
  
-          Uns_Value := Uns_Value / 10;
-          Pow := Pow * 10;
- 
-          pragma Loop_Invariant (Uns_Value = Uns_Of_Non_Positive (Value));
-          pragma Loop_Invariant (Nb_Digits in 1 .. Unsigned_Width_Ghost - 1);
-          pragma Loop_Invariant (Pow = Big_10 ** Nb_Digits);
-          pragma Loop_Invariant (Big (Uns_Value) = Big (Uns_T) / Pow);
-          pragma Loop_Variant (Increases => Value);
- 
           exit when Value = 0;
- 
-          Lemma_Non_Zero (Uns_Value);
-          pragma Assert (Pow <= Big (Uns'Last));
        end loop;
  
        Value := T;
-       Uns_Value := Uns_Of_Non_Positive (T);
-       Pow := 1;
- 
-       pragma Assert (Uns_Value = From_Big (Big (Uns_T) / Big_10 ** 0));
  
        --  We now populate digits from the end of the string to the beginning
        for J in reverse  1 .. Nb_Digits loop
-          Lemma_Div_Commutation (Uns_Value, 10);
-          Lemma_Div_Twice (Big (Uns_T), Big_10 ** (Nb_Digits - J), Big_10);
-          Prove_Character_Val (Uns_Value, Value);
-          Prove_Hexa_To_Unsigned_Ghost (Uns_Value rem 10, -(Value rem 10));
-          Prove_Uns_Of_Non_Positive_Value;
- 
-          Prev_Value := Uns_Value;
-          Prev_S := S;
-          Pow := Pow * 10;
-          Uns_Value := Uns_Value / 10;
- 
           S (P + J) := Character'Val (48 - (Value rem 10));
           Value := Value / 10;
- 
-          Prove_Euclidian
-            (Val  => Prev_Value,
-             Quot => Uns_Value,
-             Rest => UP.Hexa_To_Unsigned_Ghost (S (P + J)));
- 
-          Prove_Scan_Iter
-            (S, Prev_S, Uns_Value, Prev_Value, Uns_T, P + J, P + Nb_Digits);
- 
-          pragma Loop_Invariant (Uns_Value = Uns_Of_Non_Positive (Value));
-          pragma Loop_Invariant (Uns_Value <= Uns'Last / 10);
-          pragma Loop_Invariant
-            (for all K in S'First .. P => S (K) = S_Init (K));
-          pragma Loop_Invariant
-            (UP.Only_Decimal_Ghost (S, P + J, P + Nb_Digits));
-          pragma Loop_Invariant
-            (for all K in P + J .. P + Nb_Digits => S (K) in '0' .. '9');
-          pragma Loop_Invariant (Pow = Big_10 ** (Nb_Digits - J + 1));
-          pragma Loop_Invariant (Big (Uns_Value) = Big (Uns_T) / Pow);
-          pragma Loop_Invariant
-            (UP.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P + J,
-                To   => P + Nb_Digits,
-                Base => 10,
-                Acc  => Uns_Value)
-               = UP.Wrap_Option (Uns_T));
        end loop;
  
-       pragma Assert (Big (Uns_Value) = Big (Uns_T) / Big_10 ** (Nb_Digits));
-       pragma Assert (Uns_Value = 0);
-       pragma Assert
-         (UP.Scan_Based_Number_Ghost
-            (Str  => S,
-             From => P + 1,
-             To   => P + Nb_Digits,
-             Base => 10,
-             Acc  => Uns_Value)
-          = UP.Wrap_Option (Uns_T));
- 
        P := P + Nb_Digits;
     end Set_Digits;
  
--- 87,106 ----
*************** package body System.Image_I is
*** 448,459 ****
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural)
!    is
     begin
        if V >= 0 then
           Set_Digits (-V, S, P);
- 
        else
           pragma Assert (P >= S'First - 1 and P < S'Last);
           --  No check is done since, as documented in the specification,
--- 111,120 ----
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural) is
     begin
        if V >= 0 then
           Set_Digits (-V, S, P);
        else
           pragma Assert (P >= S'First - 1 and P < S'Last);
           --  No check is done since, as documented in the specification,
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imagei.ads gcc-16-20250608/gcc/ada/libgnat/s-imagei.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imagei.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imagei.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,80 ****
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_I_Spec;
- with System.Value_U_Spec;
- 
  generic
     type Int is range <>;
-    type Uns is mod <>;
- 
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
-    with package I_Spec is new System.Value_I_Spec
-      (Int => Int, Uns => Uns, U_Spec => U_Spec) with Ghost;
- 
  package System.Image_I is
-    package IP renames I_Spec;
-    package UP renames U_Spec;
-    use type UP.Uns_Option;
- 
-    Unsigned_Width_Ghost : constant Natural := U_Spec.Max_Log10 + 2 with Ghost;
  
     procedure Image_Integer
       (V : Int;
        S : in out String;
!       P : out Natural)
!    with
!      Pre  => S'First = 1
!        and then S'Last < Integer'Last
!        and then S'Last >= Unsigned_Width_Ghost,
!      Post => P in S'Range
!        and then IP.Is_Value_Integer_Ghost (S (1 .. P), V);
     --  Computes Int'Image (V) and stores the result in S (1 .. P)
     --  setting the resulting value of P. The caller guarantees that S
     --  is long enough to hold the result, and that S'First is 1.
--- 33,46 ----
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types.
  
  generic
     type Int is range <>;
  package System.Image_I is
  
     procedure Image_Integer
       (V : Int;
        S : in out String;
!       P : out Natural);
     --  Computes Int'Image (V) and stores the result in S (1 .. P)
     --  setting the resulting value of P. The caller guarantees that S
     --  is long enough to hold the result, and that S'First is 1.
*************** package System.Image_I is
*** 82,112 ****
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural)
!    with
!      Pre  => P < Integer'Last
!        and then S'Last < Integer'Last
!        and then S'First <= P + 1
!        and then S'First <= S'Last
!        and then
!          (if V >= 0 then
!             P <= S'Last - Unsigned_Width_Ghost + 1
!           else
!             P <= S'Last - Unsigned_Width_Ghost),
!      Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
!        and then
!          (declare
!             Minus  : constant Boolean := S (P'Old + 1) = '-';
!             Offset : constant Positive := (if V >= 0 then 1 else 2);
!             Abs_V  : constant Uns := IP.Abs_Uns_Of_Int (V);
!           begin
!             Minus = (V < 0)
!               and then P in P'Old + Offset .. S'Last
!               and then UP.Only_Decimal_Ghost
!                 (S, From => P'Old + Offset, To => P)
!               and then UP.Scan_Based_Number_Ghost
!                 (S, From => P'Old + Offset, To => P)
!                 = UP.Wrap_Option (Abs_V));
     --  Stores the image of V in S starting at S (P + 1), P is updated to point
     --  to the last character stored. The value stored is identical to the value
     --  of Int'Image (V) except that no leading space is stored when V is
--- 48,54 ----
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural);
     --  Stores the image of V in S starting at S (P + 1), P is updated to point
     --  to the last character stored. The value stored is identical to the value
     --  of Int'Image (V) except that no leading space is stored when V is
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imageu.adb gcc-16-20250608/gcc/ada/libgnat/s-imageu.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-imageu.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imageu.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,107 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- with System.Val_Spec;
- 
  package body System.Image_U is
  
-    --  Ghost code, loop invariants and assertions in this unit are meant for
-    --  analysis only, not for run-time checking, as it would be too costly
-    --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
-    package Unsigned_Conversion is new Unsigned_Conversions (Int => Uns);
- 
-    function Big (Arg : Uns) return Big_Integer renames
-      Unsigned_Conversion.To_Big_Integer;
- 
-    function From_Big (Arg : Big_Integer) return Uns renames
-      Unsigned_Conversion.From_Big_Integer;
- 
-    Big_10 : constant Big_Integer := Big (10) with Ghost;
- 
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Non_Zero (X : Uns)
-    with
-      Ghost,
-      Pre  => X /= 0,
-      Post => Big (X) /= 0;
- 
-    procedure Lemma_Div_Commutation (X, Y : Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y / Z = X / (Y * Z);
- 
-    ---------------------------
-    -- Lemma_Div_Commutation --
-    ---------------------------
- 
-    procedure Lemma_Non_Zero (X : Uns) is null;
-    procedure Lemma_Div_Commutation (X, Y : Uns) is null;
- 
-    ---------------------
-    -- Lemma_Div_Twice --
-    ---------------------
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-       XY  : constant Big_Natural := X / Y;
-       YZ  : constant Big_Natural := Y * Z;
-       XYZ : constant Big_Natural := X / Y / Z;
-       R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-    begin
-       pragma Assert (X = XY * Y + (X rem Y));
-       pragma Assert (XY = XY / Z * Z + (XY rem Z));
-       pragma Assert (X = XYZ * YZ + R);
-       pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-       pragma Assert (R <= YZ - 1);
-       pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-       pragma Assert (X / YZ = XYZ + R / YZ);
-    end Lemma_Div_Twice;
- 
     --------------------
     -- Image_Unsigned --
     --------------------
--- 29,36 ----
*************** package body System.Image_U is
*** 112,161 ****
        P : out Natural)
     is
        pragma Assert (S'First = 1);
- 
-       procedure Prove_Value_Unsigned
-       with
-         Ghost,
-         Pre => S'First = 1
-           and then S'Last < Integer'Last
-           and then P in 2 .. S'Last
-           and then S (1) = ' '
-           and then U_Spec.Only_Decimal_Ghost (S, From => 2, To => P)
-           and then U_Spec.Scan_Based_Number_Ghost (S, From => 2, To => P)
-             = U_Spec.Wrap_Option (V),
-         Post => not System.Val_Spec.Only_Space_Ghost (S, 1, P)
-           and then U_Spec.Is_Unsigned_Ghost (S (1 .. P))
-           and then U_Spec.Is_Value_Unsigned_Ghost (S (1 .. P), V);
-       --  Ghost lemma to prove the value of Value_Unsigned from the value of
-       --  Scan_Based_Number_Ghost on a decimal string.
- 
-       --------------------------
-       -- Prove_Value_Unsigned --
-       --------------------------
- 
-       procedure Prove_Value_Unsigned is
-          Str : constant String := S (1 .. P);
-       begin
-          pragma Assert (Str'First = 1);
-          pragma Assert (S (2) /= ' ');
-          pragma Assert
-            (U_Spec.Only_Decimal_Ghost (Str, From => 2, To => P));
-          U_Spec.Prove_Scan_Based_Number_Ghost_Eq
-            (S, Str, From => 2, To => P);
-          pragma Assert
-            (U_Spec.Scan_Based_Number_Ghost (Str, From => 2, To => P)
-             = U_Spec.Wrap_Option (V));
-          U_Spec.Prove_Scan_Only_Decimal_Ghost (Str, V);
-       end Prove_Value_Unsigned;
- 
-    --  Start of processing for Image_Unsigned
- 
     begin
        S (1) := ' ';
        P := 1;
        Set_Image_Unsigned (V, S, P);
- 
-       Prove_Value_Unsigned;
     end Image_Unsigned;
  
     ------------------------
--- 41,50 ----
*************** package body System.Image_U is
*** 169,286 ****
     is
        Nb_Digits : Natural := 0;
        Value     : Uns := V;
- 
-       --  Local ghost variables
- 
-       Pow        : Big_Positive := 1 with Ghost;
-       S_Init     : constant String := S with Ghost;
-       Prev_Value : Uns with Ghost;
-       Prev_S     : String := S with Ghost;
- 
-       --  Local ghost lemmas
- 
-       procedure Prove_Character_Val (R : Uns)
-       with
-         Ghost,
-         Post => R rem 10 in 0 .. 9
-           and then Character'Val (48 + R rem 10) in '0' .. '9';
-       --  Ghost lemma to prove the value of a character corresponding to the
-       --  next figure.
- 
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns)
-       with
-         Ghost,
-         Pre  => Quot = Val / 10
-           and then Rest = Val rem 10,
-         Post => Uns'Last - Rest >= 10 * Quot and then Val = 10 * Quot + Rest;
-       --  Ghost lemma to prove the relation between the quotient/remainder of
-       --  division by 10 and the initial value.
- 
-       procedure Prove_Hexa_To_Unsigned_Ghost (R : Uns)
-       with
-         Ghost,
-         Pre  => R in 0 .. 9,
-         Post => U_Spec.Hexa_To_Unsigned_Ghost (Character'Val (48 + R)) = R;
-       --  Ghost lemma to prove that Hexa_To_Unsigned_Ghost returns the source
-       --  figure when applied to the corresponding character.
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-         with
-           Ghost,
-           Pre =>
-             S'First = Prev_S'First and then S'Last = Prev_S'Last
-             and then S'Last < Natural'Last and then
-             Max in S'Range and then P in S'First .. Max and then
-             (for all I in P + 1 .. Max => Prev_S (I) in '0' .. '9')
-             and then (for all I in P + 1 .. Max => Prev_S (I) = S (I))
-             and then S (P) in '0' .. '9'
-             and then V <= Uns'Last / 10
-             and then Uns'Last - U_Spec.Hexa_To_Unsigned_Ghost (S (P))
-               >= 10 * V
-             and then Prev_V =
-               V * 10 + U_Spec.Hexa_To_Unsigned_Ghost (S (P))
-             and then
-               (if P = Max then Prev_V = Res
-                else U_Spec.Scan_Based_Number_Ghost
-                  (Str  => Prev_S,
-                   From => P + 1,
-                   To   => Max,
-                   Base => 10,
-                   Acc  => Prev_V) = U_Spec.Wrap_Option (Res)),
-           Post =>
-             (for all I in P .. Max => S (I) in '0' .. '9')
-             and then U_Spec.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P,
-                To   => Max,
-                Base => 10,
-                Acc  => V) = U_Spec.Wrap_Option (Res);
-       --  Ghost lemma to prove that Scan_Based_Number_Ghost is preserved
-       --  through an iteration of the loop.
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Prove_Character_Val (R : Uns) is null;
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns) is null;
-       procedure Prove_Hexa_To_Unsigned_Ghost (R : Uns) is null;
- 
-       ---------------------
-       -- Prove_Scan_Iter --
-       ---------------------
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-       is
-          pragma Unreferenced (Res);
-       begin
-          U_Spec.Lemma_Scan_Based_Number_Ghost_Step
-            (Str  => S,
-             From => P,
-             To   => Max,
-             Base => 10,
-             Acc  => V);
-          if P < Max then
-             U_Spec.Prove_Scan_Based_Number_Ghost_Eq
-               (Prev_S, S, P + 1, Max, 10, Prev_V);
-          else
-             U_Spec.Lemma_Scan_Based_Number_Ghost_Base
-               (Str  => S,
-                From => P + 1,
-                To   => Max,
-                Base => 10,
-                Acc  => Prev_V);
-          end if;
-       end Prove_Scan_Iter;
- 
-    --  Start of processing for Set_Image_Unsigned
- 
     begin
        pragma Assert (P >= S'First - 1 and then P < S'Last and then
                       P < Natural'Last);
--- 58,63 ----
*************** package body System.Image_U is
*** 290,359 ****
        --  First we compute the number of characters needed for representing
        --  the number.
        loop
-          Lemma_Div_Commutation (Value, 10);
-          Lemma_Div_Twice (Big (V), Big_10 ** Nb_Digits, Big_10);
- 
           Value := Value / 10;
           Nb_Digits := Nb_Digits + 1;
-          Pow := Pow * 10;
- 
-          pragma Loop_Invariant (Nb_Digits in 1 .. Unsigned_Width_Ghost - 1);
-          pragma Loop_Invariant (Pow = Big_10 ** Nb_Digits);
-          pragma Loop_Invariant (Big (Value) = Big (V) / Pow);
-          pragma Loop_Variant (Decreases => Value);
  
           exit when Value = 0;
- 
-          Lemma_Non_Zero (Value);
-          pragma Assert (Pow <= Big (Uns'Last));
        end loop;
-       pragma Assert (Big (V) / (Big_10 ** Nb_Digits) = 0);
  
        Value := V;
-       Pow := 1;
- 
-       pragma Assert (Value = From_Big (Big (V) / Big_10 ** 0));
  
        --  We now populate digits from the end of the string to the beginning
        for J in reverse 1 .. Nb_Digits loop
-          Lemma_Div_Commutation (Value, 10);
-          Lemma_Div_Twice (Big (V), Big_10 ** (Nb_Digits - J), Big_10);
-          Prove_Character_Val (Value);
-          Prove_Hexa_To_Unsigned_Ghost (Value rem 10);
- 
-          Prev_Value := Value;
-          Prev_S := S;
-          Pow := Pow * 10;
           S (P + J) := Character'Val (48 + (Value rem 10));
           Value := Value / 10;
- 
-          Prove_Euclidian
-            (Val  => Prev_Value,
-             Quot => Value,
-             Rest => U_Spec.Hexa_To_Unsigned_Ghost (S (P + J)));
- 
-          Prove_Scan_Iter
-            (S, Prev_S, Value, Prev_Value, V, P + J, P + Nb_Digits);
- 
-          pragma Loop_Invariant (Value <= Uns'Last / 10);
-          pragma Loop_Invariant
-            (for all K in S'First .. P => S (K) = S_Init (K));
-          pragma Loop_Invariant
-            (U_Spec.Only_Decimal_Ghost
-               (S, From => P + J, To => P + Nb_Digits));
-          pragma Loop_Invariant (Pow = Big_10 ** (Nb_Digits - J + 1));
-          pragma Loop_Invariant (Big (Value) = Big (V) / Pow);
-          pragma Loop_Invariant
-            (U_Spec.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P + J,
-                To   => P + Nb_Digits,
-                Base => 10,
-                Acc  => Value)
-               = U_Spec.Wrap_Option (V));
        end loop;
-       pragma Assert (Big (Value) = Big (V) / (Big_10 ** Nb_Digits));
-       pragma Assert (Value = 0);
  
        P := P + Nb_Digits;
     end Set_Image_Unsigned;
--- 67,85 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imageu.ads gcc-16-20250608/gcc/ada/libgnat/s-imageu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imageu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imageu.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,76 ****
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
  --  types.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_U_Spec;
- 
  generic
- 
     type Uns is mod <>;
  
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
- 
  package System.Image_U is
-    use all type U_Spec.Uns_Option;
- 
-    Unsigned_Width_Ghost : constant Natural := U_Spec.Max_Log10 + 2 with Ghost;
  
     procedure Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : out Natural)
!    with
!      Pre  => S'First = 1
!        and then S'Last < Integer'Last
!        and then S'Last >= Unsigned_Width_Ghost,
!      Post => P in S'Range
!        and then U_Spec.Is_Value_Unsigned_Ghost (S (1 .. P), V);
!    pragma Inline (Image_Unsigned);
     --  Computes Uns'Image (V) and stores the result in S (1 .. P) setting
     --  the resulting value of P. The caller guarantees that S is long enough to
     --  hold the result, and that S'First is 1.
--- 33,47 ----
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
  --  types.
  
  generic
     type Uns is mod <>;
  
  package System.Image_U is
  
     procedure Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : out Natural) with Inline;
     --  Computes Uns'Image (V) and stores the result in S (1 .. P) setting
     --  the resulting value of P. The caller guarantees that S is long enough to
     --  hold the result, and that S'First is 1.
*************** package System.Image_U is
*** 78,96 ****
     procedure Set_Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : in out Natural)
!    with
!      Pre  => P < Integer'Last
!        and then S'Last < Integer'Last
!        and then S'First <= P + 1
!        and then S'First <= S'Last
!        and then P <= S'Last - Unsigned_Width_Ghost + 1,
!      Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
!        and then P in P'Old + 1 .. S'Last
!        and then U_Spec.Only_Decimal_Ghost (S, From => P'Old + 1, To => P)
!        and then U_Spec.Scan_Based_Number_Ghost
!          (S, From => P'Old + 1, To => P)
!          = U_Spec.Wrap_Option (V);
     --  Stores the image of V in S starting at S (P + 1), P is updated to point
     --  to the last character stored. The value stored is identical to the value
     --  of Uns'Image (V) except that no leading space is stored. The caller
--- 49,55 ----
     procedure Set_Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : in out Natural);
     --  Stores the image of V in S starting at S (P + 1), P is updated to point
     --  to the last character stored. The value stored is identical to the value
     --  of Uns'Image (V) except that no leading space is stored. The caller
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imde128.ads gcc-16-20250608/gcc/ada/libgnat/s-imde128.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imde128.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imde128.ads	Sun Jun  8 22:32:16 2025
*************** with System.Image_D;
*** 39,47 ****
  package System.Img_Decimal_128 is
  
     subtype Int128 is Interfaces.Integer_128;
-    subtype Uns128 is Interfaces.Unsigned_128;
  
!    package Impl is new Image_D (Int128, Uns128);
  
     procedure Image_Decimal128
       (V     : Int128;
--- 39,46 ----
  package System.Img_Decimal_128 is
  
     subtype Int128 is Interfaces.Integer_128;
  
!    package Impl is new Image_D (Int128);
  
     procedure Image_Decimal128
       (V     : Int128;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imde32.ads gcc-16-20250608/gcc/ada/libgnat/s-imde32.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imde32.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imde32.ads	Sun Jun  8 22:32:16 2025
*************** with System.Image_D;
*** 39,47 ****
  package System.Img_Decimal_32 is
  
     subtype Int32 is Interfaces.Integer_32;
-    subtype Uns32 is Interfaces.Unsigned_32;
  
!    package Impl is new Image_D (Int32, Uns32);
  
     procedure Image_Decimal32
       (V     : Int32;
--- 39,46 ----
  package System.Img_Decimal_32 is
  
     subtype Int32 is Interfaces.Integer_32;
  
!    package Impl is new Image_D (Int32);
  
     procedure Image_Decimal32
       (V     : Int32;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imde64.ads gcc-16-20250608/gcc/ada/libgnat/s-imde64.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imde64.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imde64.ads	Sun Jun  8 22:32:16 2025
*************** with System.Image_D;
*** 39,47 ****
  package System.Img_Decimal_64 is
  
     subtype Int64 is Interfaces.Integer_64;
-    subtype Uns64 is Interfaces.Unsigned_64;
  
!    package Impl is new Image_D (Int64, Uns64);
  
     procedure Image_Decimal64
       (V     : Int64;
--- 39,46 ----
  package System.Img_Decimal_64 is
  
     subtype Int64 is Interfaces.Integer_64;
  
!    package Impl is new Image_D (Int64);
  
     procedure Image_Decimal64
       (V     : Int64;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imfi128.ads gcc-16-20250608/gcc/ada/libgnat/s-imfi128.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imfi128.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imfi128.ads	Sun Jun  8 22:32:16 2025
*************** with System.Image_F;
*** 39,47 ****
  package System.Img_Fixed_128 is
  
     subtype Int128 is Interfaces.Integer_128;
-    subtype Uns128 is Interfaces.Unsigned_128;
  
!    package Impl is new Image_F (Int128, Uns128, Arith_128.Scaled_Divide128);
  
     procedure Image_Fixed128
       (V    : Int128;
--- 39,46 ----
  package System.Img_Fixed_128 is
  
     subtype Int128 is Interfaces.Integer_128;
  
!    package Impl is new Image_F (Int128, Arith_128.Scaled_Divide128);
  
     procedure Image_Fixed128
       (V    : Int128;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imfi32.ads gcc-16-20250608/gcc/ada/libgnat/s-imfi32.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imfi32.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imfi32.ads	Sun Jun  8 22:32:16 2025
*************** with System.Image_F;
*** 39,47 ****
  package System.Img_Fixed_32 is
  
     subtype Int32 is Interfaces.Integer_32;
-    subtype Uns32 is Interfaces.Unsigned_32;
  
!    package Impl is new Image_F (Int32, Uns32, Arith_32.Scaled_Divide32);
  
     procedure Image_Fixed32
       (V    : Int32;
--- 39,46 ----
  package System.Img_Fixed_32 is
  
     subtype Int32 is Interfaces.Integer_32;
  
!    package Impl is new Image_F (Int32, Arith_32.Scaled_Divide32);
  
     procedure Image_Fixed32
       (V    : Int32;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imfi64.ads gcc-16-20250608/gcc/ada/libgnat/s-imfi64.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imfi64.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imfi64.ads	Sun Jun  8 22:32:16 2025
*************** with System.Image_F;
*** 39,47 ****
  package System.Img_Fixed_64 is
  
     subtype Int64 is Interfaces.Integer_64;
-    subtype Uns64 is Interfaces.Unsigned_64;
  
!    package Impl is new Image_F (Int64, Uns64, Arith_64.Scaled_Divide64);
  
     procedure Image_Fixed64
       (V    : Int64;
--- 39,46 ----
  package System.Img_Fixed_64 is
  
     subtype Int64 is Interfaces.Integer_64;
  
!    package Impl is new Image_F (Int64, Arith_64.Scaled_Divide64);
  
     procedure Image_Fixed64
       (V    : Int64;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imgboo.adb gcc-16-20250608/gcc/ada/libgnat/s-imgboo.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-imgboo.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imgboo.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,60 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body System.Img_Bool
    with SPARK_Mode
  is
- 
-    --  Local lemmas
- 
-    procedure Lemma_Is_First_Non_Space_Ghost (S : String; R : Positive) with
-      Ghost,
-      Pre => R in S'Range and then S (R) /= ' '
-        and then System.Val_Spec.Only_Space_Ghost (S, S'First, R - 1),
-      Post => System.Val_Spec.First_Non_Space_Ghost (S, S'First, S'Last) = R;
- 
-    ------------------------------------
-    -- Lemma_Is_First_Non_Space_Ghost --
-    ------------------------------------
- 
-    procedure Lemma_Is_First_Non_Space_Ghost (S : String; R : Positive) is null;
- 
     -------------------
     -- Image_Boolean --
     -------------------
--- 29,37 ----
*************** is
*** 69,79 ****
        if V then
           S (1 .. 4) := "TRUE";
           P := 4;
-          Lemma_Is_First_Non_Space_Ghost (S, 1);
        else
           S (1 .. 5) := "FALSE";
           P := 5;
-          Lemma_Is_First_Non_Space_Ghost (S, 1);
        end if;
     end Image_Boolean;
  
--- 46,54 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imgboo.ads gcc-16-20250608/gcc/ada/libgnat/s-imgboo.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imgboo.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imgboo.ads	Sun Jun  8 22:32:16 2025
***************
*** 34,65 ****
  --  This package provides support for ``Image`` attribute on ``Boolean``. The
  --  compiler performs direct calls to this unit to implement the attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- with System.Val_Spec;
- 
  package System.Img_Bool
    with SPARK_Mode, Preelaborate
  is
- 
     procedure Image_Boolean
       (V : Boolean;
        S : in out String;
!       P : out Natural)
!    with
!      Pre  => S'First = 1
!        and then (if V then S'Length >= 4 else S'Length >= 5),
!      Post => (if V then P = 4 else P = 5)
!        and then System.Val_Spec.Is_Boolean_Image_Ghost (S (1 .. P), V);
     --  Computes Boolean'Image (``V``) and stores the result in
     --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
     --  guarantees that ``S`` is long enough to hold the result, and that
--- 34,46 ----
  --  This package provides support for ``Image`` attribute on ``Boolean``. The
  --  compiler performs direct calls to this unit to implement the attribute.
  
  package System.Img_Bool
    with SPARK_Mode, Preelaborate
  is
     procedure Image_Boolean
       (V : Boolean;
        S : in out String;
!       P : out Natural);
     --  Computes Boolean'Image (``V``) and stores the result in
     --  ``S`` (1 .. ``P``) setting the resulting value of ``P``. The caller
     --  guarantees that ``S`` is long enough to hold the result, and that
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imgint.ads gcc-16-20250608/gcc/ada/libgnat/s-imgint.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imgint.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imgint.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,65 ****
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types up to Size ``Integer'Size``.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_I;
- with System.Unsigned_Types;
- with System.Vs_Int;
- with System.Vs_Uns;
  
  package System.Img_Int
    with SPARK_Mode
  is
!    subtype Unsigned is Unsigned_Types.Unsigned;
! 
!    package Impl is new Image_I
!      (Int    => Integer,
!       Uns    => Unsigned,
!       U_Spec => System.Vs_Uns.Spec,
!       I_Spec => System.Vs_Int.Spec);
  
     procedure Image_Integer
       (V : Integer;
--- 33,44 ----
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types up to Size ``Integer'Size``.
  
  with System.Image_I;
  
  package System.Img_Int
    with SPARK_Mode
  is
!    package Impl is new Image_I (Integer);
  
     procedure Image_Integer
       (V : Integer;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imglli.ads gcc-16-20250608/gcc/ada/libgnat/s-imglli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imglli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imglli.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,65 ****
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types larger than Size ``Integer'Size``.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_I;
- with System.Unsigned_Types;
- with System.Vs_LLI;
- with System.Vs_LLU;
  
  package System.Img_LLI
    with SPARK_Mode
  is
!    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
! 
!    package Impl is new Image_I
!      (Int    => Long_Long_Integer,
!       Uns    => Long_Long_Unsigned,
!       U_Spec => System.Vs_LLU.Spec,
!       I_Spec => System.Vs_LLI.Spec);
  
     procedure Image_Long_Long_Integer
       (V : Long_Long_Integer;
--- 33,44 ----
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types larger than Size ``Integer'Size``.
  
  with System.Image_I;
  
  package System.Img_LLI
    with SPARK_Mode
  is
!    package Impl is new Image_I (Long_Long_Integer);
  
     procedure Image_Long_Long_Integer
       (V : Long_Long_Integer;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imgllli.ads gcc-16-20250608/gcc/ada/libgnat/s-imgllli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imgllli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imgllli.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,65 ****
  --  signed integer types larger than Long_Long_Integer, and also for conversion
  --  operations required in Text_IO.Integer_IO for such types.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_I;
- with System.Unsigned_Types;
- with System.Vs_LLLI;
- with System.Vs_LLLU;
  
  package System.Img_LLLI
    with SPARK_Mode
  is
!    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
! 
!    package Impl is new Image_I
!      (Int    => Long_Long_Long_Integer,
!       Uns    => Long_Long_Long_Unsigned,
!       U_Spec => System.Vs_LLLU.Spec,
!       I_Spec => System.Vs_LLLI.Spec);
  
     procedure Image_Long_Long_Long_Integer
       (V : Long_Long_Long_Integer;
--- 33,44 ----
  --  signed integer types larger than Long_Long_Integer, and also for conversion
  --  operations required in Text_IO.Integer_IO for such types.
  
  with System.Image_I;
  
  package System.Img_LLLI
    with SPARK_Mode
  is
!    package Impl is new Image_I (Long_Long_Long_Integer);
  
     procedure Image_Long_Long_Long_Integer
       (V : Long_Long_Long_Integer;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imglllu.ads gcc-16-20250608/gcc/ada/libgnat/s-imglllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imglllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imglllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,62 ****
  --  modular integer types larger than Long_Long_Unsigned, and also for
  --  conversion operations required in Text_IO.Modular_IO for such types.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_U;
  with System.Unsigned_Types;
- with System.Vs_LLLU;
  
  package System.Img_LLLU
    with SPARK_Mode
  is
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Image_U
!      (Uns    => Long_Long_Long_Unsigned,
!       U_Spec => System.Vs_LLLU.Spec);
  
     procedure Image_Long_Long_Long_Unsigned
       (V : Long_Long_Long_Unsigned;
--- 33,47 ----
  --  modular integer types larger than Long_Long_Unsigned, and also for
  --  conversion operations required in Text_IO.Modular_IO for such types.
  
  with System.Image_U;
  with System.Unsigned_Types;
  
  package System.Img_LLLU
    with SPARK_Mode
  is
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Image_U (Uns => Long_Long_Long_Unsigned);
  
     procedure Image_Long_Long_Long_Unsigned
       (V : Long_Long_Long_Unsigned;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imgllu.ads gcc-16-20250608/gcc/ada/libgnat/s-imgllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imgllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imgllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,62 ****
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for unsigned (modular)
  --  integer types larger than Size ``Unsigned'Size``.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_U;
  with System.Unsigned_Types;
- with System.Vs_LLU;
  
  package System.Img_LLU
    with SPARK_Mode
  is
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Image_U
!      (Uns    => Long_Long_Unsigned,
!       U_Spec => System.Vs_LLU.Spec);
  
     procedure Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
--- 33,47 ----
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for unsigned (modular)
  --  integer types larger than Size ``Unsigned'Size``.
  
  with System.Image_U;
  with System.Unsigned_Types;
  
  package System.Img_LLU
    with SPARK_Mode
  is
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Image_U (Uns => Long_Long_Unsigned);
  
     procedure Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-imguns.ads gcc-16-20250608/gcc/ada/libgnat/s-imguns.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-imguns.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-imguns.ads	Sun Jun  8 22:32:16 2025
***************
*** 33,62 ****
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
  --  types up to size ``Unsigned'Size``.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_U;
  with System.Unsigned_Types;
- with System.Vs_Uns;
  
  package System.Img_Uns
    with SPARK_Mode
  is
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Image_U
!      (Uns    => Unsigned,
!       U_Spec => System.Vs_Uns.Spec);
  
     procedure Image_Unsigned
       (V : Unsigned;
--- 33,47 ----
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
  --  types up to size ``Unsigned'Size``.
  
  with System.Image_U;
  with System.Unsigned_Types;
  
  package System.Img_Uns
    with SPARK_Mode
  is
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Image_U (Uns => Unsigned);
  
     procedure Image_Unsigned
       (V : Unsigned;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-spark.ads gcc-16-20250608/gcc/ada/libgnat/s-spark.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-spark.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-spark.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . S P A R K                          --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This is the top level unit of the SPARK package. Its children
- --  contain helper functions to aid proofs.
- 
- package System.SPARK with
-   SPARK_Mode,
-   Pure
- is
- end System.SPARK;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-spcuop.adb gcc-16-20250608/gcc/ada/libgnat/s-spcuop.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-spcuop.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-spcuop.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,42 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --           S Y S T E M . S P A R K . C U T _ O P E R A T I O N S          --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- package body System.SPARK.Cut_Operations with
-   SPARK_Mode => Off
- is
- 
-    function By (Consequence, Premise : Boolean) return Boolean is
-      (Premise and then Consequence);
- 
-    function So (Premise, Consequence : Boolean) return Boolean is
-      (Premise and then Consequence);
- 
- end System.SPARK.Cut_Operations;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-spcuop.ads gcc-16-20250608/gcc/ada/libgnat/s-spcuop.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-spcuop.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-spcuop.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,57 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --           S Y S T E M . S P A R K . C U T _ O P E R A T I O N S          --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --             Copyright (C) 2022-2025, Free Software Foundation, Inc.      --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package provides connectors used to manually help the proof of
- --  assertions by introducing intermediate steps. They can only be used inside
- --  pragmas Assert or Assert_And_Cut.
- 
- package System.SPARK.Cut_Operations with
-   SPARK_Mode,
-   Pure,
-   Always_Terminates
- is
- 
-    function By (Consequence, Premise : Boolean) return Boolean with
-      Ghost,
-      Global => null;
-    --  If A and B are two boolean expressions, proving By (A, B) requires
-    --  proving B, the premise, and then A assuming B, the side-condition. When
-    --  By (A, B) is assumed on the other hand, we only assume A. B is used
-    --  for the proof, but is not visible afterward.
- 
-    function So (Premise, Consequence : Boolean) return Boolean with
-      Ghost,
-      Global => null;
-    --  If A and B are two boolean expressions, proving So (A, B) requires
-    --  proving A, the premise, and then B assuming A, the side-condition. When
-    --  So (A, B) is assumed both A and B are assumed to be true.
- 
- end System.SPARK.Cut_Operations;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-trasym__dwarf.adb gcc-16-20250608/gcc/ada/libgnat/s-trasym__dwarf.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-trasym__dwarf.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-trasym__dwarf.adb	Sun Jun  8 22:32:16 2025
*************** with System.Soft_Links;
*** 41,46 ****
--- 41,47 ----
  with System.CRTL;
  with System.Dwarf_Lines;
  with System.Exception_Traces;
+ with System.OS_Lib;
  with System.Standard_Library;
  with System.Traceback_Entries;
  with System.Strings;
*************** package body System.Traceback.Symbolic i
*** 412,417 ****
--- 413,435 ----
           Success := False;
           return;
        end if;
+ 
+       --  On some platforms, we use dladdr and the dli_fname field to get the
+       --  pathname, but that pathname might be relative and not point to the
+       --  right thing in our context. That happens when the executable is
+       --  dynamically linked and was started through execvp; dli_fname only
+       --  contains the executable name passed to execvp in that case.
+       --
+       --  Because of this, we might be about to open a file that's in fact not
+       --  a shared object but something completely unrelated. It's hard to
+       --  detect this in general, but we perform a sanity check that
+       --  Module_Name does not designate a directory; if it does, it's
+       --  definitely not a shared object.
+ 
+       if System.OS_Lib.Is_Directory (Module_Name) then
+          Success := False;
+          return;
+       end if;
  
        Open (Module_Name, Module.C, Success);
  
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vaispe.adb gcc-16-20250608/gcc/ada/libgnat/s-vaispe.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-vaispe.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vaispe.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,87 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ I _ S P E C                  --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- package body System.Value_I_Spec is
- 
-    -----------------------------------
-    -- Prove_Scan_Only_Decimal_Ghost --
-    -----------------------------------
- 
-    procedure Prove_Scan_Only_Decimal_Ghost (Str : String; Val : Int) is
-       Non_Blank : constant Positive := First_Non_Space_Ghost
-         (Str, Str'First, Str'Last);
-       pragma Assert (Str (Str'First + 1) /= ' ');
-       pragma Assert
-         (if Val < 0 then Non_Blank = Str'First
-          else
-            Str (Str'First) = ' '
-             and then Non_Blank = Str'First + 1);
-       Minus     : constant Boolean := Str (Non_Blank) = '-';
-       Fst_Num   : constant Positive :=
-         (if Minus then Non_Blank + 1 else Non_Blank);
-       pragma Assert (Fst_Num = Str'First + 1);
-       Uval      : constant Uns := Abs_Uns_Of_Int (Val);
- 
-       procedure Prove_Conversion_Is_Identity (Val : Int; Uval : Uns)
-       with
-         Pre  => Minus = (Val < 0)
-           and then Uval = Abs_Uns_Of_Int (Val),
-         Post => Uns_Is_Valid_Int (Minus, Uval)
-           and then Is_Int_Of_Uns (Minus, Uval, Val);
-       --  Local proof of the unicity of the signed representation
- 
-       procedure Prove_Conversion_Is_Identity (Val : Int; Uval : Uns) is null;
- 
-    --  Start of processing for Prove_Scan_Only_Decimal_Ghost
- 
-    begin
-       Prove_Conversion_Is_Identity (Val, Uval);
-       pragma Assert
-         (U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last)));
-       pragma Assert
-         (U_Spec.Scan_Split_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
-       U_Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, 0, 10);
-       pragma Assert
-         (U_Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
-       pragma Assert (Only_Space_Ghost
-         (Str, U_Spec.Raw_Unsigned_Last_Ghost
-                         (Str, Fst_Num, Str'Last), Str'Last));
-       pragma Assert (Is_Integer_Ghost (Str));
-       pragma Assert (Is_Value_Integer_Ghost (Str, Val));
-    end Prove_Scan_Only_Decimal_Ghost;
- 
- end System.Value_I_Spec;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vaispe.ads gcc-16-20250608/gcc/ada/libgnat/s-vaispe.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vaispe.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vaispe.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,185 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ I _ S P E C                  --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package is part of a set of Ghost code packages used to proof the
- --  implementations of the Image and Value attributes. It provides the
- --  specification entities using for the formal verification of the routines
- --  for scanning signed integer values.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_U_Spec;
- with System.Val_Spec; use System.Val_Spec;
- 
- generic
- 
-    type Int is range <>;
- 
-    type Uns is mod <>;
- 
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
- 
- package System.Value_I_Spec with
-    Ghost,
-    SPARK_Mode,
-    Always_Terminates
- is
-    pragma Preelaborate;
-    use all type U_Spec.Uns_Option;
- 
-    function Uns_Is_Valid_Int (Minus : Boolean; Uval : Uns) return Boolean is
-      (if Minus then Uval <= Uns (Int'Last) + 1
-       else Uval <= Uns (Int'Last))
-    with Post => True;
-    --  Return True if Uval (or -Uval when Minus is True) is a valid number of
-    --  type Int.
- 
-    function Is_Int_Of_Uns
-      (Minus : Boolean;
-       Uval  : Uns;
-       Val   : Int)
-       return Boolean
-    is
-      (if Minus and then Uval = Uns (Int'Last) + 1 then Val = Int'First
-       elsif Minus then Val = -(Int (Uval))
-       else Val = Int (Uval))
-    with
-      Pre  => Uns_Is_Valid_Int (Minus, Uval),
-      Post => True;
-    --  Return True if Uval (or -Uval when Minus is True) is equal to Val
- 
-    function Abs_Uns_Of_Int (Val : Int) return Uns is
-      (if Val = Int'First then Uns (Int'Last) + 1
-       elsif Val < 0 then Uns (-Val)
-       else Uns (Val));
-    --  Return the unsigned absolute value of Val
- 
-    function Slide_To_1 (Str : String) return String
-    with
-      Post =>
-        Only_Space_Ghost (Str, Str'First, Str'Last) =
-          (for all J in Str'First .. Str'Last =>
-             Slide_To_1'Result (J - Str'First + 1) = ' ');
-    --  Slides Str so that it starts at 1
- 
-    function Slide_If_Necessary (Str : String) return String is
-      (if Str'Last = Positive'Last then Slide_To_1 (Str) else Str);
-    --  If Str'Last = Positive'Last then slides Str so that it starts at 1
- 
-    function Is_Integer_Ghost (Str : String) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
-       begin
-         U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last))
-           and then U_Spec.Raw_Unsigned_No_Overflow_Ghost
-              (Str, Fst_Num, Str'Last)
-           and then
-             Uns_Is_Valid_Int
-               (Minus => Str (Non_Blank) = '-',
-                Uval  => U_Spec.Scan_Raw_Unsigned_Ghost
-                  (Str, Fst_Num, Str'Last))
-           and then Only_Space_Ghost
-             (Str, U_Spec.Raw_Unsigned_Last_Ghost
-              (Str, Fst_Num, Str'Last), Str'Last))
-    with
-      Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last,
-      Post => True;
-    --  Ghost function that determines if Str has the correct format for a
-    --  signed number, consisting in some blank characters, an optional
-    --  sign, a raw unsigned number which does not overflow and then some
-    --  more blank characters.
- 
-    function Is_Value_Integer_Ghost (Str : String; Val : Int) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
-         Uval      : constant Uns :=
-           U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last);
-       begin
-         Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
-                        Uval  => Uval,
-                        Val   => Val))
-    with
-      Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last
-        and then Is_Integer_Ghost (Str),
-      Post => True;
-    --  Ghost function that returns True if Val is the value corresponding to
-    --  the signed number represented by Str.
- 
-    procedure Prove_Scan_Only_Decimal_Ghost (Str : String; Val : Int)
-    with
-      Ghost,
-      Pre  => Str'Last /= Positive'Last
-        and then Str'Length >= 2
-        and then Str (Str'First) in ' ' | '-'
-        and then (Str (Str'First) = '-') = (Val < 0)
-        and then U_Spec.Only_Decimal_Ghost (Str, Str'First + 1, Str'Last)
-        and then U_Spec.Scan_Based_Number_Ghost
-          (Str, Str'First + 1, Str'Last)
-          = U_Spec.Wrap_Option (Abs_Uns_Of_Int (Val)),
-      Post => Is_Integer_Ghost (Slide_If_Necessary (Str))
-        and then Is_Value_Integer_Ghost (Str, Val);
-    --  Ghost lemma used in the proof of 'Image implementation, to prove that
-    --  the result of Value_Integer on a decimal string is the same as the
-    --  signing the result of Scan_Based_Number_Ghost.
- 
- private
- 
-    ----------------
-    -- Slide_To_1 --
-    ----------------
- 
-    function Slide_To_1 (Str : String) return String is
-      (declare
-         Res : constant String (1 .. Str'Length) := Str;
-       begin
-         Res);
- 
- end System.Value_I_Spec;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valboo.adb gcc-16-20250608/gcc/ada/libgnat/s-valboo.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-valboo.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valboo.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Val_Util; use System.Val_Util;
  
  package body System.Val_Bool
--- 29,34 ----
*************** is
*** 55,63 ****
     begin
        Normalize_String (S, F, L, To_Upper_Case => True);
  
-       pragma Assert (F = System.Val_Spec.First_Non_Space_Ghost
-                      (S, Str'First, Str'Last));
- 
        if S (F .. L) = "TRUE" then
           return True;
  
--- 47,52 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valboo.ads gcc-16-20250608/gcc/ada/libgnat/s-valboo.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valboo.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valboo.ads	Sun Jun  8 22:32:16 2025
***************
*** 29,60 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- with System.Val_Spec;
- 
  package System.Val_Bool
    with SPARK_Mode
  is
     pragma Preelaborate;
  
!    function Value_Boolean (Str : String) return Boolean
!    with
!      Pre  => System.Val_Spec.Is_Boolean_Image_Ghost (Str, True)
!        or else System.Val_Spec.Is_Boolean_Image_Ghost (Str, False),
!      Post =>
!        Value_Boolean'Result =
!          (Str (System.Val_Spec.First_Non_Space_Ghost
!             (Str, Str'First, Str'Last)) in 't' | 'T');
     --  Computes Boolean'Value (Str)
  
  end System.Val_Bool;
--- 29,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  package System.Val_Bool
    with SPARK_Mode
  is
     pragma Preelaborate;
  
!    function Value_Boolean (Str : String) return Boolean;
     --  Computes Boolean'Value (Str)
  
  end System.Val_Bool;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valint.ads gcc-16-20250608/gcc/ada/libgnat/s-valint.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valint.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valint.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,54 ****
  --  This package contains routines for scanning signed Integer values for use
  --  in Text_IO.Integer_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Val_Uns;
  with System.Value_I;
- with System.Vs_Int;
- with System.Vs_Uns;
  
  package System.Val_Int with SPARK_Mode is
     pragma Preelaborate;
--- 32,40 ----
*************** package System.Val_Int with SPARK_Mode i
*** 58,66 ****
     package Impl is new Value_I
       (Int               => Integer,
        Uns               => Unsigned,
!       Scan_Raw_Unsigned => Val_Uns.Scan_Raw_Unsigned,
!       U_Spec            => System.Vs_Uns.Spec,
!       Spec              => System.Vs_Int.Spec);
  
     procedure Scan_Integer
       (Str : String;
--- 44,50 ----
     package Impl is new Value_I
       (Int               => Integer,
        Uns               => Unsigned,
!       Scan_Raw_Unsigned => Val_Uns.Scan_Raw_Unsigned);
  
     procedure Scan_Integer
       (Str : String;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vallli.ads gcc-16-20250608/gcc/ada/libgnat/s-vallli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vallli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vallli.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,54 ****
  --  This package contains routines for scanning signed Long_Long_Integer
  --  values for use in Text_IO.Integer_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Val_LLU;
  with System.Value_I;
- with System.Vs_LLI;
- with System.Vs_LLU;
  
  package System.Val_LLI with SPARK_Mode is
     pragma Preelaborate;
--- 32,40 ----
*************** package System.Val_LLI with SPARK_Mode i
*** 58,66 ****
     package Impl is new Value_I
       (Int               => Long_Long_Integer,
        Uns               => Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLU.Scan_Raw_Long_Long_Unsigned,
!       U_Spec            => System.Vs_LLU.Spec,
!       Spec              => System.Vs_LLI.Spec);
  
     procedure Scan_Long_Long_Integer
       (Str  : String;
--- 44,50 ----
     package Impl is new Value_I
       (Int               => Long_Long_Integer,
        Uns               => Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLU.Scan_Raw_Long_Long_Unsigned);
  
     procedure Scan_Long_Long_Integer
       (Str  : String;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valllli.ads gcc-16-20250608/gcc/ada/libgnat/s-valllli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valllli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valllli.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,54 ****
  --  This package contains routines for scanning signed Long_Long_Long_Integer
  --  values for use in Text_IO.Integer_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Val_LLLU;
  with System.Value_I;
- with System.Vs_LLLI;
- with System.Vs_LLLU;
  
  package System.Val_LLLI with SPARK_Mode is
     pragma Preelaborate;
--- 32,40 ----
*************** package System.Val_LLLI with SPARK_Mode
*** 58,66 ****
     package Impl is new Value_I
       (Int               => Long_Long_Long_Integer,
        Uns               => Long_Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLLU.Scan_Raw_Long_Long_Long_Unsigned,
!       U_Spec            => System.Vs_LLLU.Spec,
!       Spec              => System.Vs_LLLI.Spec);
  
     procedure Scan_Long_Long_Long_Integer
       (Str  : String;
--- 44,50 ----
     package Impl is new Value_I
       (Int               => Long_Long_Long_Integer,
        Uns               => Long_Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLLU.Scan_Raw_Long_Long_Long_Unsigned);
  
     procedure Scan_Long_Long_Long_Integer
       (Str  : String;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vallllu.ads gcc-16-20250608/gcc/ada/libgnat/s-vallllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vallllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vallllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,59 ****
  --  This package contains routines for scanning modular Long_Long_Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Value_U;
- with System.Vs_LLLU;
  
  package System.Val_LLLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Long_Unsigned, System.Vs_LLLU.Spec);
  
     procedure Scan_Raw_Long_Long_Long_Unsigned
       (Str : String;
--- 32,46 ----
  --  This package contains routines for scanning modular Long_Long_Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_LLLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Long_Unsigned);
  
     procedure Scan_Raw_Long_Long_Long_Unsigned
       (Str : String;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valllu.ads gcc-16-20250608/gcc/ada/libgnat/s-valllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,59 ****
  --  This package contains routines for scanning modular Long_Long_Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Value_U;
- with System.Vs_LLU;
  
  package System.Val_LLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Unsigned, System.Vs_LLU.Spec);
  
     procedure Scan_Raw_Long_Long_Unsigned
       (Str : String;
--- 32,46 ----
  --  This package contains routines for scanning modular Long_Long_Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_LLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Unsigned);
  
     procedure Scan_Raw_Long_Long_Unsigned
       (Str : String;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valspe.adb gcc-16-20250608/gcc/ada/libgnat/s-valspe.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-valspe.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valspe.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,87 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                      S Y S T E M . V A L _ S P E C                       --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
- package body System.Val_Spec
-   with SPARK_Mode
- is
- 
-    ---------------------------
-    -- First_Non_Space_Ghost --
-    ---------------------------
- 
-    function First_Non_Space_Ghost
-      (S        : String;
-       From, To : Integer) return Positive
-    is
-    begin
-       for J in From .. To loop
-          if S (J) /= ' ' then
-             return J;
-          end if;
- 
-          pragma Loop_Invariant (for all K in From .. J => S (K) = ' ');
-       end loop;
- 
-       raise Program_Error;
-    end First_Non_Space_Ghost;
- 
-    -----------------------
-    -- Last_Number_Ghost --
-    -----------------------
- 
-    function Last_Number_Ghost (Str : String) return Positive is
-    begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "occurs in ghost code, not executable");
- 
-       for J in Str'Range loop
-          if Str (J) not in '0' .. '9' | '_' then
-             return J - 1;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Str'First .. J => Str (K) in '0' .. '9' | '_');
-       end loop;
- 
-       return Str'Last;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
-    end Last_Number_Ghost;
- 
- end System.Val_Spec;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valspe.ads gcc-16-20250608/gcc/ada/libgnat/s-valspe.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valspe.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valspe.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,246 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                      S Y S T E M . V A L _ S P E C                       --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package is part of a set of Ghost code packages used to proof the
- --  implementations of the Image and Value attributes. It provides some common
- --  specification functions used by the s-valxxx files.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- package System.Val_Spec with
-   SPARK_Mode,
-   Pure,
-   Ghost
- is
-    function Only_Space_Ghost (S : String; From, To : Integer) return Boolean is
-       (for all J in From .. To => S (J) = ' ')
-    with
-      Pre  => From > To or else (From >= S'First and then To <= S'Last),
-      Post => True;
-    --  Ghost function that returns True if S has only space characters from
-    --  index From to index To.
- 
-    function First_Non_Space_Ghost
-      (S        : String;
-       From, To : Integer) return Positive
-    with
-      Pre  => From in S'Range
-        and then To in S'Range
-        and then not Only_Space_Ghost (S, From, To),
-      Post => First_Non_Space_Ghost'Result in From .. To
-        and then S (First_Non_Space_Ghost'Result) /= ' '
-        and then Only_Space_Ghost
-          (S, From, First_Non_Space_Ghost'Result - 1);
-    --  Ghost function that returns the index of the first non-space character
-    --  in S, which necessarily exists given the precondition on S.
- 
-    function Is_Boolean_Image_Ghost
-      (Str : String;
-       Val : Boolean) return Boolean
-    is
-      (not Only_Space_Ghost (Str, Str'First, Str'Last)
-         and then
-       (declare
-          F : constant Positive := First_Non_Space_Ghost
-            (Str, Str'First, Str'Last);
-        begin
-          (Val
-           and then F <= Str'Last - 3
-           and then Str (F)     in 't' | 'T'
-           and then Str (F + 1) in 'r' | 'R'
-           and then Str (F + 2) in 'u' | 'U'
-           and then Str (F + 3) in 'e' | 'E'
-           and then
-             (if F + 3 < Str'Last then
-                Only_Space_Ghost (Str, F + 4, Str'Last)))
-            or else
-          (not Val
-           and then F <= Str'Last - 4
-           and then Str (F)     in 'f' | 'F'
-           and then Str (F + 1) in 'a' | 'A'
-           and then Str (F + 2) in 'l' | 'L'
-           and then Str (F + 3) in 's' | 'S'
-           and then Str (F + 4) in 'e' | 'E'
-           and then
-             (if F + 4 < Str'Last then
-                Only_Space_Ghost (Str, F + 5, Str'Last)))))
-    with
-      Ghost;
-    --  Ghost function that returns True iff Str is the image of boolean Val,
-    --  that is "true" or "false" in any capitalization, possibly surounded by
-    --  space characters.
- 
-    function Only_Number_Ghost (Str : String; From, To : Integer) return Boolean
-    is
-       (for all J in From .. To => Str (J) in '0' .. '9' | '_')
-    with
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only number characters from
-    --  index From to index To.
- 
-    function Last_Number_Ghost (Str : String) return Positive
-    with
-      Pre  => Str /= "" and then Str (Str'First) in '0' .. '9',
-      Post => Last_Number_Ghost'Result in Str'Range
-        and then (if Last_Number_Ghost'Result < Str'Last then
-                    Str (Last_Number_Ghost'Result + 1) not in '0' .. '9' | '_')
-        and then Only_Number_Ghost (Str, Str'First, Last_Number_Ghost'Result);
-    --  Ghost function that returns the index of the last character in S that
-    --  is either a figure or underscore, which necessarily exists given the
-    --  precondition on Str.
- 
-    function Is_Natural_Format_Ghost (Str : String) return Boolean is
-      (Str /= ""
-         and then Str (Str'First) in '0' .. '9'
-         and then
-         (declare
-            L : constant Positive := Last_Number_Ghost (Str);
-          begin
-            Str (L) in '0' .. '9'
-              and then (for all J in Str'First .. L =>
-                          (if Str (J) = '_' then Str (J + 1) /= '_'))));
-    --  Ghost function that determines if Str has the correct format for a
-    --  natural number, consisting in a sequence of figures possibly separated
-    --  by single underscores. It may be followed by other characters.
- 
-    function Starts_As_Exponent_Format_Ghost
-      (Str  : String;
-       Real : Boolean := False) return Boolean
-    is
-      (Str'Length > 1
-       and then Str (Str'First) in 'E' | 'e'
-       and then
-         (declare
-             Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
-             Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
-             Sign       : constant Boolean := Plus_Sign or Minus_Sign;
-          begin
-            (if Minus_Sign then Real)
-             and then (if Sign then Str'Length > 2)
-             and then
-               (declare
-                  Start : constant Natural :=
-                   (if Sign then Str'First + 2 else Str'First + 1);
-                begin
-                  Str (Start) in '0' .. '9')));
-    --  Ghost function that determines if Str is recognized as something which
-    --  might be an exponent, ie. it starts with an 'e', capitalized or not,
-    --  followed by an optional sign which can only be '-' if we are working on
-    --  real numbers (Real is True), and then a digit in decimal notation.
- 
-    function Is_Opt_Exponent_Format_Ghost
-      (Str  : String;
-       Real : Boolean := False) return Boolean
-    is
-      (not Starts_As_Exponent_Format_Ghost (Str, Real)
-       or else
-         (declare
-            Start : constant Natural :=
-              (if Str (Str'First + 1) in '+' | '-' then Str'First + 2
-               else Str'First + 1);
-          begin Is_Natural_Format_Ghost (Str (Start .. Str'Last))));
-    --  Ghost function that determines if Str has the correct format for an
-    --  optional exponent, that is, either it does not start as an exponent, or
-    --  it is in a correct format for a natural number.
- 
-    function Scan_Natural_Ghost
-      (Str : String;
-       P   : Natural;
-       Acc : Natural)
-       return Natural
-    with
-      Subprogram_Variant => (Increases => P),
-      Pre => Str /= "" and then Str (Str'First) in '0' .. '9'
-        and then Str'Last < Natural'Last
-        and then P in Str'First .. Last_Number_Ghost (Str) + 1;
-    --  Ghost function that recursively computes the natural number in Str, up
-    --  to the first number greater or equal to Natural'Last / 10, assuming Acc
-    --  has been scanned already and scanning continues at index P.
- 
-    function Scan_Exponent_Ghost
-      (Str  : String;
-       Real : Boolean := False)
-       return Integer
-    is
-      (declare
-         Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
-         Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
-         Sign       : constant Boolean := Plus_Sign or Minus_Sign;
-         Start      : constant Natural :=
-           (if Sign then Str'First + 2 else Str'First + 1);
-         Value      : constant Natural :=
-           Scan_Natural_Ghost (Str (Start .. Str'Last), Start, 0);
-       begin
-         (if Minus_Sign then -Value else Value))
-    with
-      Pre  => Str'Last < Natural'Last
-        and then Starts_As_Exponent_Format_Ghost (Str, Real),
-      Post => (if not Real then Scan_Exponent_Ghost'Result >= 0);
-    --  Ghost function that scans an exponent
- 
- private
- 
-    ------------------------
-    -- Scan_Natural_Ghost --
-    ------------------------
- 
-    function Scan_Natural_Ghost
-      (Str : String;
-       P   : Natural;
-       Acc : Natural)
-       return Natural
-    is
-      (if P > Str'Last
-         or else Str (P) not in '0' .. '9' | '_'
-         or else Acc >= Integer'Last / 10
-       then
-         Acc
-       elsif Str (P) = '_' then
-         Scan_Natural_Ghost (Str, P + 1, Acc)
-       else
-         (declare
-            Shift_Acc : constant Natural :=
-              Acc * 10 +
-                (Integer'(Character'Pos (Str (P))) -
-                   Integer'(Character'Pos ('0')));
-          begin
-            Scan_Natural_Ghost (Str, P + 1, Shift_Acc)));
- 
- end System.Val_Spec;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valuei.adb gcc-16-20250608/gcc/ada/libgnat/s-valuei.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-valuei.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valuei.adb	Sun Jun  8 22:32:16 2025
*************** with System.Val_Util; use System.Val_Uti
*** 33,48 ****
  
  package body System.Value_I is
  
-    --  Ghost code, loop invariants and assertions in this unit are meant for
-    --  analysis only, not for run-time checking, as it would be too costly
-    --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     ------------------
     -- Scan_Integer --
     ------------------
--- 33,38 ----
*************** package body System.Value_I is
*** 53,77 ****
        Max : Integer;
        Res : out Int)
     is
-       procedure Prove_Is_Int_Of_Uns
-         (Minus : Boolean;
-          Uval  : Uns;
-          Val   : Int)
-       with Ghost,
-         Pre => Spec.Uns_Is_Valid_Int (Minus, Uval)
-           and then
-             (if Minus and then Uval = Uns (Int'Last) + 1 then Val = Int'First
-              elsif Minus then Val = -(Int (Uval))
-              else Val = Int (Uval)),
-         Post => Spec.Is_Int_Of_Uns (Minus, Uval, Val);
-       --  Unfold the definition of Is_Int_Of_Uns
- 
-       procedure Prove_Is_Int_Of_Uns
-         (Minus : Boolean;
-          Uval  : Uns;
-          Val   : Int)
-       is null;
- 
        Uval : Uns;
        --  Unsigned result
  
--- 43,48 ----
*************** package body System.Value_I is
*** 81,95 ****
        Unused_Start : Positive;
        --  Saves location of first non-blank (not used in this case)
  
-       Non_Blank : constant Positive :=
-         First_Non_Space_Ghost (Str, Ptr.all, Max)
-       with Ghost;
- 
-       Fst_Num   : constant Positive :=
-         (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
-          else Non_Blank)
-       with Ghost;
- 
     begin
        Scan_Sign (Str, Ptr, Max, Minus, Unused_Start);
  
--- 52,57 ----
*************** package body System.Value_I is
*** 99,106 ****
        end if;
  
        Scan_Raw_Unsigned (Str, Ptr, Max, Uval);
-       pragma Assert
-         (Uval = U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max));
  
        --  Deal with overflow cases, and also with largest negative number
  
--- 61,66 ----
*************** package body System.Value_I is
*** 121,131 ****
        else
           Res := Int (Uval);
        end if;
- 
-       Prove_Is_Int_Of_Uns
-         (Minus => Str (Non_Blank) = '-',
-          Uval  => Uval,
-          Val   => Res);
     end Scan_Integer;
  
     -------------------
--- 81,86 ----
*************** package body System.Value_I is
*** 141,155 ****
        if Str'Last = Positive'Last then
           declare
              subtype NT is String (1 .. Str'Length);
-             procedure Prove_Is_Integer_Ghost with
-               Ghost,
-               Pre  => Str'Length < Natural'Last
-               and then not Only_Space_Ghost (Str, Str'First, Str'Last)
-               and then Spec.Is_Integer_Ghost (Spec.Slide_To_1 (Str)),
-               Post => Spec.Is_Integer_Ghost (NT (Str));
-             procedure Prove_Is_Integer_Ghost is null;
           begin
-             Prove_Is_Integer_Ghost;
              return Value_Integer (NT (Str));
           end;
  
--- 96,102 ----
*************** package body System.Value_I is
*** 159,189 ****
           declare
              V : Int;
              P : aliased Integer := Str'First;
- 
-             Non_Blank : constant Positive := First_Non_Space_Ghost
-               (Str, Str'First, Str'Last)
-             with Ghost;
- 
-             Fst_Num   : constant Positive :=
-               (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
-                else Non_Blank)
-             with Ghost;
           begin
- 
              declare
                 P_Acc : constant not null access Integer := P'Access;
              begin
                 Scan_Integer (Str, P_Acc, Str'Last, V);
              end;
  
-             pragma Assert
-               (P = U_Spec.Raw_Unsigned_Last_Ghost
-                  (Str, Fst_Num, Str'Last));
- 
              Scan_Trailing_Blanks (Str, P);
- 
-             pragma Assert
-               (Spec.Is_Value_Integer_Ghost (Spec.Slide_If_Necessary (Str), V));
              return V;
           end;
        end if;
--- 106,119 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valuei.ads gcc-16-20250608/gcc/ada/libgnat/s-valuei.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valuei.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valuei.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,47 ****
  --  This package contains routines for scanning signed integer values for use
  --  in Text_IO.Integer_IO, and the Value attribute.
  
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Val_Spec; use System.Val_Spec;
- with System.Value_I_Spec;
- with System.Value_U_Spec;
- 
  generic
  
     type Int is range <>;
--- 32,37 ----
*************** generic
*** 54,66 ****
             Max : Integer;
             Res : out Uns);
  
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
-    with package Spec is new System.Value_I_Spec
-      (Int => Int, Uns => Uns, U_Spec => U_Spec)
-    with Ghost;
- 
  package System.Value_I is
     pragma Preelaborate;
  
--- 44,49 ----
*************** package System.Value_I is
*** 68,110 ****
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Int)
!    with
!      Pre  => Str'Last /= Positive'Last
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        and then (Ptr.all > Max
!                  or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Only_Space_Ghost (Str, Ptr.all, Max)
!        and then
!          (declare
!             Non_Blank : constant Positive := First_Non_Space_Ghost
!               (Str, Ptr.all, Max);
!             Fst_Num   : constant Positive :=
!               (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
!                else Non_Blank);
!           begin
!             U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Max))
!               and then U_Spec.Raw_Unsigned_No_Overflow_Ghost
!                 (Str, Fst_Num, Max)
!               and then Spec.Uns_Is_Valid_Int
!                 (Minus => Str (Non_Blank) = '-',
!                  Uval  => U_Spec.Scan_Raw_Unsigned_Ghost
!                    (Str, Fst_Num, Max))),
!     Post =>
!       (declare
!          Non_Blank : constant Positive := First_Non_Space_Ghost
!            (Str, Ptr.all'Old, Max);
!          Fst_Num   : constant Positive :=
!            (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
!             else Non_Blank);
!          Uval      : constant Uns :=
!             U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max);
!        begin
!            Spec.Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
!                                Uval  => Uval,
!                                Val   => Res)
!            and then Ptr.all = U_Spec.Raw_Unsigned_Last_Ghost
!              (Str, Fst_Num, Max));
     --  This procedure scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max). There are three cases for the
--- 51,57 ----
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Int);
     --  This procedure scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max). There are three cases for the
*************** package System.Value_I is
*** 130,143 ****
     --  special case of an all-blank string, and Ptr is unchanged, and hence
     --  is greater than Max as required in this case.
  
!    function Value_Integer (Str : String) return Int
!    with
!      Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
!        and then Str'Length /= Positive'Last
!        and then Spec.Is_Integer_Ghost (Spec.Slide_If_Necessary (Str)),
!      Post => Spec.Is_Value_Integer_Ghost
!        (Spec.Slide_If_Necessary (Str), Value_Integer'Result),
!      Subprogram_Variant => (Decreases => Str'First);
     --  Used in computing X'Value (Str) where X is a signed integer type whose
     --  base range does not exceed the base range of Integer. Str is the string
     --  argument of the attribute. Constraint_Error is raised if the string is
--- 77,83 ----
     --  special case of an all-blank string, and Ptr is unchanged, and hence
     --  is greater than Max as required in this case.
  
!    function Value_Integer (Str : String) return Int;
     --  Used in computing X'Value (Str) where X is a signed integer type whose
     --  base range does not exceed the base range of Integer. Str is the string
     --  argument of the attribute. Constraint_Error is raised if the string is
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valueu.adb gcc-16-20250608/gcc/ada/libgnat/s-valueu.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-valueu.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valueu.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,106 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
  with System.Val_Util;             use System.Val_Util;
  
  package body System.Value_U is
  
-    --  Ghost code, loop invariants and assertions in this unit are meant for
-    --  analysis only, not for run-time checking, as it would be too costly
-    --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
-    use type Spec.Uns_Option;
-    use type Spec.Split_Value_Ghost;
- 
-    --  Local lemmas
- 
-    procedure Lemma_Digit_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    with Ghost,
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-        and then P in From .. To
-        and then P <= Spec.Last_Hexa_Ghost (Str (From .. To)) + 1
-        and then Spec.Is_Based_Format_Ghost (Str (From .. To)),
-      Post =>
-        (if Str (P) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-         then P <= Spec.Last_Hexa_Ghost (Str (From .. To)));
- 
-    procedure Lemma_Underscore_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    with Ghost,
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-        and then P in From .. To
-        and then Str (P) = '_'
-        and then P <= Spec.Last_Hexa_Ghost (Str (From .. To)) + 1
-        and then Spec.Is_Based_Format_Ghost (Str (From .. To)),
-      Post => P + 1 <= Spec.Last_Hexa_Ghost (Str (From .. To))
-        and then Str (P + 1) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Digit_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    is null;
- 
-    procedure Lemma_Underscore_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    is null;
- 
     -----------------------
     -- Scan_Raw_Unsigned --
     -----------------------
--- 29,38 ----
*************** package body System.Value_U is
*** 132,167 ****
        Digit : Uns;
        --  Digit value
  
-       Ptr_Old       : constant Integer := Ptr.all
-       with Ghost;
-       Last_Num_Init : constant Integer :=
-         Last_Number_Ghost (Str (Ptr.all .. Max))
-       with Ghost;
-       Init_Val      : constant Spec.Uns_Option :=
-         Spec.Scan_Based_Number_Ghost (Str, Ptr.all, Last_Num_Init)
-       with Ghost;
-       Starts_As_Based : constant Boolean :=
-         Spec.Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, Max)
-       with Ghost;
-       Last_Num_Based  : constant Integer :=
-         (if Starts_As_Based
-          then Spec.Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. Max))
-          else Last_Num_Init)
-       with Ghost;
-       Is_Based        : constant Boolean :=
-         Spec.Raw_Unsigned_Is_Based_Ghost
-           (Str, Last_Num_Init, Last_Num_Based, Max)
-       with Ghost;
-       Based_Val       : constant Spec.Uns_Option :=
-         (if Starts_As_Based and then not Init_Val.Overflow
-          then Spec.Scan_Based_Number_Ghost
-            (Str, Last_Num_Init + 2, Last_Num_Based, Init_Val.Value)
-          else Init_Val)
-       with Ghost;
-       First_Exp       : constant Integer :=
-         (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1)
-       with Ghost;
- 
     begin
        --  We do not tolerate strings with Str'Last = Positive'Last
  
--- 64,69 ----
*************** package body System.Value_U is
*** 171,177 ****
        end if;
  
        P := Ptr.all;
-       Spec.Lemma_Scan_Based_Number_Ghost_Step (Str, P, Last_Num_Init);
        Uval := Character'Pos (Str (P)) - Character'Pos ('0');
        pragma Assert (Str (P) in '0' .. '9');
        P := P + 1;
--- 73,78 ----
*************** package body System.Value_U is
*** 189,202 ****
        begin
           --  Loop through decimal digits
           loop
-             pragma Loop_Invariant (P in P'Loop_Entry .. Last_Num_Init + 1);
-             pragma Loop_Invariant
-               (if Overflow then Init_Val.Overflow);
-             pragma Loop_Invariant
-               (if not Overflow
-                then Init_Val = Spec.Scan_Based_Number_Ghost
-                  (Str, P, Last_Num_Init, Acc => Uval));
- 
              exit when P > Max;
  
              Digit := Character'Pos (Str (P)) - Character'Pos ('0');
--- 90,95 ----
*************** package body System.Value_U is
*** 205,212 ****
  
              if Digit > 9 then
                 if Str (P) = '_' then
-                   Spec.Lemma_Scan_Based_Number_Ghost_Underscore
-                     (Str, P, Last_Num_Init, Acc => Uval);
                    Scan_Underscore (Str, P, Ptr, Max, False);
                 else
                    exit;
--- 98,103 ----
*************** package body System.Value_U is
*** 215,269 ****
              --  Accumulate result, checking for overflow
  
              else
-                pragma Assert
-                  (By
-                     (Str (P) in '0' .. '9',
-                      By
-                        (Character'Pos (Str (P)) >= Character'Pos ('0'),
-                         Uns '(Character'Pos (Str (P))) >=
-                             Character'Pos ('0'))));
-                Spec.Lemma_Scan_Based_Number_Ghost_Step
-                  (Str, P, Last_Num_Init, Acc => Uval);
-                Spec.Lemma_Scan_Based_Number_Ghost_Overflow
-                  (Str, P, Last_Num_Init, Acc => Uval);
- 
                 if Uval <= Umax then
                    Uval := 10 * Uval + Digit;
-                   pragma Assert
-                     (if not Overflow
-                      then Init_Val = Spec.Scan_Based_Number_Ghost
-                             (Str, P + 1, Last_Num_Init, Acc => Uval));
- 
                 elsif Uval > Umax10 then
                    Overflow := True;
- 
                 else
                    Uval := 10 * Uval + Digit;
  
                    if Uval < Umax10 then
                       Overflow := True;
                    end if;
-                   pragma Assert
-                     (if not Overflow
-                      then Init_Val = Spec.Scan_Based_Number_Ghost
-                             (Str, P + 1, Last_Num_Init, Acc => Uval));
- 
                 end if;
  
                 P := P + 1;
              end if;
           end loop;
-          Spec.Lemma_Scan_Based_Number_Ghost_Base
-             (Str, P, Last_Num_Init, Acc => Uval);
        end;
  
-       pragma Assert_And_Cut
-         (By
-            (P = Last_Num_Init + 1,
-             P > Max or else Str (P) not in '_' | '0' .. '9')
-          and then Overflow = Init_Val.Overflow
-          and then (if not Overflow then Init_Val.Value = Uval));
- 
        Ptr.all := P;
  
        --  Deal with based case. We recognize either the standard '#' or the
--- 106,128 ----
*************** package body System.Value_U is
*** 295,304 ****
              --  Numbers bigger than UmaxB overflow if multiplied by base
  
           begin
-             pragma Assert
-               (if Str (P) in '0' .. '9' | 'A' .. 'F' | 'a' .. 'f'
-                then Spec.Is_Based_Format_Ghost (Str (P .. Max)));
- 
              --  Loop to scan out based integer value
  
              loop
--- 154,159 ----
*************** package body System.Value_U is
*** 321,369 ****
                 --  already stored in Ptr.all.
  
                 else
-                   pragma Assert
-                     (By
-                        (Spec.Only_Hexa_Ghost (Str, P, Last_Num_Based),
-                         P > Last_Num_Init + 1
-                         and Spec.Only_Hexa_Ghost
-                           (Str, Last_Num_Init + 2, Last_Num_Based)));
-                   Spec.Lemma_Scan_Based_Number_Ghost_Base
-                     (Str, P, Last_Num_Based, Base, Uval);
                    Uval := Base;
                    Base := 10;
-                   pragma Assert (Ptr.all = Last_Num_Init + 1);
-                   pragma Assert
-                     (if Starts_As_Based
-                      then By
-                        (P = Last_Num_Based + 1,
-                         P <= Last_Num_Based + 1
-                         and Str (P) not in
-                         '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_'));
-                   pragma Assert (not Is_Based);
-                   pragma Assert (if not Overflow then Uval = Init_Val.Value);
                    exit;
                 end if;
  
-                pragma Loop_Invariant (P in P'Loop_Entry .. Last_Num_Based);
-                pragma Loop_Invariant
-                  (Str (P) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-                   and then Digit = Spec.Hexa_To_Unsigned_Ghost (Str (P)));
-                pragma Loop_Invariant
-                  (if Overflow'Loop_Entry then Overflow);
-                pragma Loop_Invariant
-                  (if Overflow then
-                     (Overflow'Loop_Entry or else Based_Val.Overflow));
-                pragma Loop_Invariant
-                  (if not Overflow
-                   then Based_Val = Spec.Scan_Based_Number_Ghost
-                     (Str, P, Last_Num_Based, Base, Uval));
-                pragma Loop_Invariant (Ptr.all = Last_Num_Init + 1);
- 
-                Spec.Lemma_Scan_Based_Number_Ghost_Step
-                  (Str, P, Last_Num_Based, Base, Uval);
-                Spec.Lemma_Scan_Based_Number_Ghost_Overflow
-                  (Str, P, Last_Num_Based, Base, Uval);
- 
                 --  If digit is too large, just signal overflow and continue.
                 --  The idea here is to keep scanning as long as the input is
                 --  syntactically valid, even if we have detected overflow
--- 176,186 ----
*************** package body System.Value_U is
*** 375,398 ****
  
                 elsif Uval <= Umax then
                    Uval := Base * Uval + Digit;
-                   pragma Assert
-                     (if not Overflow
-                      then Based_Val = Spec.Scan_Based_Number_Ghost
-                        (Str, P + 1, Last_Num_Based, Base, Uval));
- 
                 elsif Uval > UmaxB then
                    Overflow := True;
- 
                 else
                    Uval := Base * Uval + Digit;
  
                    if Uval < UmaxB then
                       Overflow := True;
                    end if;
-                   pragma Assert
-                     (if not Overflow
-                      then Based_Val = Spec.Scan_Based_Number_Ghost
-                        (Str, P + 1, Last_Num_Based, Base, Uval));
                 end if;
  
                 --  If at end of string with no base char, not a based number
--- 192,205 ----
*************** package body System.Value_U is
*** 411,496 ****
  
                 if Str (P) = Base_Char then
                    Ptr.all := P + 1;
-                   pragma Assert (P = Last_Num_Based + 1);
-                   pragma Assert (Ptr.all = Last_Num_Based + 2);
-                   pragma Assert
-                     (By
-                        (Is_Based,
-                         So
-                           (Starts_As_Based,
-                            So
-                              (Last_Num_Based < Max,
-                               Str (Last_Num_Based + 1) = Base_Char
-                               and Base_Char = Str (Last_Num_Init + 1)))));
-                   Spec.Lemma_Scan_Based_Number_Ghost_Base
-                     (Str, P, Last_Num_Based, Base, Uval);
                    exit;
  
                 --  Deal with underscore
  
                 elsif Str (P) = '_' then
-                   Lemma_Underscore_Not_Last (Str, P, Last_Num_Init + 2, Max);
-                   Spec.Lemma_Scan_Based_Number_Ghost_Underscore
-                     (Str, P, Last_Num_Based, Base, Uval);
                    Scan_Underscore (Str, P, Ptr, Max, True);
-                   pragma Assert
-                     (if not Overflow
-                      then Based_Val = Spec.Scan_Based_Number_Ghost
-                        (Str, P, Last_Num_Based, Base, Uval));
-                   pragma Assert (Str (P) not in '_' | Base_Char);
                 end if;
- 
-                Lemma_Digit_Not_Last (Str, P, Last_Num_Init + 2, Max);
-                pragma Assert (Str (P) not in '_' | Base_Char);
              end loop;
           end;
-          pragma Assert
-            (if Starts_As_Based then P = Last_Num_Based + 1
-             else P = Last_Num_Init + 2);
-          pragma Assert
-            (By
-               (Overflow /= Spec.Scan_Split_No_Overflow_Ghost
-                    (Str, Ptr_Old, Max),
-                So
-                  (Last_Num_Init < Max - 1
-                   and then Str (Last_Num_Init + 1) in '#' | ':',
-                   Overflow =
-                     (Init_Val.Overflow
-                      or else Init_Val.Value not in 2 .. 16
-                      or else (Starts_As_Based and Based_Val.Overflow)))));
        end if;
  
-       pragma Assert_And_Cut
-         (Overflow /= Spec.Scan_Split_No_Overflow_Ghost (Str, Ptr_Old, Max)
-          and then Ptr.all = First_Exp
-          and then Base in 2 .. 16
-          and then
-            (if not Overflow then
-                 (if Is_Based then Base = Init_Val.Value else Base = 10))
-          and then
-            (if not Overflow then
-                 (if Is_Based then Uval = Based_Val.Value
-                  else Uval = Init_Val.Value)));
- 
        --  Come here with scanned unsigned value in Uval. The only remaining
        --  required step is to deal with exponent if one is present.
  
        Scan_Exponent (Str, Ptr, Max, Expon);
  
-       pragma Assert
-         (By
-            (Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Ptr_Old, Max),
-             Ptr.all =
-               (if not Starts_As_Exponent_Format_Ghost (Str (First_Exp .. Max))
-                then First_Exp
-                elsif Str (First_Exp + 1) in '-' | '+' then
-                  Last_Number_Ghost (Str (First_Exp + 2 .. Max)) + 1
-                else Last_Number_Ghost (Str (First_Exp + 1 .. Max)) + 1)));
-       pragma Assert
-         (if not Overflow
-          then Spec.Scan_Split_Value_Ghost (Str, Ptr_Old, Max) =
-            (Uval, Base, Expon));
- 
        if Expon /= 0 and then Uval /= 0 then
  
           --  For non-zero value, scale by exponent value. No need to do this
--- 218,239 ----
*************** package body System.Value_U is
*** 500,565 ****
           declare
              UmaxB : constant Uns := Uns'Last / Base;
              --  Numbers bigger than UmaxB overflow if multiplied by base
- 
-             Res_Val : constant Spec.Uns_Option :=
-               Spec.Exponent_Unsigned_Ghost (Uval, Expon, Base)
-             with Ghost;
           begin
              for J in 1 .. Expon loop
-                pragma Loop_Invariant
-                  (if Overflow'Loop_Entry then Overflow);
-                pragma Loop_Invariant
-                  (if Overflow
-                   then Overflow'Loop_Entry or else Res_Val.Overflow);
-                pragma Loop_Invariant (Uval /= 0);
-                pragma Loop_Invariant
-                  (if not Overflow
-                   then Res_Val = Spec.Exponent_Unsigned_Ghost
-                     (Uval, Expon - J + 1, Base));
- 
-                pragma Assert
-                  ((Uval > UmaxB) = Spec.Scan_Overflows_Ghost (0, Base, Uval));
- 
                 if Uval > UmaxB then
-                   Spec.Lemma_Exponent_Unsigned_Ghost_Overflow
-                      (Uval, Expon - J + 1, Base);
                    Overflow := True;
                    exit;
                 end if;
  
-                Spec.Lemma_Exponent_Unsigned_Ghost_Step
-                   (Uval, Expon - J + 1, Base);
- 
                 Uval := Uval * Base;
              end loop;
-             Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, 0, Base);
- 
-             pragma Assert
-               (Overflow /=
-                  Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Ptr_Old, Max));
-             pragma Assert (if not Overflow then Res_Val = (False, Uval));
           end;
        end if;
-       Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, Expon, Base);
-       pragma Assert
-         (if Expon = 0 or else Uval = 0 then
-             Spec.Exponent_Unsigned_Ghost (Uval, Expon, Base) = (False, Uval));
-       pragma Assert
-         (Overflow /=
-            Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Ptr_Old, Max));
-       pragma Assert
-         (if not Overflow then
-             Uval = Spec.Scan_Raw_Unsigned_Ghost (Str, Ptr_Old, Max));
  
        --  Return result, dealing with overflow
  
        if Overflow then
           Bad_Value (Str);
-          pragma Annotate
-            (GNATprove, Intentional,
-             "call to nonreturning subprogram might be executed",
-             "it is expected that Constraint_Error is raised in case of"
-             & " overflow");
        else
           Res := Uval;
        end if;
--- 243,264 ----
*************** package body System.Value_U is
*** 608,622 ****
        if Str'Last = Positive'Last then
           declare
              subtype NT is String (1 .. Str'Length);
-             procedure Prove_Is_Unsigned_Ghost with
-               Ghost,
-               Pre  => Str'Length < Natural'Last
-               and then not Only_Space_Ghost (Str, Str'First, Str'Last)
-               and then Spec.Is_Unsigned_Ghost (Spec.Slide_To_1 (Str)),
-               Post => Spec.Is_Unsigned_Ghost (NT (Str));
-             procedure Prove_Is_Unsigned_Ghost is null;
           begin
-             Prove_Is_Unsigned_Ghost;
              return Value_Unsigned (NT (Str));
           end;
  
--- 307,313 ----
*************** package body System.Value_U is
*** 626,637 ****
           declare
              V : Uns;
              P : aliased Integer := Str'First;
-             Non_Blank : constant Positive := First_Non_Space_Ghost
-               (Str, Str'First, Str'Last)
-             with Ghost;
-             Fst_Num   : constant Positive :=
-               (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank)
-             with Ghost;
           begin
              declare
                 P_Acc : constant not null access Integer := P'Access;
--- 317,322 ----
*************** package body System.Value_U is
*** 639,654 ****
                 Scan_Unsigned (Str, P_Acc, Str'Last, V);
              end;
  
-             pragma Assert
-               (P = Spec.Raw_Unsigned_Last_Ghost (Str, Fst_Num, Str'Last));
-             pragma Assert
-               (V = Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last));
- 
              Scan_Trailing_Blanks (Str, P);
- 
-             pragma Assert
-               (Spec.Is_Value_Unsigned_Ghost
-                  (Spec.Slide_If_Necessary (Str), V));
              return V;
           end;
        end if;
--- 324,330 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valueu.ads gcc-16-20250608/gcc/ada/libgnat/s-valueu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valueu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valueu.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,60 ****
  --  This package contains routines for scanning modular Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_U_Spec;
- with System.Val_Spec; use System.Val_Spec;
- 
  generic
- 
     type Uns is mod <>;
- 
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
- 
  package System.Value_U is
     pragma Preelaborate;
  
--- 32,39 ----
*************** package System.Value_U is
*** 62,76 ****
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns)
!    with Pre => Str'Last /= Positive'Last
!      and then Ptr.all in Str'Range
!      and then Max in Ptr.all .. Str'Last
!      and then Spec.Is_Raw_Unsigned_Format_Ghost (Str (Ptr.all .. Max)),
!      Post => Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Ptr.all'Old, Max)
!      and Res = Spec.Scan_Raw_Unsigned_Ghost (Str, Ptr.all'Old, Max)
!      and Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Ptr.all'Old, Max);
! 
     --  This function scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max).  Note: this does not scan
--- 41,47 ----
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns);
     --  This function scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max).  Note: this does not scan
*************** package System.Value_U is
*** 145,189 ****
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns)
!    with Pre => Str'Last /= Positive'Last
!      and then Ptr.all in Str'Range
!      and then Max in Ptr.all .. Str'Last
!      and then not Only_Space_Ghost (Str, Ptr.all, Max)
!      and then
!        (declare
!           Non_Blank : constant Positive :=
!             First_Non_Space_Ghost (Str, Ptr.all, Max);
!           Fst_Num   : constant Positive :=
!             (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
!         begin
!           Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Max))),
!      Post =>
!        (declare
!           Non_Blank : constant Positive :=
!             First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
!           Fst_Num   : constant Positive :=
!             (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
!         begin
!           Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Max)
!           and then Res = Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max)
!           and then Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Fst_Num, Max));
! 
     --  Same as Scan_Raw_Unsigned, except scans optional leading
     --  blanks, and an optional leading plus sign.
     --
     --  Note: if a minus sign is present, Constraint_Error will be raised.
     --  Note: trailing blanks are not scanned.
  
!    function Value_Unsigned
!      (Str : String) return Uns
!    with Pre => Str'Length /= Positive'Last
!      and then not Only_Space_Ghost (Str, Str'First, Str'Last)
!      and then Spec.Is_Unsigned_Ghost (Spec.Slide_If_Necessary (Str)),
!      Post =>
!          Spec.Is_Value_Unsigned_Ghost
!            (Spec.Slide_If_Necessary (Str), Value_Unsigned'Result),
!      Subprogram_Variant => (Decreases => Str'First);
     --  Used in computing X'Value (Str) where X is a modular integer type whose
     --  modulus does not exceed the range of System.Unsigned_Types.Unsigned. Str
     --  is the string argument of the attribute. Constraint_Error is raised if
--- 116,129 ----
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns);
     --  Same as Scan_Raw_Unsigned, except scans optional leading
     --  blanks, and an optional leading plus sign.
     --
     --  Note: if a minus sign is present, Constraint_Error will be raised.
     --  Note: trailing blanks are not scanned.
  
!    function Value_Unsigned (Str : String) return Uns;
     --  Used in computing X'Value (Str) where X is a modular integer type whose
     --  modulus does not exceed the range of System.Unsigned_Types.Unsigned. Str
     --  is the string argument of the attribute. Constraint_Error is raised if
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valuns.ads gcc-16-20250608/gcc/ada/libgnat/s-valuns.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valuns.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valuns.ads	Sun Jun  8 22:32:16 2025
***************
*** 32,59 ****
  --  This package contains routines for scanning modular Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Value_U;
- with System.Vs_Uns;
  
  package System.Val_Uns with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Value_U (Unsigned, System.Vs_Uns.Spec);
  
     procedure Scan_Raw_Unsigned
       (Str : String;
--- 32,46 ----
  --  This package contains routines for scanning modular Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_Uns with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Value_U (Unsigned);
  
     procedure Scan_Raw_Unsigned
       (Str : String;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valuti.adb gcc-16-20250608/gcc/ada/libgnat/s-valuti.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-valuti.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valuti.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Case_Util; use System.Case_Util;
  
  package body System.Val_Util
--- 29,34 ----
*************** is
*** 48,59 ****
     ---------------
  
     procedure Bad_Value (S : String) is
-       pragma Annotate (GNATprove, Intentional, "exception might be raised",
-                        "Intentional exception from Bad_Value");
     begin
        --  Bad_Value might be called with very long strings allocated on the
        --  heap. Limit the size of the message so that we avoid creating a
        --  Storage_Error during error handling.
        if S'Length > 127 then
           raise Constraint_Error with "bad input for 'Value: """
           & S (S'First .. S'First + 127) & "...""";
--- 40,50 ----
     ---------------
  
     procedure Bad_Value (S : String) is
     begin
        --  Bad_Value might be called with very long strings allocated on the
        --  heap. Limit the size of the message so that we avoid creating a
        --  Storage_Error during error handling.
+ 
        if S'Length > 127 then
           raise Constraint_Error with "bad input for 'Value: """
           & S (S'First .. S'First + 127) & "...""";
*************** is
*** 69,76 ****
     procedure Normalize_String
       (S             : in out String;
        F, L          : out Integer;
!       To_Upper_Case : Boolean)
!    is
     begin
        F := S'First;
        L := S'Last;
--- 60,66 ----
     procedure Normalize_String
       (S             : in out String;
        F, L          : out Integer;
!       To_Upper_Case : Boolean) is
     begin
        F := S'First;
        L := S'Last;
*************** is
*** 84,92 ****
        --  Scan for leading spaces
  
        while F < L and then S (F) = ' ' loop
-          pragma Loop_Invariant (F in S'First .. L - 1);
-          pragma Loop_Invariant (for all J in S'First .. F => S (J) = ' ');
-          pragma Loop_Variant (Increases => F);
           F := F + 1;
        end loop;
  
--- 74,79 ----
*************** is
*** 101,109 ****
        --  Scan for trailing spaces
  
        while S (L) = ' ' loop
-          pragma Loop_Invariant (L in F + 1 .. S'Last);
-          pragma Loop_Invariant (for all J in L .. S'Last => S (J) = ' ');
-          pragma Loop_Variant (Decreases => L);
           L := L - 1;
        end loop;
  
--- 88,93 ----
*************** is
*** 112,119 ****
        if To_Upper_Case and then S (F) /= ''' then
           for J in F .. L loop
              S (J) := To_Upper (S (J));
-             pragma Loop_Invariant
-               (for all K in F .. J => S (K) = To_Upper (S'Loop_Entry (K)));
           end loop;
        end if;
     end Normalize_String;
--- 96,101 ----
*************** is
*** 185,224 ****
  
        X := 0;
  
!       declare
!          Rest : constant String := Str (P .. Max) with Ghost;
!          Last : constant Natural := Sp.Last_Number_Ghost (Rest) with Ghost;
! 
!       begin
!          pragma Assert (Sp.Is_Natural_Format_Ghost (Rest));
! 
!          loop
!             pragma Assert (Str (P) in '0' .. '9');
! 
!             if X < (Integer'Last / 10) then
!                X := X * 10 + (Character'Pos (Str (P)) - Character'Pos ('0'));
!             end if;
! 
!             pragma Loop_Invariant (X >= 0);
!             pragma Loop_Invariant (P in Rest'First .. Last);
!             pragma Loop_Invariant (Str (P) in '0' .. '9');
!             pragma Loop_Invariant
!               (Sp.Scan_Natural_Ghost (Rest, Rest'First, 0)
!                = Sp.Scan_Natural_Ghost (Rest, P + 1, X));
  
!             P := P + 1;
  
!             exit when P > Max;
  
!             if Str (P) = '_' then
!                Scan_Underscore (Str, P, Ptr, Max, False);
!             else
!                exit when Str (P) not in '0' .. '9';
!             end if;
!          end loop;
  
!          pragma Assert (P = Last + 1);
!       end;
  
        if M then
           X := -X;
--- 167,189 ----
  
        X := 0;
  
!       loop
!          pragma Assert (Str (P) in '0' .. '9');
  
!          if X < (Integer'Last / 10) then
!             X := X * 10 + (Character'Pos (Str (P)) - Character'Pos ('0'));
!          end if;
  
!          P := P + 1;
  
!          exit when P > Max;
  
!          if Str (P) = '_' then
!             Scan_Underscore (Str, P, Ptr, Max, False);
!          else
!             exit when Str (P) not in '0' .. '9';
!          end if;
!       end loop;
  
        if M then
           X := -X;
*************** is
*** 250,261 ****
        while Str (P) = ' ' loop
           P := P + 1;
  
-          pragma Loop_Invariant (Ptr.all = Ptr.all'Loop_Entry);
-          pragma Loop_Invariant (P in Ptr.all .. Max);
-          pragma Loop_Invariant (for some J in P .. Max => Str (J) /= ' ');
-          pragma Loop_Invariant
-            (for all J in Ptr.all .. P - 1 => Str (J) = ' ');
- 
           if P > Max then
              Ptr.all := P;
              Bad_Value (Str);
--- 215,220 ----
*************** is
*** 264,271 ****
  
        Start := P;
  
-       pragma Assert (Start = Sp.First_Non_Space_Ghost (Str, Ptr.all, Max));
- 
        --  Skip past an initial plus sign
  
        if Str (P) = '+' then
--- 223,228 ----
*************** is
*** 292,298 ****
        Start : out Positive)
     is
        P : Integer := Ptr.all;
- 
     begin
        --  Deal with case of null string (all blanks). As per spec, we raise
        --  constraint error, with Ptr unchanged, and thus > Max.
--- 249,254 ----
*************** is
*** 306,317 ****
        while Str (P) = ' ' loop
           P := P + 1;
  
-          pragma Loop_Invariant (Ptr.all = Ptr.all'Loop_Entry);
-          pragma Loop_Invariant (P in Ptr.all .. Max);
-          pragma Loop_Invariant (for some J in P .. Max => Str (J) /= ' ');
-          pragma Loop_Invariant
-            (for all J in Ptr.all .. P - 1 => Str (J) = ' ');
- 
           if P > Max then
              Ptr.all := P;
              Bad_Value (Str);
--- 262,267 ----
*************** is
*** 320,327 ****
  
        Start := P;
  
-       pragma Assert (Start = Sp.First_Non_Space_Ghost (Str, Ptr.all, Max));
- 
        --  Remember an initial minus sign
  
        if Str (P) = '-' then
--- 270,275 ----
*************** is
*** 361,368 ****
           if Str (J) /= ' ' then
              Bad_Value (Str);
           end if;
- 
-          pragma Loop_Invariant (for all K in P .. J => Str (K) = ' ');
        end loop;
     end Scan_Trailing_Blanks;
  
--- 309,314 ----
*************** is
*** 378,384 ****
        Ext : Boolean)
     is
        C : Character;
- 
     begin
        P := P + 1;
  
--- 324,329 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-valuti.ads gcc-16-20250608/gcc/ada/libgnat/s-valuti.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-valuti.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-valuti.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,89 ****
  
  --  This package provides some common utilities used by the s-valxxx files
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
- with System.Case_Util;
- with System.Val_Spec;
- 
  package System.Val_Util
    with SPARK_Mode, Pure
  is
!    pragma Unevaluated_Use_Of_Old (Allow);
! 
!    package Sp renames System.Val_Spec;
! 
!    procedure Bad_Value (S : String)
!    with
!      Always_Terminates,
!      Depends => (null => S),
!      Exceptional_Cases => (others => Standard.False);
!    pragma No_Return (Bad_Value);
     --  Raises constraint error with message: bad input for 'Value: "xxx"
  
     procedure Normalize_String
       (S             : in out String;
        F, L          : out Integer;
!       To_Upper_Case : Boolean)
!    with
!      Post => (if Sp.Only_Space_Ghost (S'Old, S'First, S'Last) then
!                 F > L
!               else
!                 F >= S'First
!                   and then L <= S'Last
!                   and then F <= L
!                   and then Sp.Only_Space_Ghost (S'Old, S'First, F - 1)
!                   and then S'Old (F) /= ' '
!                   and then S'Old (L) /= ' '
!                   and then
!                     (if L < S'Last then
!                       Sp.Only_Space_Ghost (S'Old, L + 1, S'Last))
!                   and then
!                     (if To_Upper_Case and then S'Old (F) /= ''' then
!                       (for all J in S'Range =>
!                         (if J in F .. L then
!                            S (J) = System.Case_Util.To_Upper (S'Old (J))
!                          else
!                            S (J) = S'Old (J)))));
     --  This procedure scans the string S setting F to be the index of the first
     --  non-blank character of S and L to be the index of the last non-blank
     --  character of S. If To_Upper_Case is True and S does not represent a
--- 31,46 ----
  
  --  This package provides some common utilities used by the s-valxxx files
  
  package System.Val_Util
    with SPARK_Mode, Pure
  is
!    procedure Bad_Value (S : String) with No_Return;
     --  Raises constraint error with message: bad input for 'Value: "xxx"
  
     procedure Normalize_String
       (S             : in out String;
        F, L          : out Integer;
!       To_Upper_Case : Boolean);
     --  This procedure scans the string S setting F to be the index of the first
     --  non-blank character of S and L to be the index of the last non-blank
     --  character of S. If To_Upper_Case is True and S does not represent a
*************** is
*** 96,122 ****
        Ptr   : not null access Integer;
        Max   : Integer;
        Minus : out Boolean;
!       Start : out Positive)
!    with
!      Pre  =>
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Sp.Only_Space_Ghost (Str, Ptr.all, Max)
!        and then
!          (declare
!             F : constant Positive :=
!               Sp.First_Non_Space_Ghost (Str, Ptr.all, Max);
!           begin
!             (if Str (F) in '+' | '-' then
!                F <= Max - 1 and then Str (F + 1) /= ' ')),
!      Post =>
!        (declare
!           F : constant Positive :=
!             Sp.First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
!         begin
!           Minus = (Str (F) = '-')
!             and then Ptr.all = (if Str (F) in '+' | '-' then F + 1 else F)
!             and then Start = F);
     --  The Str, Ptr, Max parameters are as for the scan routines (Str is the
     --  string to be scanned starting at Ptr.all, and Max is the index of the
     --  last character in the string). Scan_Sign first scans out any initial
--- 53,59 ----
        Ptr   : not null access Integer;
        Max   : Integer;
        Minus : out Boolean;
!       Start : out Positive);
     --  The Str, Ptr, Max parameters are as for the scan routines (Str is the
     --  string to be scanned starting at Ptr.all, and Max is the index of the
     --  last character in the string). Scan_Sign first scans out any initial
*************** is
*** 140,165 ****
       (Str   : String;
        Ptr   : not null access Integer;
        Max   : Integer;
!       Start : out Positive)
!    with
!      Pre  =>
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Sp.Only_Space_Ghost (Str, Ptr.all, Max)
!        and then
!          (declare
!             F : constant Positive :=
!               Sp.First_Non_Space_Ghost (Str, Ptr.all, Max);
!           begin
!             (if Str (F) = '+' then
!                F <= Max - 1 and then Str (F + 1) /= ' ')),
!      Post =>
!        (declare
!           F : constant Positive :=
!             Sp.First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
!         begin
!           Ptr.all = (if Str (F) = '+' then F + 1 else F)
!             and then Start = F);
     --  Same as Scan_Sign, but allows only plus, not minus. This is used for
     --  modular types.
  
--- 77,83 ----
       (Str   : String;
        Ptr   : not null access Integer;
        Max   : Integer;
!       Start : out Positive);
     --  Same as Scan_Sign, but allows only plus, not minus. This is used for
     --  modular types.
  
*************** is
*** 168,189 ****
        Ptr  : not null access Integer;
        Max  : Integer;
        Exp  : out Integer;
!       Real : Boolean := False)
!    with
!      Pre =>
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!          and then Max < Natural'Last
!          and then Sp.Is_Opt_Exponent_Format_Ghost (Str (Ptr.all .. Max), Real),
!      Post =>
!        (if Sp.Starts_As_Exponent_Format_Ghost (Str (Ptr.all'Old .. Max), Real)
!         then Exp = Sp.Scan_Exponent_Ghost (Str (Ptr.all'Old .. Max), Real)
!           and then
!           (if Str (Ptr.all'Old + 1) in '-' | '+' then
!              Ptr.all = Sp.Last_Number_Ghost (Str (Ptr.all'Old + 2 .. Max)) + 1
!            else
!              Ptr.all = Sp.Last_Number_Ghost (Str (Ptr.all'Old + 1 .. Max)) + 1)
!         else Exp = 0 and Ptr.all = Ptr.all'Old);
     --  Called to scan a possible exponent. Str, Ptr, Max are as described above
     --  for Scan_Sign. If Ptr.all < Max and Str (Ptr.all) = 'E' or 'e', then an
     --  exponent is scanned out, with the exponent value returned in Exp, and
--- 86,92 ----
        Ptr  : not null access Integer;
        Max  : Integer;
        Exp  : out Integer;
!       Real : Boolean := False);
     --  Called to scan a possible exponent. Str, Ptr, Max are as described above
     --  for Scan_Sign. If Ptr.all < Max and Str (Ptr.all) = 'E' or 'e', then an
     --  exponent is scanned out, with the exponent value returned in Exp, and
*************** is
*** 198,232 ****
     --  This routine must not be called with Str'Last = Positive'Last. There is
     --  no check for this case, the caller must ensure this condition is met.
  
!    procedure Scan_Trailing_Blanks (Str : String; P : Positive)
!    with
!      Pre => P >= Str'First
!        and then Sp.Only_Space_Ghost (Str, P, Str'Last);
     --  Checks that the remainder of the field Str (P .. Str'Last) is all
     --  blanks. Raises Constraint_Error if a non-blank character is found.
  
-    pragma Warnings
-      (GNATprove, Off, """Ptr"" is not modified",
-       Reason => "Ptr is actually modified when raising an exception");
     procedure Scan_Underscore
       (Str : String;
        P   : in out Natural;
        Ptr : not null access Integer;
        Max : Integer;
!       Ext : Boolean)
!    with
!      Pre  => P in Str'Range
!        and then Str (P) = '_'
!        and then Max in Str'Range
!        and then P < Max
!        and then
!          (if Ext then
!             Str (P + 1) in '0' .. '9' | 'A' .. 'F' | 'a' .. 'f'
!           else
!             Str (P + 1) in '0' .. '9'),
!      Post =>
!        P = P'Old + 1
!          and then Ptr.all'Old = Ptr.all;
     --  Called if an underscore is encountered while scanning digits. Str (P)
     --  contains the underscore. Ptr is the pointer to be returned to the
     --  ultimate caller of the scan routine, Max is the maximum subscript in
--- 101,116 ----
     --  This routine must not be called with Str'Last = Positive'Last. There is
     --  no check for this case, the caller must ensure this condition is met.
  
!    procedure Scan_Trailing_Blanks (Str : String; P : Positive);
     --  Checks that the remainder of the field Str (P .. Str'Last) is all
     --  blanks. Raises Constraint_Error if a non-blank character is found.
  
     procedure Scan_Underscore
       (Str : String;
        P   : in out Natural;
        Ptr : not null access Integer;
        Max : Integer;
!       Ext : Boolean);
     --  Called if an underscore is encountered while scanning digits. Str (P)
     --  contains the underscore. Ptr is the pointer to be returned to the
     --  ultimate caller of the scan routine, Max is the maximum subscript in
*************** is
*** 237,242 ****
     --
     --  This routine must not be called with Str'Last = Positive'Last. There is
     --  no check for this case, the caller must ensure this condition is met.
-    pragma Warnings (GNATprove, On, """Ptr"" is not modified");
  
  end System.Val_Util;
--- 121,125 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vauspe.adb gcc-16-20250608/gcc/ada/libgnat/s-vauspe.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-vauspe.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vauspe.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,203 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ U _ S P E C                  --
- --                                                                          --
- --                                 B o d y                                  --
- --                                                                          --
- --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- package body System.Value_U_Spec with SPARK_Mode is
- 
-    -----------------------------
-    -- Exponent_Unsigned_Ghost --
-    -----------------------------
- 
-    function Exponent_Unsigned_Ghost
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10) return Uns_Option
-    is
-       (if Exp = 0 or Value = 0 then (Overflow => False, Value => Value)
-        elsif Scan_Overflows_Ghost (0, Base, Value) then (Overflow => True)
-        else Exponent_Unsigned_Ghost (Value * Base, Exp - 1, Base));
- 
-    ---------------------
-    -- Last_Hexa_Ghost --
-    ---------------------
- 
-    function Last_Hexa_Ghost (Str : String) return Positive is
-    begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "occurs in ghost code, not executable");
- 
-       for J in Str'Range loop
-          if Str (J) not in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' then
-             return J - 1;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Str'First .. J =>
-               Str (K) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_');
-       end loop;
- 
-       return Str'Last;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
-    end Last_Hexa_Ghost;
- 
-    -----------------------------
-    -- Lemmas with null bodies --
-    -----------------------------
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Base
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Underscore
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Overflow
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Step
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Base
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    is null;
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Overflow
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    is null;
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Step
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    is null;
- 
-    --------------------------------------
-    -- Prove_Scan_Based_Number_Ghost_Eq --
-    --------------------------------------
- 
-    procedure Prove_Scan_Based_Number_Ghost_Eq
-      (Str1, Str2 : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is
-    begin
-       if From > To then
-          null;
-       elsif Str1 (From) = '_' then
-          Prove_Scan_Based_Number_Ghost_Eq
-            (Str1, Str2, From + 1, To, Base, Acc);
-       elsif Scan_Overflows_Ghost
-         (Hexa_To_Unsigned_Ghost (Str1 (From)), Base, Acc)
-       then
-          null;
-       else
-          Prove_Scan_Based_Number_Ghost_Eq
-            (Str1, Str2, From + 1, To, Base,
-             Base * Acc + Hexa_To_Unsigned_Ghost (Str1 (From)));
-       end if;
-    end Prove_Scan_Based_Number_Ghost_Eq;
- 
-    -----------------------------------
-    -- Prove_Scan_Only_Decimal_Ghost --
-    -----------------------------------
- 
-    procedure Prove_Scan_Only_Decimal_Ghost
-      (Str : String;
-       Val : Uns)
-    is
-       pragma Assert (Str (Str'First + 1) /= ' ');
-       Non_Blank : constant Positive := First_Non_Space_Ghost
-         (Str, Str'First, Str'Last);
-       pragma Assert (Non_Blank = Str'First + 1);
-       Fst_Num   : constant Positive :=
-         (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
-       pragma Assert (Fst_Num = Str'First + 1);
-    begin
-       pragma Assert
-         (Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last)));
-       pragma Assert
-         (Scan_Split_No_Overflow_Ghost (Str, Str'First + 1, Str'Last));
-       pragma Assert
-         ((Val, 10, 0) = Scan_Split_Value_Ghost (Str, Str'First + 1, Str'Last));
-       pragma Assert
-         (Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
-       pragma Assert (Val = Exponent_Unsigned_Ghost (Val, 0, 10).Value);
-       pragma Assert (Is_Unsigned_Ghost (Str));
-       pragma Assert (Is_Value_Unsigned_Ghost (Str, Val));
-    end Prove_Scan_Only_Decimal_Ghost;
- 
-    -----------------------------
-    -- Scan_Based_Number_Ghost --
-    -----------------------------
- 
-    function Scan_Based_Number_Ghost
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0) return Uns_Option
-    is
-       (if From > To then (Overflow => False, Value => Acc)
-        elsif Str (From) = '_'
-        then Scan_Based_Number_Ghost (Str, From + 1, To, Base, Acc)
-        elsif Scan_Overflows_Ghost
-          (Hexa_To_Unsigned_Ghost (Str (From)), Base, Acc)
-        then (Overflow => True)
-        else Scan_Based_Number_Ghost
-          (Str, From + 1, To, Base,
-           Base * Acc + Hexa_To_Unsigned_Ghost (Str (From))));
- 
- end System.Value_U_Spec;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vauspe.ads gcc-16-20250608/gcc/ada/libgnat/s-vauspe.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vauspe.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vauspe.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,629 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ U _ S P E C                  --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2022-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package is part of a set of Ghost code packages used to proof the
- --  implementations of the Image and Value attributes. It provides the
- --  specification entities using for the formal verification of the routines
- --  for scanning modular unsigned integer values.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Val_Spec; use System.Val_Spec;
- 
- generic
- 
-    type Uns is mod <>;
- 
- package System.Value_U_Spec with
-    Ghost,
-    SPARK_Mode,
-    Always_Terminates
- is
-    pragma Preelaborate;
- 
-    --  Maximum value of exponent for 10 that fits in Uns'Base
-    function Max_Log10 return Natural is
-      (case Uns'Base'Size is
-         when 8   => 2,
-         when 16  => 4,
-         when 32  => 9,
-         when 64  => 19,
-         when 128 => 38,
-         when others => raise Program_Error)
-    with Ghost;
- 
-    pragma Annotate (Gnatcheck, Exempt_On, "Discriminated_Records",
-                     "variant record only used in proof code");
-    type Uns_Option (Overflow : Boolean := False) is record
-       case Overflow is
-          when True =>
-             null;
-          when False =>
-             Value : Uns := 0;
-       end case;
-    end record;
-    pragma Annotate (Gnatcheck, Exempt_Off, "Discriminated_Records");
- 
-    function Wrap_Option (Value : Uns) return Uns_Option is
-      (Overflow => False, Value => Value);
- 
-    function Only_Decimal_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Boolean
-    is
-       (for all J in From .. To => Str (J) in '0' .. '9')
-    with
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only decimal characters
-    --  from index From to index To.
- 
-    function Only_Hexa_Ghost (Str : String; From, To : Integer) return Boolean
-    is
-       (for all J in From .. To =>
-           Str (J) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_')
-    with
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only hexadecimal characters
-    --  from index From to index To.
- 
-    function Last_Hexa_Ghost (Str : String) return Positive
-    with
-      Pre  => Str /= ""
-        and then Str (Str'First) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F',
-      Post => Last_Hexa_Ghost'Result in Str'Range
-        and then (if Last_Hexa_Ghost'Result < Str'Last then
-                    Str (Last_Hexa_Ghost'Result + 1) not in
-                      '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_')
-        and then Only_Hexa_Ghost (Str, Str'First, Last_Hexa_Ghost'Result);
-    --  Ghost function that returns the index of the last character in S that
-    --  is either an hexadecimal digit or an underscore, which necessarily
-    --  exists given the precondition on Str.
- 
-    function Is_Based_Format_Ghost (Str : String) return Boolean
-    is
-      (Str /= ""
-         and then Str (Str'First) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-         and then
-         (declare
-            L : constant Positive := Last_Hexa_Ghost (Str);
-          begin
-            Str (L) /= '_'
-              and then (for all J in Str'First .. L =>
-                          (if Str (J) = '_' then Str (J + 1) /= '_'))));
-    --  Ghost function that determines if Str has the correct format for a
-    --  based number, consisting in a sequence of hexadecimal digits possibly
-    --  separated by single underscores. It may be followed by other characters.
- 
-    function Hexa_To_Unsigned_Ghost (X : Character) return Uns is
-      (case X is
-          when '0' .. '9' => Character'Pos (X) - Character'Pos ('0'),
-          when 'a' .. 'f' => Character'Pos (X) - Character'Pos ('a') + 10,
-          when 'A' .. 'F' => Character'Pos (X) - Character'Pos ('A') + 10,
-          when others     => raise Program_Error)
-    with
-      Pre => X in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
-    --  Ghost function that computes the value corresponding to an hexadecimal
-    --  digit.
- 
-    function Scan_Overflows_Ghost
-      (Digit : Uns;
-       Base  : Uns;
-       Acc   : Uns) return Boolean
-    is
-      (Digit >= Base
-       or else Acc > Uns'Last / Base
-       or else Uns'Last - Digit < Base * Acc);
-    --  Ghost function which returns True if Digit + Base * Acc overflows or
-    --  Digit is greater than Base, as this is used by the algorithm for the
-    --  test of overflow.
- 
-    function Scan_Based_Number_Ghost
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0) return Uns_Option
-    with
-      Subprogram_Variant => (Increases => From),
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To);
-    --  Ghost function that recursively computes the based number in Str,
-    --  assuming Acc has been scanned already and scanning continues at index
-    --  From.
- 
-    --  Lemmas unfolding the recursive definition of Scan_Based_Number_Ghost
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Base
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From > To
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-          (Overflow => False, Value => Acc));
-    --  Base case: Scan_Based_Number_Ghost returns Acc if From is bigger than To
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Underscore
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From <= To and then Str (From) = '_'
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-            Scan_Based_Number_Ghost (Str, From + 1, To, Base, Acc));
-    --  Underscore case: underscores are ignored while scanning
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Overflow
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From <= To
-          and then Str (From) /= '_'
-          and then Scan_Overflows_Ghost
-            (Hexa_To_Unsigned_Ghost (Str (From)), Base, Acc)
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-            (Overflow => True));
-    --  Overflow case: scanning a digit which causes an overflow
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Step
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From <= To
-          and then Str (From) /= '_'
-          and then not Scan_Overflows_Ghost
-            (Hexa_To_Unsigned_Ghost (Str (From)), Base, Acc)
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-          Scan_Based_Number_Ghost
-            (Str, From + 1, To, Base,
-             Base * Acc + Hexa_To_Unsigned_Ghost (Str (From))));
-    --  Normal case: scanning a digit without overflows
- 
-    function Exponent_Unsigned_Ghost
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10) return Uns_Option
-    with
-      Subprogram_Variant => (Decreases => Exp);
-    --  Ghost function that recursively computes Value * Base ** Exp
- 
-    --  Lemmas unfolding the recursive definition of Exponent_Unsigned_Ghost
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Base
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    with
-      Post =>
-        (if Exp = 0 or Value = 0
-         then Exponent_Unsigned_Ghost (Value, Exp, Base) =
-           (Overflow => False, Value => Value));
-    --  Base case: Exponent_Unsigned_Ghost returns 0 if Value or Exp is 0
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Overflow
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    with
-      Post =>
-        (if Exp /= 0
-           and then Value /= 0
-           and then Scan_Overflows_Ghost (0, Base, Value)
-         then Exponent_Unsigned_Ghost (Value, Exp, Base) = (Overflow => True));
-    --  Overflow case: the next multiplication overflows
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Step
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    with
-      Post =>
-        (if Exp /= 0
-           and then Value /= 0
-           and then not Scan_Overflows_Ghost (0, Base, Value)
-         then Exponent_Unsigned_Ghost (Value, Exp, Base) =
-             Exponent_Unsigned_Ghost (Value * Base, Exp - 1, Base));
-    --  Normal case: exponentiation without overflows
- 
-    function Raw_Unsigned_Starts_As_Based_Ghost
-      (Str               : String;
-       Last_Num_Init, To : Integer)
-       return Boolean
-    is
-      (Last_Num_Init < To - 1
-       and then Str (Last_Num_Init + 1) in '#' | ':'
-       and then Str (Last_Num_Init + 2) in
-       '0' .. '9' | 'a' .. 'f' | 'A' .. 'F')
-    with Ghost,
-      Pre => Last_Num_Init in Str'Range
-      and then To in Str'Range;
-    --  Return True if Str starts as a based number
- 
-    function Raw_Unsigned_Is_Based_Ghost
-      (Str            : String;
-       Last_Num_Init  : Integer;
-       Last_Num_Based : Integer;
-       To             : Integer)
-       return Boolean
-    is
-      (Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To)
-       and then Last_Num_Based < To
-       and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1))
-    with Ghost,
-      Pre => Last_Num_Init in Str'Range
-      and then Last_Num_Based in Last_Num_Init .. Str'Last
-      and then To in Str'Range;
-    --  Return True if Str is a based number
- 
-    function Is_Raw_Unsigned_Format_Ghost (Str : String) return Boolean is
-      (Is_Natural_Format_Ghost (Str)
-       and then
-         (declare
-            Last_Num_Init   : constant Integer := Last_Number_Ghost (Str);
-            Starts_As_Based : constant Boolean :=
-              Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, Str'Last);
-            Last_Num_Based  : constant Integer :=
-              (if Starts_As_Based
-               then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. Str'Last))
-               else Last_Num_Init);
-            Is_Based        : constant Boolean :=
-              Raw_Unsigned_Is_Based_Ghost
-                (Str, Last_Num_Init, Last_Num_Based, Str'Last);
-            First_Exp       : constant Integer :=
-              (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
-          begin
-            (if Starts_As_Based then
-               Is_Based_Format_Ghost (Str (Last_Num_Init + 2 .. Str'Last))
-               and then Last_Num_Based < Str'Last)
-             and then Is_Opt_Exponent_Format_Ghost
-               (Str (First_Exp .. Str'Last))))
-    with
-      Pre  => Str'Last /= Positive'Last;
-    --  Ghost function that determines if Str has the correct format for an
-    --  unsigned number without a sign character.
-    --  It is a natural number in base 10, optionally followed by a based
-    --  number surrounded by delimiters # or :, optionally followed by an
-    --  exponent part.
- 
-    type Split_Value_Ghost is record
-       Value : Uns;
-       Base  : Uns;
-       Expon : Natural;
-    end record;
- 
-    function Scan_Split_No_Overflow_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Boolean
-    is
-      (declare
-         Last_Num_Init   : constant Integer :=
-           Last_Number_Ghost (Str (From .. To));
-         Init_Val        : constant Uns_Option :=
-           Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
-         Starts_As_Based : constant Boolean :=
-           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
-         Last_Num_Based  : constant Integer :=
-           (if Starts_As_Based
-            then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
-            else Last_Num_Init);
-         Based_Val       : constant Uns_Option :=
-           (if Starts_As_Based and then not Init_Val.Overflow
-            then Scan_Based_Number_Ghost
-              (Str, Last_Num_Init + 2, Last_Num_Based, Init_Val.Value)
-            else Init_Val);
-       begin
-         not Init_Val.Overflow
-         and then
-           (Last_Num_Init >= To - 1
-            or else Str (Last_Num_Init + 1) not in '#' | ':'
-            or else Init_Val.Value in 2 .. 16)
-         and then
-           (not Starts_As_Based
-            or else not Based_Val.Overflow))
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9';
-    --  Ghost function that determines if an overflow might occur while scanning
-    --  the representation of an unsigned number. The computation overflows if
-    --  either:
-    --    * The computation of the decimal part overflows,
-    --    * The decimal part is followed by a valid delimiter for a based
-    --      part, and the number corresponding to the base is not a valid base,
-    --      or
-    --    * The computation of the based part overflows.
- 
-    pragma Warnings (Off, "constant * is not referenced");
-    function Scan_Split_Value_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Split_Value_Ghost
-    is
-      (declare
-         Last_Num_Init   : constant Integer :=
-           Last_Number_Ghost (Str (From .. To));
-         Init_Val        : constant Uns_Option :=
-           Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
-         Starts_As_Based : constant Boolean :=
-           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
-         Last_Num_Based  : constant Integer :=
-           (if Starts_As_Based
-            then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
-            else Last_Num_Init);
-         Is_Based        : constant Boolean :=
-           Raw_Unsigned_Is_Based_Ghost (Str, Last_Num_Init, Last_Num_Based, To);
-         Based_Val       : constant Uns_Option :=
-           (if Starts_As_Based and then not Init_Val.Overflow
-            then Scan_Based_Number_Ghost
-              (Str, Last_Num_Init + 2, Last_Num_Based, Init_Val.Value)
-            else Init_Val);
-         First_Exp       : constant Integer :=
-           (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
-         Expon           : constant Natural :=
-           (if Starts_As_Exponent_Format_Ghost (Str (First_Exp .. To))
-            then Scan_Exponent_Ghost (Str (First_Exp .. To))
-            else 0);
-         Base            : constant Uns :=
-           (if Is_Based then Init_Val.Value else 10);
-         Value           : constant Uns :=
-           (if Is_Based then Based_Val.Value else Init_Val.Value);
-       begin
-         (Value => Value, Base => Base, Expon => Expon))
-    with
-      Pre => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9'
-        and then Scan_Split_No_Overflow_Ghost (Str, From, To);
-    --  Ghost function that scans an unsigned number without a sign character
-    --  and return a record containing the values scanned for its value, its
-    --  base, and its exponent.
-    pragma Warnings (On, "constant * is not referenced");
- 
-    function Raw_Unsigned_No_Overflow_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Boolean
-    is
-      (Scan_Split_No_Overflow_Ghost (Str, From, To)
-       and then
-         (declare
-            Val : constant Split_Value_Ghost := Scan_Split_Value_Ghost
-              (Str, From, To);
-          begin
-            not Exponent_Unsigned_Ghost
-              (Val.Value, Val.Expon, Val.Base).Overflow))
-    with
-      Pre => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9';
-    --  Ghost function that determines if the computation of the unsigned number
-    --  represented by Str will overflow. The computation overflows if either:
-    --    * The scan of the string overflows, or
-    --    * The computation of the exponentiation overflows.
- 
-    function Scan_Raw_Unsigned_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Uns
-    is
-      (declare
-         Val : constant Split_Value_Ghost := Scan_Split_Value_Ghost
-           (Str, From, To);
-       begin
-         Exponent_Unsigned_Ghost (Val.Value, Val.Expon, Val.Base).Value)
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9'
-        and then Raw_Unsigned_No_Overflow_Ghost (Str, From, To);
-    --  Ghost function that scans an unsigned number without a sign character
- 
-    function Raw_Unsigned_Last_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Positive
-    is
-      (declare
-         Last_Num_Init   : constant Integer :=
-           Last_Number_Ghost (Str (From .. To));
-         Starts_As_Based : constant Boolean :=
-           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
-         Last_Num_Based  : constant Integer :=
-           (if Starts_As_Based
-            then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
-            else Last_Num_Init);
-         Is_Based        : constant Boolean :=
-           Raw_Unsigned_Is_Based_Ghost (Str, Last_Num_Init, Last_Num_Based, To);
-         First_Exp       : constant Integer :=
-           (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
-       begin
-         (if not Starts_As_Exponent_Format_Ghost (Str (First_Exp .. To))
-          then First_Exp
-          elsif Str (First_Exp + 1) in '-' | '+' then
-            Last_Number_Ghost (Str (First_Exp + 2 .. To)) + 1
-          else Last_Number_Ghost (Str (First_Exp + 1 .. To)) + 1))
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9',
-      Post => Raw_Unsigned_Last_Ghost'Result >= From;
-    --  Ghost function that returns the position of the cursor once an unsigned
-    --  number has been seen.
- 
-    function Slide_To_1 (Str : String) return String
-    with
-      Post =>
-        Only_Space_Ghost (Str, Str'First, Str'Last) =
-        (for all J in Str'First .. Str'Last =>
-           Slide_To_1'Result (J - Str'First + 1) = ' ');
-    --  Slides Str so that it starts at 1
- 
-    function Slide_If_Necessary (Str : String) return String is
-      (if Str'Last = Positive'Last then Slide_To_1 (Str) else Str);
-    --  If Str'Last = Positive'Last then slides Str so that it starts at 1
- 
-    function Is_Unsigned_Ghost (Str : String) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
-       begin
-         Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last))
-           and then Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last)
-           and then Only_Space_Ghost
-              (Str, Raw_Unsigned_Last_Ghost (Str, Fst_Num, Str'Last), Str'Last))
-    with
-        Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last;
-    --  Ghost function that determines if Str has the correct format for an
-    --  unsigned number, consisting in some blank characters, an optional
-    --  + sign, a raw unsigned number which does not overflow and then some
-    --  more blank characters.
- 
-    function Is_Value_Unsigned_Ghost (Str : String; Val : Uns) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
-       begin
-         Val = Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last))
-    with
-        Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last
-        and then Is_Unsigned_Ghost (Str);
-    --  Ghost function that returns True if Val is the value corresponding to
-    --  the unsigned number represented by Str.
- 
-    procedure Prove_Scan_Based_Number_Ghost_Eq
-      (Str1, Str2 : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Subprogram_Variant => (Increases => From),
-      Pre  => Str1'Last /= Positive'Last
-        and then Str2'Last /= Positive'Last
-        and then
-          (From > To or else (From >= Str1'First and then To <= Str1'Last))
-        and then
-          (From > To or else (From >= Str2'First and then To <= Str2'Last))
-        and then Only_Hexa_Ghost (Str1, From, To)
-        and then (for all J in From .. To => Str1 (J) = Str2 (J)),
-      Post =>
-        Scan_Based_Number_Ghost (Str1, From, To, Base, Acc)
-          = Scan_Based_Number_Ghost (Str2, From, To, Base, Acc);
-    --  Scan_Based_Number_Ghost returns the same value on two slices which are
-    --  equal.
- 
-    procedure Prove_Scan_Only_Decimal_Ghost
-      (Str : String;
-       Val : Uns)
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then Str'Length >= 2
-        and then Str (Str'First) = ' '
-        and then Only_Decimal_Ghost (Str, Str'First + 1, Str'Last)
-        and then Scan_Based_Number_Ghost (Str, Str'First + 1, Str'Last)
-          = Wrap_Option (Val),
-      Post => Is_Unsigned_Ghost (Slide_If_Necessary (Str))
-        and then
-          Is_Value_Unsigned_Ghost (Slide_If_Necessary (Str), Val);
-    --  Ghost lemma used in the proof of 'Image implementation, to prove that
-    --  the result of Value_Unsigned on a decimal string is the same as the
-    --  result of Scan_Based_Number_Ghost.
- 
-    --  Bundle Uns type with other types, constants and subprograms used in
-    --  ghost code, so that this package can be instantiated once and used
-    --  multiple times as generic formal for a given Int type.
- 
- private
- 
-    ----------------
-    -- Slide_To_1 --
-    ----------------
- 
-    function Slide_To_1 (Str : String) return String is
-       (declare
-          Res : constant String (1 .. Str'Length) := Str;
-        begin
-          Res);
- 
- end System.Value_U_Spec;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-veboop.adb gcc-16-20250608/gcc/ada/libgnat/s-veboop.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-veboop.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-veboop.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop invariants and assertions in this unit are meant for
- --  analysis only, not for run-time checking, as it would be too costly
- --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
- pragma Assertion_Policy (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body System.Vectors.Boolean_Operations
    with SPARK_Mode
  is
--- 29,34 ----
*************** is
*** 86,111 ****
     -----------
  
     function "not" (Item : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_Not (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Item)
-           and then Result = (Item xor True_Val),
-         Post => Valid (Result)
-           and then (for all J in 1 .. Vector_Boolean_Size =>
-                       Model (Result) (J) = not Model (Item) (J));
- 
-       procedure Prove_Not (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) = 1 - Element (Item, J));
-          end loop;
-       end Prove_Not;
- 
     begin
-       Prove_Not (Item xor True_Val);
        return Item xor True_Val;
     end "not";
  
--- 78,84 ----
*************** is
*** 119,150 ****
     end Nand;
  
     function Nand (Left, Right : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_And (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Left)
-           and then Valid (Right)
-           and then Result = (Left and Right),
-           Post => Valid (Result)
-             and then (for all J in 1 .. Vector_Boolean_Size =>
-                         Model (Result) (J) =
-                           (Model (Left) (J) and Model (Right) (J)));
- 
-       procedure Prove_And (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) =
-                  (if Element (Left, J) = 1
-                     and Element (Right, J) = 1
-                   then 1
-                   else 0));
-          end loop;
-       end Prove_And;
- 
     begin
-       Prove_And (Left and Right);
        return not (Left and Right);
     end Nand;
  
--- 92,98 ----
*************** is
*** 158,189 ****
     end Nor;
  
     function Nor (Left, Right : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_Or (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Left)
-           and then Valid (Right)
-           and then Result = (Left or Right),
-           Post => Valid (Result)
-             and then (for all J in 1 .. Vector_Boolean_Size =>
-                         Model (Result) (J) =
-                           (Model (Left) (J) or Model (Right) (J)));
- 
-       procedure Prove_Or (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) =
-                  (if Element (Left, J) = 1
-                     or Element (Right, J) = 1
-                   then 1
-                   else 0));
-          end loop;
-       end Prove_Or;
- 
     begin
-       Prove_Or (Left or Right);
        return not (Left or Right);
     end Nor;
  
--- 106,112 ----
*************** is
*** 197,228 ****
     end Nxor;
  
     function Nxor (Left, Right : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_Xor (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Left)
-           and then Valid (Right)
-           and then Result = (Left xor Right),
-           Post => Valid (Result)
-             and then (for all J in 1 .. Vector_Boolean_Size =>
-                         Model (Result) (J) =
-                           (Model (Left) (J) xor Model (Right) (J)));
- 
-       procedure Prove_Xor (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) =
-                  (if Element (Left, J) = 1
-                     xor Element (Right, J) = 1
-                   then 1
-                   else 0));
-          end loop;
-       end Prove_Xor;
- 
     begin
-       Prove_Xor (Left xor Right);
        return not (Left xor Right);
     end Nxor;
  
--- 120,126 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-veboop.ads gcc-16-20250608/gcc/ada/libgnat/s-veboop.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-veboop.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-veboop.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,146 ****
  
  --  This package contains functions for runtime operations on boolean vectors
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  package System.Vectors.Boolean_Operations
    with Pure, SPARK_Mode
  is
-    pragma Warnings (Off, "aspect ""Pre"" not enforced on inlined subprogram",
-                     Reason => "Pre only used in proof");
-    pragma Warnings (Off, "aspect ""Post"" not enforced on inlined subprogram",
-                     Reason => "Post only used in proof");
- 
     --  Type Vectors.Vector represents an array of Boolean, each of which
!    --  takes 8 bits of the representation, with the 7 msb set to zero. Express
!    --  in contracts the constraint on valid vectors and the model that they
!    --  represent, and the relationship between input models and output model.
! 
!    Vector_Boolean_Size : constant Positive :=
!      System.Word_Size / System.Storage_Unit
!    with Ghost;
! 
!    type Vector_Element is mod 2 ** System.Storage_Unit with Ghost;
! 
!    type Vector_Boolean_Array is array (1 .. Vector_Boolean_Size) of Boolean
!    with Ghost;
! 
!    function Shift_Right (V : Vectors.Vector; N : Natural) return Vectors.Vector
!    with Ghost, Import, Convention => Intrinsic;
! 
!    function Element (V : Vectors.Vector; N : Positive) return Vector_Element is
!      (Vector_Element (Shift_Right (V, (N - 1) * System.Storage_Unit)
!                         and (2 ** System.Storage_Unit - 1)))
!    with
!      Ghost,
!      Pre => N <= Vector_Boolean_Size;
!    --  Return the Nth element represented by the vector
! 
!    function Valid (V : Vectors.Vector) return Boolean is
!      (for all J in 1 .. Vector_Boolean_Size =>
!         Element (V, J) in 0 .. 1)
!    with Ghost;
!    --  A valid vector is one for which all elements are 0 (representing False)
!    --  or 1 (representing True).
! 
!    function Model (V : Vectors.Vector) return Vector_Boolean_Array
!    with
!      Ghost,
!      Pre => Valid (V);
! 
!    function Model (V : Vectors.Vector) return Vector_Boolean_Array is
!      (for J in 1 .. Vector_Boolean_Size => Element (V, J) = 1);
!    --  The model of a valid vector is the corresponding array of Boolean values
! 
!    --  Although in general the boolean operations on arrays of booleans are
!    --  identical to operations on arrays of unsigned words of the same size,
!    --  for the "not" operator this is not the case as False is typically
!    --  represented by 0 and true by 1.
! 
!    function "not" (Item : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Item),
!      Post => Valid ("not"'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model ("not"'Result) (J) = not Model (Item) (J));
! 
!    function Nand (Left, Right : Boolean) return Boolean
!    with
!      Post => Nand'Result = not (Left and Right);
! 
!    function Nor  (Left, Right : Boolean) return Boolean
!    with
!      Post => Nor'Result = not (Left or Right);
! 
!    function Nxor (Left, Right : Boolean) return Boolean
!    with
!      Post => Nxor'Result = not (Left xor Right);
  
!    function Nand (Left, Right : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Left)
!        and then Valid (Right),
!      Post => Valid (Nand'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model (Nand'Result) (J) =
!                      Nand (Model (Left) (J), Model (Right) (J)));
  
!    function Nor (Left, Right : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Left)
!        and then Valid (Right),
!      Post => Valid (Nor'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model (Nor'Result) (J) =
!                      Nor (Model (Left) (J), Model (Right) (J)));
  
!    function Nxor (Left, Right : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Left)
!        and then Valid (Right),
!      Post => Valid (Nxor'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model (Nxor'Result) (J) =
!                      Nxor (Model (Left) (J), Model (Right) (J)));
     --  The three boolean operations "nand", "nor" and "nxor" are needed
     --  for cases where the compiler moves boolean array operations into
     --  the body of the loop that iterates over the array elements.
--- 31,51 ----
  
  --  This package contains functions for runtime operations on boolean vectors
  
  package System.Vectors.Boolean_Operations
    with Pure, SPARK_Mode
  is
     --  Type Vectors.Vector represents an array of Boolean, each of which
!    --  takes 8 bits of the representation, with the 7 msb set to zero.
  
!    function "not" (Item : Vectors.Vector) return Vectors.Vector;
  
!    function Nand (Left, Right : Boolean) return Boolean;
!    function Nor  (Left, Right : Boolean) return Boolean;
!    function Nxor (Left, Right : Boolean) return Boolean;
  
!    function Nand (Left, Right : Vectors.Vector) return Vectors.Vector;
!    function Nor (Left, Right : Vectors.Vector) return Vectors.Vector;
!    function Nxor (Left, Right : Vectors.Vector) return Vectors.Vector;
     --  The three boolean operations "nand", "nor" and "nxor" are needed
     --  for cases where the compiler moves boolean array operations into
     --  the body of the loop that iterates over the array elements.
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vs_int.ads gcc-16-20250608/gcc/ada/libgnat/s-vs_int.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vs_int.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vs_int.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,59 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ I N T                        --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning signed Integer
- --  values for use in ``Text_IO.Integer_IO``, and the Value attribute.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_I_Spec;
- with System.Vs_Uns;
- 
- package System.Vs_Int with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Unsigned is Unsigned_Types.Unsigned;
- 
-    package Spec is new System.Value_I_Spec
-      (Integer, Unsigned, System.Vs_Uns.Spec);
- 
- end System.Vs_Int;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vs_lli.ads gcc-16-20250608/gcc/ada/libgnat/s-vs_lli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vs_lli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vs_lli.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,60 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ L L I                        --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning
- --  Long_Long_Integer values for use in ``Text_IO.Integer_IO``, and the Value
- --  attribute.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_I_Spec;
- with System.Vs_LLU;
- 
- package System.Vs_LLI with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
- 
-    package Spec is new System.Value_I_Spec
-      (Long_Long_Integer, Long_Long_Unsigned, System.Vs_LLU.Spec);
- 
- end System.Vs_LLI;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vs_llu.ads gcc-16-20250608/gcc/ada/libgnat/s-vs_llu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vs_llu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vs_llu.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,58 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ L L U                        --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning
- --  Long_Long_Unsigned values for use in ``Text_IO.Modular_IO``, and the Value
- --  attribute.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_U_Spec;
- 
- package System.Vs_LLU with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
- 
-    package Spec is new System.Value_U_Spec (Long_Long_Unsigned);
- 
- end System.Vs_LLU;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vs_uns.ads gcc-16-20250608/gcc/ada/libgnat/s-vs_uns.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vs_uns.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vs_uns.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,57 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ U N S                        --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning modular Unsigned
- --  values for use in ``Text_IO.Modular_IO``, and the Value attribute.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_U_Spec;
- 
- package System.Vs_Uns with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Unsigned is Unsigned_Types.Unsigned;
- 
-    package Spec is new System.Value_U_Spec (Unsigned);
- 
- end System.Vs_Uns;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vsllli.ads gcc-16-20250608/gcc/ada/libgnat/s-vsllli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vsllli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vsllli.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,60 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                        S Y S T E M . V S _ L L L I                       --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning
- --  ``Long_Long_Long_Integer`` values for use in ``Text_IO.Integer_IO``, and
- --  the Value attribute.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_I_Spec;
- with System.Vs_LLLU;
- 
- package System.Vs_LLLI with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
- 
-    package Spec is new System.Value_I_Spec
-      (Long_Long_Long_Integer, Long_Long_Long_Unsigned, System.Vs_LLLU.Spec);
- 
- end System.Vs_LLLI;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-vslllu.ads gcc-16-20250608/gcc/ada/libgnat/s-vslllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-vslllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-vslllu.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,58 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                        S Y S T E M . V S _ L L L U                       --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- --          Copyright (C) 2023-2025, Free Software Foundation, Inc.         --
- --                                                                          --
- -- GNAT is free software;  you can  redistribute it  and/or modify it under --
- -- terms of the  GNU General Public License as published  by the Free Soft- --
- -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
- -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
- --                                                                          --
- -- As a special exception under Section 7 of GPL version 3, you are granted --
- -- additional permissions described in the GCC Runtime Library Exception,   --
- -- version 3.1, as published by the Free Software Foundation.               --
- --                                                                          --
- -- You should have received a copy of the GNU General Public License and    --
- -- a copy of the GCC Runtime Library Exception along with this program;     --
- -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
- -- <http://www.gnu.org/licenses/>.                                          --
- --                                                                          --
- -- GNAT was originally developed  by the GNAT team at  New York University. --
- -- Extensive contributions were provided by Ada Core Technologies Inc.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning
- --  Long_Long_Long_Unsigned values for use in Text_IO.Modular_IO, and the Value
- --  attribute.
- 
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_U_Spec;
- 
- package System.Vs_LLLU with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
- 
-    package Spec is new System.Value_U_Spec (Long_Long_Long_Unsigned);
- 
- end System.Vs_LLLU;
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widint.ads gcc-16-20250608/gcc/ada/libgnat/s-widint.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widint.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widint.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,54 ****
  
  --  Width attribute for signed integers up to Integer
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Width_I;
  
  package System.Wid_Int
    with SPARK_Mode
  is
- 
     function Width_Integer is new Width_I (Integer);
     pragma Pure_Function (Width_Integer);
- 
  end System.Wid_Int;
--- 31,41 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widlli.ads gcc-16-20250608/gcc/ada/libgnat/s-widlli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widlli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widlli.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,54 ****
  
  --  Width attribute for signed integers larger than Integer
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Width_I;
  
  package System.Wid_LLI
    with SPARK_Mode
  is
- 
     function Width_Long_Long_Integer is new Width_I (Long_Long_Integer);
     pragma Pure_Function (Width_Long_Long_Integer);
- 
  end System.Wid_LLI;
--- 31,41 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widllli.ads gcc-16-20250608/gcc/ada/libgnat/s-widllli.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widllli.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widllli.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,55 ****
  
  --  Width attribute for signed integers larger than Long_Long_Integer
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Width_I;
  
  package System.Wid_LLLI
    with SPARK_Mode
  is
- 
     function Width_Long_Long_Long_Integer is
       new Width_I (Long_Long_Long_Integer);
     pragma Pure_Function (Width_Long_Long_Long_Integer);
- 
  end System.Wid_LLLI;
--- 31,42 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widlllu.ads gcc-16-20250608/gcc/ada/libgnat/s-widlllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widlllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widlllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,47 ****
  
  --  Width attribute for modular integers larger than Long_Long_Integer
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Width_U;
  with System.Unsigned_Types;
  
--- 31,36 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widllu.ads gcc-16-20250608/gcc/ada/libgnat/s-widllu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widllu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widllu.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,47 ****
  
  --  Width attribute for modular integers larger than Integer
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Width_U;
  with System.Unsigned_Types;
  
--- 31,36 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widthi.adb gcc-16-20250608/gcc/ada/libgnat/s-widthi.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-widthi.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widthi.adb	Sun Jun  8 22:32:16 2025
***************
*** 29,137 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  function System.Width_I (Lo, Hi : Int) return Natural is
- 
-    --  Ghost code, loop invariants and assertions in this unit are meant for
-    --  analysis only, not for run-time checking, as it would be too costly
-    --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore);
- 
-    -----------------------
-    -- Local Subprograms --
-    -----------------------
- 
-    package Signed_Conversion is new Signed_Conversions (Int => Int);
- 
-    function Big (Arg : Int) return Big_Integer renames
-      Signed_Conversion.To_Big_Integer;
- 
-    --  Maximum value of exponent for 10 that fits in Uns'Base
-    function Max_Log10 return Natural is
-      (case Int'Base'Size is
-         when 8   => 2,
-         when 16  => 4,
-         when 32  => 9,
-         when 64  => 19,
-         when 128 => 38,
-         when others => raise Program_Error)
-    with Ghost;
- 
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Lower_Mult (A, B, C : Big_Natural)
-    with
-      Ghost,
-      Pre  => A <= B,
-      Post => A * C <= B * C;
- 
-    procedure Lemma_Div_Commutation (X, Y : Int)
-    with
-      Ghost,
-      Pre  => X >= 0 and Y > 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y / Z = X / (Y * Z);
- 
-    ----------------------
-    -- Lemma_Lower_Mult --
-    ----------------------
- 
-    procedure Lemma_Lower_Mult (A, B, C : Big_Natural) is null;
- 
-    ---------------------------
-    -- Lemma_Div_Commutation --
-    ---------------------------
- 
-    procedure Lemma_Div_Commutation (X, Y : Int) is null;
- 
-    ---------------------
-    -- Lemma_Div_Twice --
-    ---------------------
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-       XY  : constant Big_Natural := X / Y;
-       YZ  : constant Big_Natural := Y * Z;
-       XYZ : constant Big_Natural := X / Y / Z;
-       R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-    begin
-       pragma Assert (X = XY * Y + (X rem Y));
-       pragma Assert (XY = XY / Z * Z + (XY rem Z));
-       pragma Assert (X = XYZ * YZ + R);
-       pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-       pragma Assert (R <= YZ - 1);
-       pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-       pragma Assert (X / YZ = XYZ + R / YZ);
-    end Lemma_Div_Twice;
- 
-    --  Local variables
- 
     W : Natural;
     T : Int;
- 
-    --  Local ghost variables
- 
-    Max_W  : constant Natural := Max_Log10 with Ghost;
-    Big_10 : constant Big_Integer := Big (10) with Ghost;
- 
-    Pow    : Big_Integer := 1 with Ghost;
-    T_Init : constant Int :=
-      Int'Max (abs Int'Max (Lo, Int'First + 1),
-               abs Int'Max (Hi, Int'First + 1))
-      with Ghost;
- 
- --  Start of processing for System.Width_I
- 
  begin
     if Lo > Hi then
        return 0;
--- 29,37 ----
*************** begin
*** 151,191 ****
        --  Increase value if more digits required
  
        while T >= 10 loop
-          Lemma_Div_Commutation (T, 10);
-          Lemma_Div_Twice (Big (T_Init), Big_10 ** (W - 2), Big_10);
- 
           T := T / 10;
           W := W + 1;
-          Pow := Pow * 10;
- 
-          pragma Loop_Invariant (T >= 0);
-          pragma Loop_Invariant (W in 3 .. Max_W + 3);
-          pragma Loop_Invariant (Pow = Big_10 ** (W - 2));
-          pragma Loop_Invariant (Big (T) = Big (T_Init) / Pow);
-          pragma Loop_Variant (Decreases => T);
        end loop;
  
-       declare
-          F : constant Big_Positive := Big_10 ** (W - 2) with Ghost;
-          Q : constant Big_Natural := Big (T_Init) / F with Ghost;
-          R : constant Big_Natural := Big (T_Init) rem F with Ghost;
-       begin
-          pragma Assert (Q < Big_10);
-          pragma Assert (Big (T_Init) = Q * F + R);
-          Lemma_Lower_Mult (Q, Big (9), F);
-          pragma Assert (Big (T_Init) <= Big (9) * F + F - 1);
-          pragma Assert (Big (T_Init) < Big_10 * F);
-          pragma Assert (Big_10 * F = Big_10 ** (W - 1));
-       end;
- 
-       --  This is an expression of the functional postcondition for Width_I,
-       --  which cannot be expressed readily as a postcondition as this would
-       --  require making the instantiation Signed_Conversion and function Big
-       --  available from the spec.
- 
-       pragma Assert (Big (Int'Max (Lo, Int'First + 1)) < Big_10 ** (W - 1));
-       pragma Assert (Big (Int'Max (Hi, Int'First + 1)) < Big_10 ** (W - 1));
- 
        return W;
     end if;
  
--- 51,60 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widthu.adb gcc-16-20250608/gcc/ada/libgnat/s-widthu.adb
*** gcc-16-20250601/gcc/ada/libgnat/s-widthu.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widthu.adb	Sun Jun  8 22:32:16 2025
***************
*** 31,140 ****
  
  package body System.Width_U is
  
-    --  Ghost code, loop invariants and assertions in this unit are meant for
-    --  analysis only, not for run-time checking, as it would be too costly
-    --  otherwise. This is enforced by setting the assertion policy to Ignore.
- 
-    pragma Assertion_Policy (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     function Width (Lo, Hi : Uns) return Natural is
- 
-       --  Ghost code, loop invariants and assertions in this unit are meant for
-       --  analysis only, not for run-time checking, as it would be too costly
-       --  otherwise. This is enforced by setting the assertion policy to
-       --  Ignore.
- 
-       pragma Assertion_Policy (Ghost          => Ignore,
-                                Loop_Invariant => Ignore,
-                                Assert         => Ignore);
- 
-       ------------------
-       -- Local Lemmas --
-       ------------------
- 
-       procedure Lemma_Lower_Mult (A, B, C : Big_Natural)
-       with
-         Ghost,
-         Pre  => A <= B,
-         Post => A * C <= B * C;
- 
-       procedure Lemma_Div_Commutation (X, Y : Uns)
-       with
-         Ghost,
-         Pre  => Y /= 0,
-         Post => Big (X) / Big (Y) = Big (X / Y);
- 
-       procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-       with
-         Ghost,
-         Post => X / Y / Z = X / (Y * Z);
- 
-       procedure Lemma_Euclidian (V, Q, F, R : Big_Integer)
-       with
-         Ghost,
-         Pre  => F > 0 and then Q = V / F and then R = V rem F,
-         Post => V = Q * F + R;
-       --  Ghost lemma to prove the relation between the quotient/remainder of
-       --  division by F and the value V.
- 
-       ----------------------
-       -- Lemma_Lower_Mult --
-       ----------------------
- 
-       procedure Lemma_Lower_Mult (A, B, C : Big_Natural) is null;
- 
-       ---------------------------
-       -- Lemma_Div_Commutation --
-       ---------------------------
- 
-       procedure Lemma_Div_Commutation (X, Y : Uns) is null;
- 
-       ---------------------
-       -- Lemma_Div_Twice --
-       ---------------------
- 
-       procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-          XY  : constant Big_Natural := X / Y;
-          YZ  : constant Big_Natural := Y * Z;
-          XYZ : constant Big_Natural := X / Y / Z;
-          R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-       begin
-          pragma Assert (X = XY * Y + (X rem Y));
-          pragma Assert (XY = XY / Z * Z + (XY rem Z));
-          pragma Assert (X = XYZ * YZ + R);
-          pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-          pragma Assert (R <= YZ - 1);
-          pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-          pragma Assert (X / YZ = XYZ + R / YZ);
-       end Lemma_Div_Twice;
- 
-       ---------------------
-       -- Lemma_Euclidian --
-       ---------------------
- 
-       procedure Lemma_Euclidian (V, Q, F, R : Big_Integer) is null;
- 
-       --  Local variables
- 
        W : Natural;
        T : Uns;
- 
-       --  Local ghost variables
- 
-       Max_W  : constant Natural := Max_Log10 with Ghost;
-       Pow    : Big_Integer := 1 with Ghost;
-       T_Init : constant Uns := Uns'Max (Lo, Hi) with Ghost;
- 
-    --  Start of processing for System.Width_U
- 
     begin
        if Lo > Hi then
           return 0;
- 
        else
           --  Minimum value is 2, one for space, one for digit
  
--- 31,42 ----
*************** package body System.Width_U is
*** 147,178 ****
           --  Increase value if more digits required
  
           while T >= 10 loop
-             Lemma_Div_Commutation (T, 10);
-             Lemma_Div_Twice (Big (T_Init), Big_10 ** (W - 2), Big_10);
- 
              T := T / 10;
              W := W + 1;
-             Pow := Pow * 10;
- 
-             pragma Loop_Invariant (W in 3 .. Max_W + 2);
-             pragma Loop_Invariant (Pow = Big_10 ** (W - 2));
-             pragma Loop_Invariant (Big (T) = Big (T_Init) / Pow);
-             pragma Loop_Variant (Decreases => T);
           end loop;
  
-          declare
-             F : constant Big_Integer := Big_10 ** (W - 2) with Ghost;
-             Q : constant Big_Integer := Big (T_Init) / F with Ghost;
-             R : constant Big_Integer := Big (T_Init) rem F with Ghost;
-          begin
-             pragma Assert (Q < Big_10);
-             Lemma_Euclidian (Big (T_Init), Q, F, R);
-             Lemma_Lower_Mult (Q, Big (9), F);
-             pragma Assert (Big (T_Init) <= Big (9) * F + F - 1);
-             pragma Assert (Big (T_Init) < Big_10 * F);
-             pragma Assert (Big_10 * F = Big_10 ** (W - 1));
-          end;
- 
           return W;
        end if;
     end Width;
--- 49,58 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widthu.ads gcc-16-20250608/gcc/ada/libgnat/s-widthu.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widthu.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widthu.ads	Sun Jun  8 22:32:16 2025
***************
*** 29,93 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
  --  Compute Width attribute for non-static type derived from a modular integer
  --  type. The arguments Lo, Hi are the bounds of the type.
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  generic
- 
     type Uns is mod <>;
  
  package System.Width_U
    with Pure
  is
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    subtype Big_Natural is BI_Ghost.Big_Natural with Ghost;
!    subtype Big_Positive is BI_Ghost.Big_Positive with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Unsigned_Conversion is
!      new BI_Ghost.Unsigned_Conversions (Int => Uns);
! 
!    function Big (Arg : Uns) return Big_Integer renames
!      Unsigned_Conversion.To_Big_Integer;
! 
!    Big_10 : constant Big_Integer := Big (Uns'(10)) with Ghost;
! 
!    --  Maximum value of exponent for 10 that fits in Uns'Base
!    function Max_Log10 return Natural is
!      (case Uns'Base'Size is
!         when 8   => 2,
!         when 16  => 4,
!         when 32  => 9,
!         when 64  => 19,
!         when 128 => 38,
!         when others => raise Program_Error)
!    with Ghost;
! 
!    function Width (Lo, Hi : Uns) return Natural
!    with
!      Post =>
!        (declare
!           W : constant Natural := System.Width_U.Width'Result;
!         begin
!           (if Lo > Hi then W = 0
!            else W > 0
!              and then W <= Max_Log10 + 2
!              and then Big (Lo) < Big_10 ** (W - 1)
!              and then Big (Hi) < Big_10 ** (W - 1)));
! 
  end System.Width_U;
--- 29,42 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  --  Compute Width attribute for non-static type derived from a modular integer
  --  type. The arguments Lo, Hi are the bounds of the type.
  
  generic
     type Uns is mod <>;
  
  package System.Width_U
    with Pure
  is
!    function Width (Lo, Hi : Uns) return Natural;
  end System.Width_U;
diff -Nrcpad gcc-16-20250601/gcc/ada/libgnat/s-widuns.ads gcc-16-20250608/gcc/ada/libgnat/s-widuns.ads
*** gcc-16-20250601/gcc/ada/libgnat/s-widuns.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/libgnat/s-widuns.ads	Sun Jun  8 22:32:16 2025
***************
*** 31,47 ****
  
  --  Width attribute for modular integers up to Integer
  
- --  Preconditions in this unit are meant for analysis only, not for run-time
- --  checking, so that the expected exceptions are raised. This is enforced by
- --  setting the corresponding assertion policy to Ignore. Postconditions and
- --  contract cases should not be executed at runtime as well, in order not to
- --  slow down the execution of these functions.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Width_U;
  with System.Unsigned_Types;
  
--- 31,36 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/namet.ads gcc-16-20250608/gcc/ada/namet.ads
*** gcc-16-20250601/gcc/ada/namet.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/namet.ads	Sun Jun  8 22:32:16 2025
*************** private
*** 609,614 ****
--- 609,615 ----
        --  Int Value associated with this name
  
     end record;
+    --  The aliased non-boolean components are required to match the C structure
  
     for Name_Entry use record
        Name_Chars_Index      at  0 range 0 .. 31;
*************** private
*** 622,630 ****
        Hash_Link             at  8 range 0 .. 31;
        Int_Info              at 12 range 0 .. 31;
     end record;
  
     for Name_Entry'Size use 16 * 8;
!    --  This ensures that we did not leave out any fields
  
     --  This is the table that is referenced by Valid_Name_Id entries.
     --  It contains one entry for each unique name in the table.
--- 623,632 ----
        Hash_Link             at  8 range 0 .. 31;
        Int_Info              at 12 range 0 .. 31;
     end record;
+    --  This ensures a matching layout between Ada and C
  
     for Name_Entry'Size use 16 * 8;
!    --  This ensures that record is reasonably small
  
     --  This is the table that is referenced by Valid_Name_Id entries.
     --  It contains one entry for each unique name in the table.
diff -Nrcpad gcc-16-20250601/gcc/ada/nlists.adb gcc-16-20250608/gcc/ada/nlists.adb
*** gcc-16-20250601/gcc/ada/nlists.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/nlists.adb	Sun Jun  8 22:32:16 2025
*************** package body Nlists is
*** 125,143 ****
     --------------------------
  
     procedure Allocate_List_Tables (N : Node_Or_Entity_Id) is
-       Old_Last : constant Node_Or_Entity_Id'Base := Next_Node.Last;
- 
     begin
!       pragma Assert (N >= Old_Last);
        Next_Node.Set_Last (N);
        Prev_Node.Set_Last (N);
- 
-       --  Make sure we have no uninitialized junk in any new entries added.
- 
-       for J in Old_Last + 1 .. N loop
-          Next_Node.Table (J) := Empty;
-          Prev_Node.Table (J) := Empty;
-       end loop;
     end Allocate_List_Tables;
  
     ------------
--- 125,134 ----
     --------------------------
  
     procedure Allocate_List_Tables (N : Node_Or_Entity_Id) is
     begin
!       pragma Assert (N >= Next_Node.Last);
        Next_Node.Set_Last (N);
        Prev_Node.Set_Last (N);
     end Allocate_List_Tables;
  
     ------------
diff -Nrcpad gcc-16-20250601/gcc/ada/opt.ads gcc-16-20250608/gcc/ada/opt.ads
*** gcc-16-20250601/gcc/ada/opt.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/opt.ads	Sun Jun  8 22:32:16 2025
*************** package Opt is
*** 308,313 ****
--- 308,317 ----
     --  GNATMAKE
     --  Set to True to check readonly files during the make process
  
+    Check_Semantics_Only_Mode : Boolean := False;
+    --  GNATMAKE
+    --  Set to True when -gnatc is present to only perform semantic checking.
+ 
     Check_Source_Files : Boolean := True;
     --  GNATBIND, GNATMAKE
     --  Set to True to enable consistency checking for any source files that
*************** package Opt is
*** 1518,1527 ****
     --  used for inconsistency error messages. A value of System_Location is
     --  used if the policy is set in package System.
  
-    Tasking_Used : Boolean := False;
-    --  Set True if any tasking construct is encountered. Used to activate the
-    --  output of the Q, L and T lines in ALI files.
- 
     Time_Slice_Set : Boolean := False;
     --  GNATBIND
     --  Set True if a pragma Time_Slice is processed in the main unit, or
--- 1522,1527 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/osint.adb gcc-16-20250608/gcc/ada/osint.adb
*** gcc-16-20250601/gcc/ada/osint.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/osint.adb	Sun Jun  8 22:32:16 2025
*************** package body Osint is
*** 64,69 ****
--- 64,77 ----
     --  Used in Locate_File as a fake directory when Name is already an
     --  absolute path.
  
+    procedure Get_Current_Dir
+      (Dir : System.Address; Length : System.Address);
+    pragma Import (C, Get_Current_Dir, "__gnat_get_current_dir");
+ 
+    Max_Path : Integer;
+    pragma Import (C, Max_Path, "__gnat_max_path_len");
+    --  Maximum length of a path name
+ 
     -------------------------------------
     -- Use of Name_Find and Name_Enter --
     -------------------------------------
*************** package body Osint is
*** 1426,1431 ****
--- 1434,1457 ----
        Smart_Find_File (N, Source, Full_File, Attr.all);
     end Full_Source_Name;
  
+    ---------------------
+    -- Get_Current_Dir --
+    ---------------------
+ 
+    function Get_Current_Dir return String is
+       Path_Len : Natural := Max_Path;
+       Buffer   : String (1 .. 1 + Max_Path + 1);
+ 
+    begin
+       Get_Current_Dir (Buffer'Address, Path_Len'Address);
+ 
+       if Path_Len = 0 then
+          raise Program_Error;
+       end if;
+ 
+       return Buffer (1 .. Path_Len);
+    end Get_Current_Dir;
+ 
     -------------------
     -- Get_Directory --
     -------------------
*************** package body Osint is
*** 1517,1531 ****
       (Search_Dir : String;
        File_Type  : Search_File_Type) return String_Ptr
     is
-       procedure Get_Current_Dir
-         (Dir    : System.Address;
-          Length : System.Address);
-       pragma Import (C, Get_Current_Dir, "__gnat_get_current_dir");
- 
-       Max_Path : Integer;
-       pragma Import (C, Max_Path, "__gnat_max_path_len");
-       --  Maximum length of a path name
- 
        Current_Dir        : String_Ptr;
        Default_Search_Dir : String_Access;
        Default_Suffix_Dir : String_Access;
--- 1543,1548 ----
*************** package body Osint is
*** 2732,2737 ****
--- 2749,2832 ----
     end Read_Source_File;
  
     -------------------
+    -- Relative_Path --
+    -------------------
+ 
+    function Relative_Path (Path : String; Ref : String) return String is
+       Norm_Path : constant String :=
+         Normalize_Pathname (Name => Path, Resolve_Links => False);
+       Norm_Ref  : constant String :=
+         Normalize_Pathname (Name => Ref, Resolve_Links => False);
+       Rel_Path : Bounded_String;
+       Last     : Natural := Norm_Ref'Last;
+       Old      : Natural;
+       Depth    : Natural := 0;
+ 
+    begin
+       pragma Assert (System.OS_Lib.Is_Absolute_Path (Norm_Path));
+       pragma Assert (System.OS_Lib.Is_Absolute_Path (Norm_Ref));
+       pragma Assert (System.OS_Lib.Is_Directory (Norm_Ref));
+ 
+       --  If the root drives are different on Windows then we cannot create a
+       --  relative path.
+ 
+       if Root (Norm_Path) /= Root (Norm_Ref) then
+          return Norm_Path;
+       end if;
+ 
+       if Norm_Path = Norm_Ref then
+          return ".";
+       end if;
+ 
+       loop
+          exit when Last - Norm_Ref'First + 1 <= Norm_Path'Length
+            and then
+              Norm_Path
+                (Norm_Path'First ..
+                     Norm_Path'First + Last - Norm_Ref'First) =
+              Norm_Ref (Norm_Ref'First .. Last);
+ 
+          Old := Last;
+          for J in reverse Norm_Ref'First .. Last - 1 loop
+             if Is_Directory_Separator (Norm_Ref (J)) then
+                Depth := Depth + 1;
+                Last  := J;
+                exit;
+             end if;
+          end loop;
+ 
+          if Old = Last then
+             --  No Dir_Separator in Ref... Let's return Path
+             return Norm_Path;
+          end if;
+       end loop;
+ 
+       --  Move up the directory chain to the common point
+ 
+       for I in 1 .. Depth loop
+          Append (Rel_Path, ".." & System.OS_Lib.Directory_Separator);
+       end loop;
+ 
+       --  Avoid starting the relative path with a directory separator
+ 
+       if Last < Norm_Path'Length
+         and then Is_Directory_Separator (Norm_Path (Norm_Path'First + Last))
+       then
+          Last := Last + 1;
+       end if;
+ 
+       --  Add the rest of the path from the common point
+ 
+       Append
+         (Rel_Path,
+          Norm_Path
+            (Norm_Path'First + Last - Norm_Ref'First + 1 ..
+                 Norm_Path'Last));
+ 
+       return To_String (Rel_Path);
+    end Relative_Path;
+ 
+    -------------------
     -- Relocate_Path --
     -------------------
  
*************** package body Osint is
*** 2788,2793 ****
--- 2883,2907 ----
        return new String'(Path);
     end Relocate_Path;
  
+    ----------
+    -- Root --
+    ----------
+ 
+    function Root (Path : String) return String is
+       Last : Natural := Path'First;
+    begin
+       pragma Assert (System.OS_Lib.Is_Absolute_Path (Path));
+ 
+       for I in Path'Range loop
+          if Is_Directory_Separator (Path (I)) then
+             Last := I;
+             exit;
+          end if;
+       end loop;
+ 
+       return Path (Path'First .. Last);
+    end Root;
+ 
     -----------------
     -- Set_Program --
     -----------------
diff -Nrcpad gcc-16-20250601/gcc/ada/osint.ads gcc-16-20250608/gcc/ada/osint.ads
*** gcc-16-20250601/gcc/ada/osint.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/osint.ads	Sun Jun  8 22:32:16 2025
*************** package Osint is
*** 166,171 ****
--- 166,174 ----
     function Is_Directory_Separator (C : Character) return Boolean;
     --  Returns True if C is a directory separator
  
+    function Get_Current_Dir return String;
+    --  Returns the current working directory for the execution environment
+ 
     function Get_Directory (Name : File_Name_Type) return File_Name_Type;
     --  Get the prefix directory name (if any) from Name. The last separator
     --  is preserved. Return the normalized current directory if there is no
*************** package Osint is
*** 230,235 ****
--- 233,247 ----
       (Canonical_File : String) return String_Access;
     --  Convert a canonical syntax file specification to host syntax
  
+    function Relative_Path (Path : String; Ref : String) return String;
+    --  Given an absolute path Path calculate its relative path from a reference
+    --  directory Ref.
+    --
+    --  If the paths are the same it will return ".".
+    --
+    --  If the paths are on different drives on Windows based systems then it
+    --  will return the normalized version of Path.
+ 
     function Relocate_Path
       (Prefix : String;
        Path   : String) return String_Ptr;
*************** package Osint is
*** 243,248 ****
--- 255,263 ----
     --  If the above computation fails, return Path. This function assumes
     --  Prefix'First = Path'First.
  
+    function Root (Path : String) return String;
+    --  Return the root of an absolute Path.
+ 
     function Shared_Lib (Name : String) return String;
     --  Returns the runtime shared library in the form -l<name>-<version> where
     --  version is the GNAT runtime library option for the platform. For example
diff -Nrcpad gcc-16-20250601/gcc/ada/par-ch4.adb gcc-16-20250608/gcc/ada/par-ch4.adb
*** gcc-16-20250601/gcc/ada/par-ch4.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/par-ch4.adb	Sun Jun  8 22:32:16 2025
*************** package body Ch4 is
*** 592,597 ****
--- 592,611 ----
                                 Explicit_Actual_Parameter => Rnam));
                             exit;
  
+                         --  'Make is a special attribute that takes a variable
+                         --  amount of parameters.
+ 
+                         elsif All_Extensions_Allowed
+                           and then Attr_Name = Name_Make
+                         then
+                            Scan;
+                            Rnam := P_Expression;
+                            Append_To (Expressions (Name_Node),
+                              Make_Parameter_Association (Sloc (Rnam),
+                                Selector_Name             => Expr,
+                                Explicit_Actual_Parameter => Rnam));
+                            exit;
+ 
                          --  For all other cases named notation is illegal
  
                          else
*************** package body Ch4 is
*** 3473,3480 ****
  
     function P_Allocator return Node_Id is
        Alloc_Node             : Node_Id;
-       Type_Node              : Node_Id;
        Null_Exclusion_Present : Boolean;
  
     begin
        Alloc_Node := New_Node (N_Allocator, Token_Ptr);
--- 3487,3495 ----
  
     function P_Allocator return Node_Id is
        Alloc_Node             : Node_Id;
        Null_Exclusion_Present : Boolean;
+       Scan_State             : Saved_Scan_State;
+       Type_Node              : Node_Id;
  
     begin
        Alloc_Node := New_Node (N_Allocator, Token_Ptr);
*************** package body Ch4 is
*** 3496,3501 ****
--- 3511,3541 ----
  
        Null_Exclusion_Present := P_Null_Exclusion;
        Set_Null_Exclusion_Present (Alloc_Node, Null_Exclusion_Present);
+ 
+       --  Check for 'Make
+ 
+       if All_Extensions_Allowed
+         and then Token = Tok_Identifier
+       then
+          Save_Scan_State (Scan_State);
+          Type_Node := P_Qualified_Simple_Name_Resync;
+          if Token = Tok_Apostrophe then
+             Scan;
+             if Token_Name = Name_Make then
+                Restore_Scan_State (Scan_State);
+                Set_Expression
+                  (Alloc_Node,
+                   Make_Qualified_Expression (Token_Ptr,
+                     Subtype_Mark => Check_Subtype_Mark (Type_Node),
+                     Expression   => P_Expression_Or_Range_Attribute));
+                return Alloc_Node;
+             end if;
+          end if;
+          Restore_Scan_State (Scan_State);
+       end if;
+ 
+       --  Otherwise continue parsing the subtype
+ 
        Type_Node := P_Subtype_Mark_Resync;
  
        if Token = Tok_Apostrophe then
diff -Nrcpad gcc-16-20250601/gcc/ada/par-endh.adb gcc-16-20250608/gcc/ada/par-endh.adb
*** gcc-16-20250601/gcc/ada/par-endh.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/par-endh.adb	Sun Jun  8 22:32:16 2025
***************
*** 23,34 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  with Namet.Sp; use Namet.Sp;
  with Stringt;  use Stringt;
  with Uintp;    use Uintp;
  
  with GNAT.Spelling_Checker; use GNAT.Spelling_Checker;
- with Diagnostics.Constructors; use Diagnostics.Constructors;
  
  separate (Par)
  package body Endh is
--- 23,34 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Errid; use Errid;
  with Namet.Sp; use Namet.Sp;
  with Stringt;  use Stringt;
  with Uintp;    use Uintp;
  
  with GNAT.Spelling_Checker; use GNAT.Spelling_Checker;
  
  separate (Par)
  package body Endh is
*************** package body Endh is
*** 899,904 ****
--- 899,906 ----
  
        Wrong_End_Start : Source_Ptr;
        Wrong_End_Finish : Source_Ptr;
+ 
+       Wrong_End_Span : Source_Span;
     begin
        --  Suppress message if this was a potentially junk entry (e.g. a record
        --  entry where no record keyword was present).
*************** package body Endh is
*** 936,966 ****
        elsif End_Type = E_Loop then
           if Error_Msg_Node_1 = Empty then
  
!             if Debug_Flag_Underscore_DD then
! 
!                --  TODO: This is a quick hack to get the location of the
!                --  END LOOP for the demonstration.
! 
!                Wrong_End_Start := Token_Ptr;
  
!                while Token /= Tok_Semicolon loop
!                   Scan; -- past semicolon
!                end loop;
  
!                Wrong_End_Finish := Token_Ptr;
  
!                Restore_Scan_State (Scan_State);
  
!                Record_End_Loop_Expected_Error
!                  (End_Loc   => To_Span (First => Wrong_End_Start,
!                                         Ptr   => Wrong_End_Start,
!                                         Last  => Wrong_End_Finish),
!                   Start_Loc => Error_Msg_Sloc);
  
!             else
!                Error_Msg_SC -- CODEFIX
!                  ("`END LOOP;` expected@ for LOOP#!");
!             end if;
           else
              Error_Msg_SC -- CODEFIX
                ("`END LOOP &;` expected@!");
--- 938,975 ----
        elsif End_Type = E_Loop then
           if Error_Msg_Node_1 = Empty then
  
!             Wrong_End_Start := Token_Ptr;
  
!             while Token /= Tok_Semicolon loop
!                Scan; -- past semicolon
!             end loop;
  
!             Wrong_End_Finish := Token_Ptr;
  
!             Wrong_End_Span :=
!               To_Span
!                 (First => Wrong_End_Start,
!                  Ptr   => Wrong_End_Start,
!                  Last  => Wrong_End_Finish);
  
!             Restore_Scan_State (Scan_State);
  
!             Error_Msg -- CODEFIX
!               (Msg        => "`END LOOP;` expected@ for LOOP#!",
!                Flag_Span  => Wrong_End_Span,
!                N          => Empty,
!                Error_Code => GNAT0004,
!                Spans      =>
!                  (1 => Secondary_Labeled_Span (To_Span (Error_Msg_Sloc))),
!                Fixes      =>
!                  (1 =>
!                     Fix
!                       (Description => "Replace with 'end loop;'",
!                        Edits       =>
!                          (1 =>
!                             Edit
!                               (Text => "end loop;",
!                                Span => Wrong_End_Span)))));
           else
              Error_Msg_SC -- CODEFIX
                ("`END LOOP &;` expected@!");
diff -Nrcpad gcc-16-20250601/gcc/ada/par-prag.adb gcc-16-20250608/gcc/ada/par-prag.adb
*** gcc-16-20250601/gcc/ada/par-prag.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/par-prag.adb	Sun Jun  8 22:32:16 2025
*************** begin
*** 1548,1553 ****
--- 1548,1554 ----
           | Pragma_Priority_Specific_Dispatching
           | Pragma_Profile
           | Pragma_Profile_Warnings
+          | Pragma_Program_Exit
           | Pragma_Propagate_Exceptions
           | Pragma_Provide_Shift_Operators
           | Pragma_Psect_Object
diff -Nrcpad gcc-16-20250601/gcc/ada/repinfo.adb gcc-16-20250608/gcc/ada/repinfo.adb
*** gcc-16-20250601/gcc/ada/repinfo.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/repinfo.adb	Sun Jun  8 22:32:16 2025
*************** package body Repinfo is
*** 77,96 ****
        Op3  : Node_Ref_Or_Val;
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written, we do not write uninitialized values to the file.
- 
-    for Exp_Node use record
-       Expr at  0 range 0 .. 31;
-       Op1  at  4 range 0 .. 31;
-       Op2  at  8 range 0 .. 31;
-       Op3  at 12 range 0 .. 31;
-    end record;
- 
-    for Exp_Node'Size use 16 * 8;
-    --  This ensures that we did not leave out any fields
- 
     package Rep_Table is new Table.Table (
        Table_Component_Type => Exp_Node,
        Table_Index_Type     => Nat,
--- 77,82 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/rtsfind.adb gcc-16-20250608/gcc/ada/rtsfind.adb
*** gcc-16-20250601/gcc/ada/rtsfind.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/rtsfind.adb	Sun Jun  8 22:32:16 2025
*************** package body Rtsfind is
*** 566,576 ****
  
     subtype Ada_Numerics_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers ..
!            Ada_Numerics_Big_Numbers_Big_Integers_Ghost;
  
     subtype Ada_Numerics_Big_Numbers_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers_Big_Integers ..
!            Ada_Numerics_Big_Numbers_Big_Integers_Ghost;
  
     subtype Ada_Real_Time_Descendant is Ada_Descendant
       range Ada_Real_Time_Delays .. Ada_Real_Time_Timing_Events;
--- 566,576 ----
  
     subtype Ada_Numerics_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers ..
!            Ada_Numerics_Big_Numbers_Big_Integers;
  
     subtype Ada_Numerics_Big_Numbers_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers_Big_Integers ..
!            Ada_Numerics_Big_Numbers_Big_Integers;
  
     subtype Ada_Real_Time_Descendant is Ada_Descendant
       range Ada_Real_Time_Delays .. Ada_Real_Time_Timing_Events;
diff -Nrcpad gcc-16-20250601/gcc/ada/rtsfind.ads gcc-16-20250608/gcc/ada/rtsfind.ads
*** gcc-16-20250601/gcc/ada/rtsfind.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/rtsfind.ads	Sun Jun  8 22:32:16 2025
*************** package Rtsfind is
*** 121,127 ****
        --  Children of Ada.Numerics.Big_Numbers
  
        Ada_Numerics_Big_Numbers_Big_Integers,
-       Ada_Numerics_Big_Numbers_Big_Integers_Ghost,
  
        --  Children of Ada.Real_Time
  
--- 121,126 ----
*************** package Rtsfind is
*** 582,588 ****
       RE_Reference,                       -- Ada.Interrupts
  
       RE_Big_Integer,             -- Ada.Numerics.Big_Numbers.Big_Integers
-      RO_GH_Big_Integer,          -- Ada.Numerics.Big_Numbers.Big_Integers_Ghost
       RO_SP_Big_Integer,          -- SPARK.Big_Integers
  
       RE_Names,                           -- Ada.Interrupts.Names
--- 581,586 ----
*************** package Rtsfind is
*** 2231,2237 ****
       RE_Reference                        => Ada_Interrupts,
  
       RE_Big_Integer             => Ada_Numerics_Big_Numbers_Big_Integers,
-      RO_GH_Big_Integer          => Ada_Numerics_Big_Numbers_Big_Integers_Ghost,
       RO_SP_Big_Integer          => SPARK_Big_Integers,
  
       RE_Names                            => Ada_Interrupts_Names,
--- 2229,2234 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/scos.ads gcc-16-20250608/gcc/ada/scos.ads
*** gcc-16-20250601/gcc/ada/scos.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/scos.ads	Sun Jun  8 22:32:16 2025
***************
*** 28,36 ****
  --  the ALI file, and by Get_SCO/Put_SCO to read and write the text form that
  --  is used in the ALI file.
  
- --  WARNING: There is a C version of this package. Any changes to this
- --  source file must be properly reflected in the C header file scos.h
- 
  with Namet; use Namet;
  with Table;
  with Types; use Types;
--- 28,33 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/scos.h gcc-16-20250608/gcc/ada/scos.h
*** gcc-16-20250601/gcc/ada/scos.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/scos.h	Thu Jan  1 00:00:00 1970
***************
*** 1,89 ****
- /****************************************************************************
-  *                                                                          *
-  *                         GNAT COMPILER COMPONENTS                         *
-  *                                                                          *
-  *                                 S C O S                                  *
-  *                                                                          *
-  *                              C Header File                               *
-  *                                                                          *
-  *           Copyright (C) 2014-2025, Free Software Foundation, Inc.        *
-  *                                                                          *
-  * GNAT is free software;  you can  redistribute it  and/or modify it under *
-  * terms of the  GNU General Public License as published  by the Free Soft- *
-  * ware  Foundation;  either version 3,  or (at your option) any later ver- *
-  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
-  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
-  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License *
-  * for  more details.  You should have  received  a copy of the GNU General *
-  * Public License  distributed with GNAT; see file COPYING3.  If not, go to *
-  * http://www.gnu.org/licenses for a complete copy of the license.          *
-  *                                                                          *
-  * GNAT was originally developed  by the GNAT team at  New York University. *
-  * Extensive contributions were provided by Ada Core Technologies Inc.      *
-  *                                                                          *
-  ****************************************************************************/
- 
- /* This is the C header that corresponds to the Ada package specification for
-    Scos.  It was created manually from scos.ads and must be kept synchronized
-    with changes in this file.  */
- 
- #ifdef __cplusplus
- extern "C" {
- #endif
- 
- 
- /* Unit table:  */
- 
- typedef Int SCO_Unit_Index;
- 
- struct SCO_Unit_Table_Entry
-   {
-     String_Pointer File_Name;
-     Int File_Index;
-     Nat Dep_Num;
-     Nat From, To;
-   };
- 
- typedef struct SCO_Unit_Table_Entry *SCO_Unit_Table_Type;
- 
- extern SCO_Unit_Table_Type scos__sco_unit_table__table;
- #define SCO_Unit_Table scos__sco_unit_table__table
- 
- extern Int scos__sco_unit_table__min;
- #define SCO_Unit_Table_Min scos__sco_unit_table__min
- 
- extern Int scos__sco_unit_table__last_val;
- #define SCO_Unit_Table_Last_Val scos__sco_unit_table__last_val
- 
- 
- /* SCOs table:  */
- 
- struct Source_Location
-   {
-     Line_Number_Type Line;
-     Column_Number_Type Col;
-   };
- 
- struct SCO_Table_Entry
-   {
-     struct Source_Location From, To;
-     char C1, C2;
-     bool Last;
-     Source_Ptr Pragma_Sloc;
-     Name_Id Pragma_Aspect_Name;
-   };
- 
- typedef struct SCO_Table_Entry *SCO_Table_Type;
- 
- extern SCO_Table_Type scos__sco_table__table;
- #define SCO_Table scos__sco_table__table
- 
- extern Int scos__sco_table__min;
- #define SCO_Table_Min scos__sco_table__min
- 
- extern Int scos__sco_table__last_val;
- #define SCO_Table_Last_Val scos__sco_table__last_val
- 
- #ifdef __cplusplus
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/sem.ads gcc-16-20250608/gcc/ada/sem.ads
*** gcc-16-20250601/gcc/ada/sem.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem.ads	Sun Jun  8 22:32:16 2025
***************
*** 109,115 ****
  --  pragmas that appear with subprogram specifications rather than in the body.
  
  --  Collectively we call these Spec_Expressions. The routine that performs the
! --  special analysis is called Preanalyze_Spec_Expression.
  
  --  Expansion has to be deferred since you can't generate code for expressions
  --  that reference types that have not been frozen yet. As an example, consider
--- 109,115 ----
  --  pragmas that appear with subprogram specifications rather than in the body.
  
  --  Collectively we call these Spec_Expressions. The routine that performs the
! --  special analysis is called Preanalyze_And_Resolve_Spec_Expression.
  
  --  Expansion has to be deferred since you can't generate code for expressions
  --  that reference types that have not been frozen yet. As an example, consider
***************
*** 198,208 ****
  --  strict preanalysis of other expressions is that we do carry out freezing
  --  in the former (for static scalar expressions) but not in the latter. The
  --  routine that performs preanalysis of default expressions is called
! --  Preanalyze_Spec_Expression and is in Sem_Ch3. The routine that performs
! --  strict preanalysis and corresponding resolution is in Sem_Res and it is
! --  called Preanalyze_And_Resolve. Preanalyze_Spec_Expression relaxes the
! --  strictness of Preanalyze_And_Resolve setting to True the global boolean
! --  variable In_Spec_Expression before calling Preanalyze_And_Resolve.
  
  with Alloc;
  with Einfo.Entities; use Einfo.Entities;
--- 198,208 ----
  --  strict preanalysis of other expressions is that we do carry out freezing
  --  in the former (for static scalar expressions) but not in the latter. The
  --  routine that performs preanalysis of default expressions is called
! --  Preanalyze_And_Resolve_Spec_Expression and is in Sem_Ch3. The routine that
! --  performs strict preanalysis and corresponding resolution is in Sem_Res and
! --  it is called Preanalyze_And_Resolve. Preanalyze_And_Resolve_Spec_Expression
! --  relaxes the strictness of Preanalyze_And_Resolve setting to True the global
! --  boolean variable In_Spec_Expression before calling Preanalyze_And_Resolve.
  
  with Alloc;
  with Einfo.Entities; use Einfo.Entities;
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_aggr.adb gcc-16-20250608/gcc/ada/sem_aggr.adb
*** gcc-16-20250601/gcc/ada/sem_aggr.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_aggr.adb	Sun Jun  8 22:32:16 2025
***************
*** 26,36 ****
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Debug;          use Debug;
- with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Expander;       use Expander;
  with Exp_Tss;        use Exp_Tss;
--- 26,35 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Expander;       use Expander;
  with Exp_Tss;        use Exp_Tss;
*************** package body Sem_Aggr is
*** 4038,4052 ****
        if Present (First (Expressions (N)))
          and then Present (First (Component_Associations (N)))
        then
!          if Debug_Flag_Underscore_DD then
!             Record_Mixed_Container_Aggregate_Error
!               (Aggr       => N,
!                Pos_Elem   => First (Expressions (N)),
!                Named_Elem => First (Component_Associations (N)));
!          else
!             Error_Msg_N
!               ("container aggregate cannot be both positional and named", N);
!          end if;
           return;
        end if;
  
--- 4037,4054 ----
        if Present (First (Expressions (N)))
          and then Present (First (Component_Associations (N)))
        then
!          Error_Msg_N
!            (Msg        =>
!               "container aggregate cannot be both positional and named",
!             N          => N,
!             Error_Code => GNAT0006,
!             Spans      =>
!               (1 =>
!                  Secondary_Labeled_Span
!                    (First (Expressions (N)), "positional element "),
!                2 =>
!                  Secondary_Labeled_Span
!                    (First (Component_Associations (N)), "named element")));
           return;
        end if;
  
*************** package body Sem_Aggr is
*** 6984,6989 ****
--- 6986,7015 ----
        --  Check the dimensions of the components in the record aggregate
  
        Analyze_Dimension_Extension_Or_Record_Aggregate (N);
+ 
+       --  Do a pass for constructors which rely on things being fully expanded
+ 
+       declare
+          function Resolve_Make_Expr (N : Node_Id) return Traverse_Result;
+          --  Recurse in the aggregate and resolve references to 'Make
+ 
+          function Resolve_Make_Expr (N : Node_Id) return Traverse_Result is
+          begin
+             if Nkind (N) = N_Attribute_Reference
+               and then Attribute_Name (N) = Name_Make
+             then
+                Set_Analyzed (N, False);
+                Resolve (N);
+             end if;
+ 
+             return OK;
+          end Resolve_Make_Expr;
+ 
+          procedure Search_And_Resolve_Make_Expr is new
+            Traverse_Proc (Resolve_Make_Expr);
+       begin
+          Search_And_Resolve_Make_Expr (N);
+       end;
     end Resolve_Record_Aggregate;
  
     -----------------------------
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_attr.adb gcc-16-20250608/gcc/ada/sem_attr.adb
*** gcc-16-20250601/gcc/ada/sem_attr.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_attr.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Attr is
*** 1462,1467 ****
--- 1462,1474 ----
              then
                 null;
  
+             --  Attribute 'Old is allowed to appear in Program_Exit
+ 
+             elsif Prag_Nam = Name_Program_Exit
+                  and then Aname = Name_Old
+             then
+                null;
+ 
              elsif Prag_Nam = Name_Test_Case then
                 Check_Placement_In_Test_Case (Prag);
  
*************** package body Sem_Attr is
*** 3317,3323 ****
           E1 := Empty;
           E2 := Empty;
  
!       else
           E1 := First (Exprs);
  
           --  Skip analysis for case of Restriction_Set, we do not expect
--- 3324,3330 ----
           E1 := Empty;
           E2 := Empty;
  
!       elsif Aname /= Name_Make then
           E1 := First (Exprs);
  
           --  Skip analysis for case of Restriction_Set, we do not expect
*************** package body Sem_Attr is
*** 5164,5169 ****
--- 5171,5206 ----
           Check_Not_Incomplete_Type;
           Set_Etype (N, Universal_Integer);
  
+       ----------
+       -- Make --
+       ----------
+ 
+       when Attribute_Make => declare
+          Expr : Entity_Id;
+       begin
+          --  Should this be assert? Parsing should fail if it hits 'Make
+          --  and all extensions aren't enabled ???
+ 
+          if not All_Extensions_Allowed then
+             return;
+          end if;
+ 
+          Set_Etype (N, Etype (P));
+ 
+          if Present (Expressions (N)) then
+             Expr := First (Expressions (N));
+             while Present (Expr) loop
+                if Nkind (Expr) = N_Parameter_Association then
+                   Analyze (Explicit_Actual_Parameter (Expr));
+                else
+                   Analyze (Expr);
+                end if;
+ 
+                Next (Expr);
+             end loop;
+          end if;
+       end;
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Sem_Attr is
*** 7511,7523 ****
           Set_Etype (N, Standard_Boolean);
           Validate_Non_Static_Attribute_Function_Call;
  
!          if P_Type in Standard_Boolean
                      | Standard_Character
                      | Standard_Wide_Character
                      | Standard_Wide_Wide_Character
           then
              Error_Attr_P
!               ("prefix of % attribute must not be a type in Standard");
           end if;
  
           if Discard_Names (First_Subtype (P_Type)) then
--- 7548,7561 ----
           Set_Etype (N, Standard_Boolean);
           Validate_Non_Static_Attribute_Function_Call;
  
!          if Root_Type (P_Type) in Standard_Boolean
                      | Standard_Character
                      | Standard_Wide_Character
                      | Standard_Wide_Wide_Character
           then
              Error_Attr_P
!               ("prefix of % attribute must not be a type originating from " &
!                "Standard");
           end if;
  
           if Discard_Names (First_Subtype (P_Type)) then
*************** package body Sem_Attr is
*** 8712,8717 ****
--- 8750,8762 ----
           Set_Etype (N, C_Type);
           return;
  
+       --  Handle 'Make constructor calls
+ 
+       elsif All_Extensions_Allowed
+         and then Id = Attribute_Make
+       then
+          P_Type := P_Entity;
+ 
        --  No other cases are foldable (they certainly aren't static, and at
        --  the moment we don't try to fold any cases other than the ones above).
  
*************** package body Sem_Attr is
*** 8723,8731 ****
        --  If either attribute or the prefix is Any_Type, then propagate
        --  Any_Type to the result and don't do anything else at all.
  
!       if P_Type = Any_Type
          or else (Present (E1) and then Etype (E1) = Any_Type)
!         or else (Present (E2) and then Etype (E2) = Any_Type)
        then
           Set_Etype (N, Any_Type);
           return;
--- 8768,8777 ----
        --  If either attribute or the prefix is Any_Type, then propagate
        --  Any_Type to the result and don't do anything else at all.
  
!       if Id /= Attribute_Make
!         and then (P_Type = Any_Type
          or else (Present (E1) and then Etype (E1) = Any_Type)
!         or else (Present (E2) and then Etype (E2) = Any_Type))
        then
           Set_Etype (N, Any_Type);
           return;
*************** package body Sem_Attr is
*** 8838,8844 ****
           Static := False;
           Set_Is_Static_Expression (N, False);
  
!       elsif Id /= Attribute_Max_Alignment_For_Allocation then
           if not Is_Constrained (P_Type)
             or else (Id /= Attribute_First and then
                      Id /= Attribute_Last  and then
--- 8884,8892 ----
           Static := False;
           Set_Is_Static_Expression (N, False);
  
!       elsif Id not in Attribute_Max_Alignment_For_Allocation
!                     | Attribute_Make
!       then
           if not Is_Constrained (P_Type)
             or else (Id /= Attribute_First and then
                      Id /= Attribute_Last  and then
*************** package body Sem_Attr is
*** 8914,8966 ****
        --  of the expressions to be scalar in order for the attribute to be
        --  considered to be static.
  
!       declare
!          E : Node_Id;
  
!       begin
!          E := E1;
  
!          while Present (E) loop
  
!             --  If expression is not static, then the attribute reference
!             --  result certainly cannot be static.
  
!             if not Is_Static_Expression (E) then
!                Static := False;
!                Set_Is_Static_Expression (N, False);
!             end if;
  
!             if Raises_Constraint_Error (E) then
!                Set_Raises_Constraint_Error (N);
!             end if;
  
!             --  If the result is not known at compile time, or is not of
!             --  a scalar type, then the result is definitely not static,
!             --  so we can quit now.
  
!             if not Compile_Time_Known_Value (E)
!               or else not Is_Scalar_Type (Etype (E))
!             then
!                Check_Expressions;
!                return;
  
!             --  If the expression raises a constraint error, then so does
!             --  the attribute reference. We keep going in this case because
!             --  we are still interested in whether the attribute reference
!             --  is static even if it is not static.
  
!             elsif Raises_Constraint_Error (E) then
!                Set_Raises_Constraint_Error (N);
!             end if;
  
!             Next (E);
!          end loop;
  
!          if Raises_Constraint_Error (Prefix (N)) then
!             Set_Is_Static_Expression (N, False);
!             return;
!          end if;
!       end;
  
        --  Deal with the case of a static attribute reference that raises
        --  constraint error. The Raises_Constraint_Error flag will already
--- 8962,9016 ----
        --  of the expressions to be scalar in order for the attribute to be
        --  considered to be static.
  
!       if Id /= Attribute_Make then
!          declare
!             E : Node_Id;
  
!          begin
!             E := E1;
  
!             while Present (E) loop
  
!                --  If expression is not static, then the attribute reference
!                --  result certainly cannot be static.
  
!                if not Is_Static_Expression (E) then
!                   Static := False;
!                   Set_Is_Static_Expression (N, False);
!                end if;
  
!                if Raises_Constraint_Error (E) then
!                   Set_Raises_Constraint_Error (N);
!                end if;
  
!                --  If the result is not known at compile time, or is not of
!                --  a scalar type, then the result is definitely not static,
!                --  so we can quit now.
  
!                if not Compile_Time_Known_Value (E)
!                  or else not Is_Scalar_Type (Etype (E))
!                then
!                   Check_Expressions;
!                   return;
  
!                --  If the expression raises a constraint error, then so does
!                --  the attribute reference. We keep going in this case because
!                --  we are still interested in whether the attribute reference
!                --  is static even if it is not static.
  
!                elsif Raises_Constraint_Error (E) then
!                   Set_Raises_Constraint_Error (N);
!                end if;
  
!                Next (E);
!             end loop;
  
!             if Raises_Constraint_Error (Prefix (N)) then
!                Set_Is_Static_Expression (N, False);
!                return;
!             end if;
!          end;
!       end if;
  
        --  Deal with the case of a static attribute reference that raises
        --  constraint error. The Raises_Constraint_Error flag will already
*************** package body Sem_Attr is
*** 9778,9783 ****
--- 9828,9840 ----
           end if;
        end Machine_Size;
  
+       ----------
+       -- Make --
+       ----------
+ 
+       when Attribute_Make =>
+          Set_Etype (N, Etype (Prefix (N)));
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Sem_Attr is
*** 11095,11101 ****
        --  If this is still an attribute reference, then it has not been folded
        --  and that means that its expressions are in a non-static context.
  
!       elsif Nkind (N) = N_Attribute_Reference then
           Check_Expressions;
  
        --  Note: the else case not covered here are odd cases where the
--- 11152,11160 ----
        --  If this is still an attribute reference, then it has not been folded
        --  and that means that its expressions are in a non-static context.
  
!       elsif Nkind (N) = N_Attribute_Reference
!         and then Attribute_Name (N) /= Name_Make
!       then
           Check_Expressions;
  
        --  Note: the else case not covered here are odd cases where the
*************** package body Sem_Attr is
*** 12960,12965 ****
--- 13019,13025 ----
  
              if Expander_Active
                and then Present (Expressions (N))
+               and then Attr_Id /= Attribute_Make
              then
                 declare
                    Expr : Node_Id := First (Expressions (N));
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_attr.ads gcc-16-20250608/gcc/ada/sem_attr.ads
*** gcc-16-20250601/gcc/ada/sem_attr.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_attr.ads	Sun Jun  8 22:32:16 2025
*************** package Sem_Attr is
*** 319,324 ****
--- 319,330 ----
        --  This attribute is identical to the Object_Size attribute. It is
        --  provided for compatibility with the DEC attribute of this name.
  
+       ----------
+       -- Make --
+       ----------
+ 
+       Attribute_Make => True,
+ 
        ----------------------
        -- Max_Integer_Size --
        ----------------------
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch10.adb gcc-16-20250608/gcc/ada/sem_ch10.adb
*** gcc-16-20250601/gcc/ada/sem_ch10.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch10.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Ch10 is
*** 123,137 ****
     --  Verify that a stub is declared immediately within a compilation unit,
     --  and not in an inner frame.
  
-    procedure Expand_With_Clause (Item : Node_Id; Nam : Node_Id; N : Node_Id);
-    --  When a child unit appears in a context clause, the implicit withs on
-    --  parents are made explicit, and with clauses are inserted in the context
-    --  clause before the one for the child. If a parent in the with_clause
-    --  is a renaming, the implicit with_clause is on the renaming whose name
-    --  is mentioned in the with_clause, and not on the package it renames.
-    --  N is the compilation unit whose list of context items receives the
-    --  implicit with_clauses.
- 
     procedure Generate_Parent_References (N : Node_Id; P_Id : Entity_Id);
     --  Generate cross-reference information for the parents of child units
     --  and of subunits. N is a defining_program_unit_name, and P_Id is the
--- 123,128 ----
*************** package body Sem_Ch10 is
*** 2955,2960 ****
--- 2946,2952 ----
  
        if Ada_Version >= Ada_95
          and then In_Predefined_Renaming (U)
+         and then Comes_From_Source (N)
        then
           if Restriction_Check_Required (No_Obsolescent_Features) then
              Check_Restriction (No_Obsolescent_Features, N);
*************** package body Sem_Ch10 is
*** 4932,4937 ****
--- 4924,4931 ----
                             if Entity (Name (Clause)) = Id
                               or else
                                 (Nkind (Name (Clause)) = N_Expanded_Name
+                                  and then
+                                    Is_Entity_Name (Prefix (Name (Clause)))
                                   and then Entity (Prefix (Name (Clause))) = Id)
                             then
                                return True;
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch10.ads gcc-16-20250608/gcc/ada/sem_ch10.ads
*** gcc-16-20250601/gcc/ada/sem_ch10.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch10.ads	Sun Jun  8 22:32:16 2025
*************** package Sem_Ch10 is
*** 45,50 ****
--- 45,59 ----
     --  set when Ent is a tagged type and its class-wide type needs to appear
     --  in the tree.
  
+    procedure Expand_With_Clause (Item : Node_Id; Nam : Node_Id; N : Node_Id);
+    --  When a child unit appears in a context clause, the implicit withs on
+    --  parents are made explicit, and with clauses are inserted in the context
+    --  clause before the one for the child. If a parent in the with_clause
+    --  is a renaming, the implicit with_clause is on the renaming whose name
+    --  is mentioned in the with_clause, and not on the package it renames.
+    --  N is the compilation unit whose list of context items receives the
+    --  implicit with_clauses.
+ 
     procedure Install_Context (N : Node_Id; Chain : Boolean := True);
     --  Installs the entities from the context clause of the given compilation
     --  unit into the visibility chains. This is done before analyzing a unit.
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch12.adb gcc-16-20250608/gcc/ada/sem_ch12.adb
*** gcc-16-20250601/gcc/ada/sem_ch12.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch12.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Ch12 is
*** 276,281 ****
--- 276,282 ----
     --                                Pre
     --                                Pre_Class
     --                                Precondition
+    --                                Program_Exit
     --                                Refined_Depends
     --                                Refined_Global
     --                                Refined_Post
*************** package body Sem_Ch12 is
*** 3371,3377 ****
           end if;
  
           if Present (E) then
!             Preanalyze_Spec_Expression (E, T);
  
              --  The default for a ghost generic formal IN parameter of
              --  access-to-variable type should be a ghost object (SPARK
--- 3372,3378 ----
           end if;
  
           if Present (E) then
!             Preanalyze_And_Resolve_Spec_Expression (E, T);
  
              --  The default for a ghost generic formal IN parameter of
              --  access-to-variable type should be a ghost object (SPARK
*************** package body Sem_Ch12 is
*** 4195,4201 ****
        elsif Present (Expr) then
           Push_Scope (Nam);
           Install_Formals (Nam);
!          Preanalyze_Spec_Expression (Expr, Etype (Nam));
           End_Scope;
        end if;
  
--- 4196,4202 ----
        elsif Present (Expr) then
           Push_Scope (Nam);
           Install_Formals (Nam);
!          Preanalyze_And_Resolve_Spec_Expression (Expr, Etype (Nam));
           End_Scope;
        end if;
  
*************** package body Sem_Ch12 is
*** 13034,13043 ****
             Make_Defining_Identifier (Sloc (Act_Decl_Id), Chars (Act_Decl_Id));
           Preserve_Comes_From_Source (Act_Body_Id, Act_Decl_Id);
  
-          --  Some attributes of spec entity are not inherited by body entity
- 
-          Set_Handler_Records (Act_Body_Id, No_List);
- 
           if Nkind (Defining_Unit_Name (Act_Spec)) =
                                             N_Defining_Program_Unit_Name
           then
--- 13035,13040 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch13.adb gcc-16-20250608/gcc/ada/sem_ch13.adb
*** gcc-16-20250601/gcc/ada/sem_ch13.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch13.adb	Sun Jun  8 22:32:16 2025
*************** with Atree;            use Atree;
*** 29,39 ****
  with Checks;           use Checks;
  with Contracts;        use Contracts;
  with Debug;            use Debug;
- with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;            use Einfo;
  with Einfo.Entities;   use Einfo.Entities;
  with Einfo.Utils;      use Einfo.Utils;
  with Elists;           use Elists;
  with Errout;           use Errout;
  with Exp_Ch3;          use Exp_Ch3;
  with Exp_Disp;         use Exp_Disp;
--- 29,39 ----
  with Checks;           use Checks;
  with Contracts;        use Contracts;
  with Debug;            use Debug;
  with Einfo;            use Einfo;
  with Einfo.Entities;   use Einfo.Entities;
  with Einfo.Utils;      use Einfo.Utils;
  with Elists;           use Elists;
+ with Errid;            use Errid;
  with Errout;           use Errout;
  with Exp_Ch3;          use Exp_Ch3;
  with Exp_Disp;         use Exp_Disp;
*************** with Restrict;         use Restrict;
*** 54,59 ****
--- 54,60 ----
  with Rident;           use Rident;
  with Rtsfind;          use Rtsfind;
  with Sem;              use Sem;
+ with Sem_Aggr;         use Sem_Aggr;
  with Sem_Aux;          use Sem_Aux;
  with Sem_Case;         use Sem_Case;
  with Sem_Cat;          use Sem_Cat;
*************** package body Sem_Ch13 is
*** 1620,1625 ****
--- 1621,1627 ----
        --    Part_Of
        --    Post
        --    Pre
+       --    Program_Exit
        --    Refined_Depends
        --    Refined_Global
        --    Refined_Post
*************** package body Sem_Ch13 is
*** 1872,1882 ****
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases, Always_Terminates, Exit_Cases, Exceptional_Cases and
!       --  Subprogram_Variant aspects. In these cases, we do not have to worry
!       --  about delay issues, since the pragmas themselves deal with delay of
!       --  visibility for the expression analysis. Thus, we just insert the
!       --  pragma after the node N.
  
        if No (L) then
           return;
--- 1874,1884 ----
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases, Always_Terminates, Exit_Cases, Exceptional_Cases,
!       --  Program_Exit and Subprogram_Variant aspects. In these cases, we do
!       --  not have to worry about delay issues, since the pragmas themselves
!       --  deal with delay of visibility for the expression analysis. Thus, we
!       --  just insert the pragma after the node N.
  
        if No (L) then
           return;
*************** package body Sem_Ch13 is
*** 3873,3878 ****
--- 3875,3963 ----
                    goto Continue;
                 end Initial_Condition;
  
+                --  Initialize
+ 
+                when Aspect_Initialize => Initialize : declare
+                   Aspect_Comp : Node_Id;
+                   Type_Comp   : Node_Id;
+                   Typ  : Entity_Id;
+                   Dummy_Aggr : Node_Id;
+                begin
+                   --  Error checking
+ 
+                   if not All_Extensions_Allowed then
+                      goto Continue;
+                   end if;
+ 
+                   if Ekind (E) /= E_Procedure then
+                      Error_Msg_N ("Initialize must apply to a constructor", N);
+                   end if;
+ 
+                   if Present (Expressions (Expression (Aspect))) then
+                      Error_Msg_N ("only component associations allowed", N);
+                   end if;
+ 
+                   --  Install the others for the aggregate if necessary
+ 
+                   Typ := Etype (First_Entity (E));
+ 
+                   if No (First_Entity (Typ)) then
+                      Error_Msg_N
+                        ("Initialize can only apply to contructors"
+                          & " whose type has one or more components", N);
+                   end if;
+ 
+                   Aspect_Comp :=
+                     First (Component_Associations (Expression (Aspect)));
+                   Type_Comp := First_Entity (Typ);
+                   while Present (Type_Comp) loop
+                      if No (Aspect_Comp) then
+                         Append_To
+                           (Component_Associations (Expression (Aspect)),
+                              Make_Component_Association (Loc,
+                                Choices     =>
+                                  New_List (Make_Others_Choice (Loc)),
+                                Box_Present => True));
+                         exit;
+                      elsif Nkind (First (Choices (Aspect_Comp)))
+                              = N_Others_Choice
+                      then
+                         exit;
+                      end if;
+ 
+                      Next (Aspect_Comp);
+                      Next_Entity (Type_Comp);
+                   end loop;
+ 
+                   --  Push the scope and formals for analysis
+ 
+                   Push_Scope (E);
+                   Install_Formals (Defining_Unit_Name (Specification (N)));
+ 
+                   --  Analyze the components
+ 
+                   Aspect_Comp :=
+                     First (Component_Associations (Expression (Aspect)));
+                   while Present (Aspect_Comp) loop
+                      if Present (Expression (Aspect_Comp)) then
+                         Analyze (Expression (Aspect_Comp));
+                      end if;
+ 
+                      Next (Aspect_Comp);
+                   end loop;
+ 
+                   --  Do a psuedo pass over the aggregate to ensure it is valid
+ 
+                   Expander_Active := False;
+                   Dummy_Aggr := New_Copy_Tree (Expression (Aspect));
+                   Resolve_Aggregate (Dummy_Aggr, Typ);
+                   Expander_Active := True;
+ 
+                   --  Return the scope
+ 
+                   End_Scope;
+                end Initialize;
+ 
                 --  Initializes
  
                 --  Aspect Initializes is never delayed because it is equivalent
*************** package body Sem_Ch13 is
*** 4346,4351 ****
--- 4431,4440 ----
                    Analyze_Aspect_Implicit_Dereference;
                    goto Continue;
  
+                when Aspect_Constructor =>
+                   Set_Constructor_Name (E, Expr);
+                   Set_Needs_Construction (E);
+ 
                 --  Dimension
  
                 when Aspect_Dimension =>
*************** package body Sem_Ch13 is
*** 4366,4373 ****
                 --  Case 4: Aspects requiring special handling
  
                 --  Pre/Post/Test_Case/Contract_Cases/Always_Terminates/
!                --  Exceptional_Cases/Exit_Cases and Subprogram_Variant whose
!                --  corresponding pragmas take care of the delay.
  
                 --  Pre/Post
  
--- 4455,4463 ----
                 --  Case 4: Aspects requiring special handling
  
                 --  Pre/Post/Test_Case/Contract_Cases/Always_Terminates/
!                --  Exceptional_Cases/Exit_Cases/Program_Exit and
!                --  Subprogram_Variant whose corresponding pragmas take care of
!                --  the delay.
  
                 --  Pre/Post
  
*************** package body Sem_Ch13 is
*** 4573,4578 ****
--- 4663,4681 ----
                    Insert_Pragma (Aitem);
                    goto Continue;
  
+                --  Program_Exit
+ 
+                when Aspect_Program_Exit =>
+                   Aitem := Make_Aitem_Pragma
+                     (Pragma_Argument_Associations => New_List (
+                        Make_Pragma_Argument_Association (Loc,
+                          Expression => Relocate_Node (Expr))),
+                      Pragma_Name                  => Name_Program_Exit);
+ 
+                   Decorate (Aspect, Aitem);
+                   Insert_Pragma (Aitem);
+                   goto Continue;
+ 
                 --  Subprogram_Variant
  
                 when Aspect_Subprogram_Variant =>
*************** package body Sem_Ch13 is
*** 6278,6288 ****
                    then
                       Set_Check_Address_Alignment (N);
                    end if;
- 
-                   --  Kill the size check code, since we are not allocating
-                   --  the variable, it is somewhere else.
- 
-                   Kill_Size_Check_Code (U_Ent);
                 end;
  
              --  Not a valid entity for an address clause
--- 6381,6386 ----
*************** package body Sem_Ch13 is
*** 6502,6508 ****
                 --  and restored before and after analysis.
  
                 Push_Type (U_Ent);
!                Preanalyze_Spec_Expression (Expr, RTE (RE_CPU_Range));
                 Pop_Type (U_Ent);
  
                 --  AI12-0117-1, "Restriction No_Tasks_Unassigned_To_CPU":
--- 6600,6607 ----
                 --  and restored before and after analysis.
  
                 Push_Type (U_Ent);
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Expr, RTE (RE_CPU_Range));
                 Pop_Type (U_Ent);
  
                 --  AI12-0117-1, "Restriction No_Tasks_Unassigned_To_CPU":
*************** package body Sem_Ch13 is
*** 6592,6601 ****
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
! 
!                Preanalyze_Spec_Expression
                   (Expr, RTE (RE_Dispatching_Domain));
- 
                 Pop_Type (U_Ent);
              end if;
  
--- 6691,6698 ----
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
!                Preanalyze_And_Resolve_Spec_Expression
                   (Expr, RTE (RE_Dispatching_Domain));
                 Pop_Type (U_Ent);
              end if;
  
*************** package body Sem_Ch13 is
*** 6674,6683 ****
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
! 
!                Preanalyze_Spec_Expression
                   (Expr, RTE (RE_Interrupt_Priority));
- 
                 Pop_Type (U_Ent);
  
                 --  Check the No_Task_At_Interrupt_Priority restriction
--- 6771,6778 ----
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
!                Preanalyze_And_Resolve_Spec_Expression
                   (Expr, RTE (RE_Interrupt_Priority));
                 Pop_Type (U_Ent);
  
                 --  Check the No_Task_At_Interrupt_Priority restriction
*************** package body Sem_Ch13 is
*** 6843,6849 ****
                    --  The visibility to the components must be restored
  
                    Push_Type (U_Ent);
!                   Preanalyze_Spec_Expression (Expr, Standard_Integer);
                    Pop_Type (U_Ent);
  
                    if not Is_OK_Static_Expression (Expr) then
--- 6938,6945 ----
                    --  The visibility to the components must be restored
  
                    Push_Type (U_Ent);
!                   Preanalyze_And_Resolve_Spec_Expression
!                     (Expr, Standard_Integer);
                    Pop_Type (U_Ent);
  
                    if not Is_OK_Static_Expression (Expr) then
*************** package body Sem_Ch13 is
*** 7154,7160 ****
              else
                 Small := Expr_Value_R (Expr);
  
!                if Small <= Ureal_0 then
                    Error_Msg_N ("small value must be greater than zero", Expr);
                    return;
                 end if;
--- 7250,7256 ----
              else
                 Small := Expr_Value_R (Expr);
  
!                if not UR_Is_Positive (Small) then
                    Error_Msg_N ("small value must be greater than zero", Expr);
                    return;
                 end if;
*************** package body Sem_Ch13 is
*** 10039,10046 ****
  
                    --  If the predicate pragma comes from an aspect, replace the
                    --  saved expression because we need the subtype references
!                   --  replaced for the calls to Preanalyze_Spec_Expression in
!                   --  Check_Aspect_At_xxx routines.
  
                    if Present (Asp) then
                       Set_Expression_Copy (Asp, New_Copy_Tree (Arg2_Copy));
--- 10135,10142 ----
  
                    --  If the predicate pragma comes from an aspect, replace the
                    --  saved expression because we need the subtype references
!                   --  replaced for the calls to Preanalyze_And_Resolve_Spec_
!                   --  Expression in Check_Aspect_At_xxx routines.
  
                    if Present (Asp) then
                       Set_Expression_Copy (Asp, New_Copy_Tree (Arg2_Copy));
*************** package body Sem_Ch13 is
*** 10806,10812 ****
        --  name, so we need to verify that one of these interpretations is
        --  the one available at at the freeze point.
  
!       elsif A_Id in Aspect_Input
                    | Aspect_Output
                    | Aspect_Read
                    | Aspect_Write
--- 10902,10909 ----
        --  name, so we need to verify that one of these interpretations is
        --  the one available at at the freeze point.
  
!       elsif A_Id in Aspect_Constructor
!                   | Aspect_Input
                    | Aspect_Output
                    | Aspect_Read
                    | Aspect_Write
*************** package body Sem_Ch13 is
*** 10853,10864 ****
                       | Aspect_Static_Predicate
              then
                 Push_Type (Ent);
!                Preanalyze_Spec_Expression (Freeze_Expr, Standard_Boolean);
                 Pop_Type (Ent);
  
              elsif A_Id = Aspect_Priority then
                 Push_Type (Ent);
!                Preanalyze_Spec_Expression (Freeze_Expr, Any_Integer);
                 Pop_Type (Ent);
  
              else
--- 10950,10963 ----
                       | Aspect_Static_Predicate
              then
                 Push_Type (Ent);
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Freeze_Expr, Standard_Boolean);
                 Pop_Type (Ent);
  
              elsif A_Id = Aspect_Priority then
                 Push_Type (Ent);
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Freeze_Expr, Any_Integer);
                 Pop_Type (Ent);
  
              else
*************** package body Sem_Ch13 is
*** 10908,10914 ****
           elsif A_Id in Aspect_Default_Component_Value | Aspect_Default_Value
              and then Is_Private_Type (T)
           then
!             Preanalyze_Spec_Expression (End_Decl_Expr, Full_View (T));
  
           --  The following aspect expressions may contain references to
           --  components and discriminants of the type.
--- 11007,11014 ----
           elsif A_Id in Aspect_Default_Component_Value | Aspect_Default_Value
              and then Is_Private_Type (T)
           then
!             Preanalyze_And_Resolve_Spec_Expression
!               (End_Decl_Expr, Full_View (T));
  
           --  The following aspect expressions may contain references to
           --  components and discriminants of the type.
*************** package body Sem_Ch13 is
*** 10922,10935 ****
                       | Aspect_Static_Predicate
           then
              Push_Type (Ent);
!             Preanalyze_Spec_Expression (End_Decl_Expr, T);
              Pop_Type (Ent);
  
           elsif A_Id = Aspect_Predicate_Failure then
!             Preanalyze_Spec_Expression (End_Decl_Expr, Standard_String);
  
           elsif Present (End_Decl_Expr) then
!             Preanalyze_Spec_Expression (End_Decl_Expr, T);
           end if;
  
           Err :=
--- 11022,11036 ----
                       | Aspect_Static_Predicate
           then
              Push_Type (Ent);
!             Preanalyze_And_Resolve_Spec_Expression (End_Decl_Expr, T);
              Pop_Type (Ent);
  
           elsif A_Id = Aspect_Predicate_Failure then
!             Preanalyze_And_Resolve_Spec_Expression
!               (End_Decl_Expr, Standard_String);
  
           elsif Present (End_Decl_Expr) then
!             Preanalyze_And_Resolve_Spec_Expression (End_Decl_Expr, T);
           end if;
  
           Err :=
*************** package body Sem_Ch13 is
*** 11112,11118 ****
           --  Special case, the expression of these aspects is just an entity
           --  that does not need any resolution, so just analyze.
  
!          when Aspect_Input
              | Aspect_Output
              | Aspect_Put_Image
              | Aspect_Read
--- 11213,11220 ----
           --  Special case, the expression of these aspects is just an entity
           --  that does not need any resolution, so just analyze.
  
!          when Aspect_Constructor
!             | Aspect_Input
              | Aspect_Output
              | Aspect_Put_Image
              | Aspect_Read
*************** package body Sem_Ch13 is
*** 11324,11329 ****
--- 11426,11432 ----
              | Aspect_GNAT_Annotate
              | Aspect_Implicit_Dereference
              | Aspect_Initial_Condition
+             | Aspect_Initialize
              | Aspect_Initializes
              | Aspect_Max_Entry_Queue_Length
              | Aspect_Max_Queue_Length
*************** package body Sem_Ch13 is
*** 11333,11338 ****
--- 11436,11442 ----
              | Aspect_Postcondition
              | Aspect_Pre
              | Aspect_Precondition
+             | Aspect_Program_Exit
              | Aspect_Refined_Depends
              | Aspect_Refined_Global
              | Aspect_Refined_Post
*************** package body Sem_Ch13 is
*** 11359,11365 ****
        --  the aspect_specification cause freezing (RM 13.14(7.2/5)).
  
        if Present (Expression (ASN)) then
!          Preanalyze_Spec_Expression (Expression (ASN), T);
        end if;
     end Check_Aspect_At_Freeze_Point;
  
--- 11463,11469 ----
        --  the aspect_specification cause freezing (RM 13.14(7.2/5)).
  
        if Present (Expression (ASN)) then
!          Preanalyze_And_Resolve_Spec_Expression (Expression (ASN), T);
        end if;
     end Check_Aspect_At_Freeze_Point;
  
*************** package body Sem_Ch13 is
*** 12082,12099 ****
  
           if not Check_Primitive_Function (Subp, Typ) then
              if Present (Ref_Node) then
!                if Debug_Flag_Underscore_DD then
!                   Record_Default_Iterator_Not_Primitive_Error
!                     (Ref_Node, Subp);
!                else
!                   Error_Msg_N ("improper function for default iterator!",
!                      Ref_Node);
!                   Error_Msg_Sloc := Sloc (Subp);
!                   Error_Msg_NE
!                      ("\\default iterator defined # "
!                      & "must be a local primitive or class-wide function",
!                      Ref_Node, Subp);
!                end if;
              end if;
  
              return False;
--- 12186,12200 ----
  
           if not Check_Primitive_Function (Subp, Typ) then
              if Present (Ref_Node) then
!                Error_Msg_N
!                  ("improper function for default iterator!",
!                   Ref_Node,
!                   GNAT0001);
!                Error_Msg_Sloc := Sloc (Subp);
!                Error_Msg_NE
!                   ("\\default iterator defined # "
!                   & "must be a local primitive or class-wide function",
!                   Ref_Node, Subp);
              end if;
  
              return False;
*************** package body Sem_Ch13 is
*** 13928,13934 ****
                          Next (First (Pragma_Argument_Associations (Ritem)));
                    begin
                       Push_Type (E);
!                      Preanalyze_Spec_Expression
                         (Expression (Arg), Standard_Boolean);
                       Pop_Type (E);
                    end;
--- 14029,14035 ----
                          Next (First (Pragma_Argument_Associations (Ritem)));
                    begin
                       Push_Type (E);
!                      Preanalyze_And_Resolve_Spec_Expression
                         (Expression (Arg), Standard_Boolean);
                       Pop_Type (E);
                    end;
*************** package body Sem_Ch13 is
*** 15786,15812 ****
           --  anyway, no reason to be too strict about this.
  
           if not Relaxed_RM_Semantics then
!             if Debug_Flag_Underscore_DD then
! 
!                S := First_Subtype (T);
!                if Present (Freeze_Node (S)) then
!                   Record_Representation_Too_Late_Error
!                     (Rep    => N,
!                      Freeze => Freeze_Node (S),
!                      Def    => S);
!                else
!                   Error_Msg_N ("|representation item appears too late!", N);
!                end if;
! 
              else
                 Error_Msg_N ("|representation item appears too late!", N);
- 
-                S := First_Subtype (T);
-                if Present (Freeze_Node (S)) then
-                   Error_Msg_NE
-                     ("??no more representation items for }",
-                      Freeze_Node (S), S);
-                end if;
              end if;
           end if;
        end Too_Late;
--- 15887,15922 ----
           --  anyway, no reason to be too strict about this.
  
           if not Relaxed_RM_Semantics then
!             S := First_Subtype (T);
!             if Present (Freeze_Node (S)) then
!                Error_Msg_N
!                  (Msg        =>
!                     "record representation cannot be specified" &
!                     " after the type is frozen",
!                   N          => N,
!                   Error_Code => GNAT0005,
!                   Label      =>
!                     "record representation clause specified here",
!                   Spans      =>
!                     (1 =>
!                        Secondary_Labeled_Span
!                          (N     => Freeze_Node (S),
!                           Label =>
!                             "Type " & To_Name (S) &
!                             " is frozen here"),
!                      2 =>
!                        Secondary_Labeled_Span
!                          (N     => S,
!                           Label =>
!                             "Type " & To_Name (S) &
!                             " is declared here")));
!                Error_Msg_Sloc := Sloc (Freeze_Node (S));
!                Error_Msg_N
!                  ("\\move the record representation clause" &
!                   " before the freeze point #",
!                   N);
              else
                 Error_Msg_N ("|representation item appears too late!", N);
              end if;
           end if;
        end Too_Late;
*************** package body Sem_Ch13 is
*** 16345,16350 ****
--- 16455,16463 ----
                    =>
                       null;
  
+                   when Aspect_Constructor =>
+                      null;
+ 
                    when Aspect_Dynamic_Predicate
                       | Aspect_Ghost_Predicate
                       | Aspect_Predicate
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch3.adb gcc-16-20250608/gcc/ada/sem_ch3.adb
*** gcc-16-20250601/gcc/ada/sem_ch3.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch3.adb	Sun Jun  8 22:32:16 2025
*************** with Exp_Disp;       use Exp_Disp;
*** 41,47 ****
  with Exp_Dist;       use Exp_Dist;
  with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
- with Expander;       use Expander;
  with Fmap;
  with Freeze;         use Freeze;
  with Ghost;          use Ghost;
--- 41,46 ----
*************** package body Sem_Ch3 is
*** 623,631 ****
     --  Create a new ordinary fixed point type, and apply the constraint to
     --  obtain subtype of it.
  
!    procedure Preanalyze_Default_Expression (N : Node_Id; T : Entity_Id);
!    --  Wrapper on Preanalyze_Spec_Expression for default expressions, so that
!    --  In_Default_Expr can be properly adjusted.
  
     procedure Prepare_Private_Subtype_Completion
       (Id          : Entity_Id;
--- 622,632 ----
     --  Create a new ordinary fixed point type, and apply the constraint to
     --  obtain subtype of it.
  
!    procedure Preanalyze_And_Resolve_Default_Expression
!      (N : Node_Id;
!       T : Entity_Id);
!    --  Wrapper on Preanalyze_And_Resolve_Spec_Expression for default
!    --  expressions, so that In_Default_Expr can be properly adjusted.
  
     procedure Prepare_Private_Subtype_Completion
       (Id          : Entity_Id;
*************** package body Sem_Ch3 is
*** 1307,1320 ****
        Reinit_Size_Align            (T_Name);
        Set_Directly_Designated_Type (T_Name, Desig_Type);
  
-       --  If the access_to_subprogram is not declared at the library level,
-       --  it can only point to subprograms that are at the same or deeper
-       --  accessibility level. The corresponding subprogram type might
-       --  require an activation record when compiling for C.
- 
-       Set_Needs_Activation_Record  (Desig_Type,
-                                       not Is_Library_Level_Entity (T_Name));
- 
        Generate_Reference_To_Formals (T_Name);
  
        --  Ada 2005 (AI-231): Propagate the null-excluding attribute
--- 1308,1313 ----
*************** package body Sem_Ch3 is
*** 2110,2116 ****
        --  package Sem).
  
        if Present (E) then
!          Preanalyze_Default_Expression (E, T);
           Check_Initialization (T, E);
  
           if Ada_Version >= Ada_2005
--- 2103,2109 ----
        --  package Sem).
  
        if Present (E) then
!          Preanalyze_And_Resolve_Default_Expression (E, T);
           Check_Initialization (T, E);
  
           if Ada_Version >= Ada_2005
*************** package body Sem_Ch3 is
*** 2507,2513 ****
                             (First (Pragma_Argument_Associations (ASN))));
                       Set_Parent (Exp, ASN);
  
!                      Preanalyze_Assert_Expression (Exp, Standard_Boolean);
                    end if;
  
                    ASN := Next_Pragma (ASN);
--- 2500,2507 ----
                             (First (Pragma_Argument_Associations (ASN))));
                       Set_Parent (Exp, ASN);
  
!                      Preanalyze_And_Resolve_Assert_Expression
!                        (Exp, Standard_Boolean);
                    end if;
  
                    ASN := Next_Pragma (ASN);
*************** package body Sem_Ch3 is
*** 3200,3206 ****
          and then Present (Full_View (Prev))
        then
           T := Full_View (Prev);
!          Set_Incomplete_View (N, Prev);
        else
           T := Prev;
        end if;
--- 3194,3200 ----
          and then Present (Full_View (Prev))
        then
           T := Full_View (Prev);
!          Set_Incomplete_View (T, Prev);
        else
           T := Prev;
        end if;
*************** package body Sem_Ch3 is
*** 3551,3556 ****
--- 3545,3557 ----
              end;
           end if;
        end if;
+ 
+       if Ekind (T) = E_Record_Type
+         and then Is_Large_Unconstrained_Definite (T)
+         and then not Is_Limited_Type (T)
+       then
+          Error_Msg_N ("??creation of & object may raise Storage_Error!", T);
+       end if;
     end Analyze_Full_Type_Declaration;
  
     ----------------------------------
*************** package body Sem_Ch3 is
*** 4991,4997 ****
  
              if Is_Array_Type (T)
                and then No_Initialization (N)
!               and then Nkind (Original_Node (E)) = N_Aggregate
              then
                 Act_T := Etype (E);
  
--- 4992,4998 ----
  
              if Is_Array_Type (T)
                and then No_Initialization (N)
!               and then Nkind (Unqualify (Original_Node (E))) = N_Aggregate
              then
                 Act_T := Etype (E);
  
*************** package body Sem_Ch3 is
*** 5137,5146 ****
  
        elsif Is_Array_Type (T)
          and then No_Initialization (N)
!         and then (Nkind (Original_Node (E)) = N_Aggregate
!                    or else (Nkind (Original_Node (E)) = N_Qualified_Expression
!                              and then Nkind (Original_Node (Expression
!                                         (Original_Node (E)))) = N_Aggregate))
        then
           if not Is_Entity_Name (Object_Definition (N)) then
              Act_T := Etype (E);
--- 5138,5144 ----
  
        elsif Is_Array_Type (T)
          and then No_Initialization (N)
!         and then Nkind (Unqualify (Original_Node (E))) = N_Aggregate
        then
           if not Is_Entity_Name (Object_Definition (N)) then
              Act_T := Etype (E);
*************** package body Sem_Ch3 is
*** 6633,6640 ****
           end;
        end if;
  
-       --  Constrained array case
- 
        if No (T) then
           --  We might be creating more than one itype with the same Related_Id,
           --  e.g. for an array object definition and its initial value. Give
--- 6631,6636 ----
*************** package body Sem_Ch3 is
*** 6644,6649 ****
--- 6640,6647 ----
           T := Create_Itype (E_Void, P, Related_Id, 'T', Suffix_Index => -1);
        end if;
  
+       --  Constrained array case
+ 
        if Nkind (Def) = N_Constrained_Array_Definition then
           Index := First (Discrete_Subtype_Definitions (Def));
  
*************** package body Sem_Ch3 is
*** 11985,11991 ****
              Insert_Before (Typ_Decl, Decl);
              Analyze (Decl);
              Set_Full_View (Inc_T, Typ);
!             Set_Incomplete_View (Typ_Decl, Inc_T);
  
              --  If the type is tagged, create a common class-wide type for
              --  both views, and set the Etype of the class-wide type to the
--- 11983,11989 ----
              Insert_Before (Typ_Decl, Decl);
              Analyze (Decl);
              Set_Full_View (Inc_T, Typ);
!             Set_Incomplete_View (Typ, Inc_T);
  
              --  If the type is tagged, create a common class-wide type for
              --  both views, and set the Etype of the class-wide type to the
*************** package body Sem_Ch3 is
*** 20857,20923 ****
        Set_Is_Constrained     (T);
     end Ordinary_Fixed_Point_Type_Declaration;
  
!    ----------------------------------
!    -- Preanalyze_Assert_Expression --
!    ----------------------------------
  
!    procedure Preanalyze_Assert_Expression (N : Node_Id; T : Entity_Id) is
     begin
        In_Assertion_Expr := In_Assertion_Expr + 1;
!       Preanalyze_Spec_Expression (N, T);
        In_Assertion_Expr := In_Assertion_Expr - 1;
!    end Preanalyze_Assert_Expression;
! 
!    --  ??? The variant below explicitly saves and restores all the flags,
!    --  because it is impossible to compose the existing variety of
!    --  Analyze/Resolve (and their wrappers, e.g. Preanalyze_Spec_Expression)
!    --  to achieve the desired semantics.
  
!    procedure Preanalyze_Assert_Expression (N : Node_Id) is
!       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
!       Save_Full_Analysis      : constant Boolean := Full_Analysis;
  
     begin
        In_Assertion_Expr  := In_Assertion_Expr + 1;
!       In_Spec_Expression := True;
!       Full_Analysis      := False;
!       Expander_Mode_Save_And_Set (False);
! 
!       if GNATprove_Mode then
!          Analyze_And_Resolve (N);
!       else
!          Analyze_And_Resolve (N, Suppress => All_Checks);
!       end if;
! 
!       Expander_Mode_Restore;
!       Full_Analysis      := Save_Full_Analysis;
!       In_Spec_Expression := Save_In_Spec_Expression;
        In_Assertion_Expr  := In_Assertion_Expr - 1;
!    end Preanalyze_Assert_Expression;
  
!    -----------------------------------
!    -- Preanalyze_Default_Expression --
!    -----------------------------------
  
!    procedure Preanalyze_Default_Expression (N : Node_Id; T : Entity_Id) is
        Save_In_Default_Expr : constant Boolean := In_Default_Expr;
     begin
        In_Default_Expr := True;
!       Preanalyze_Spec_Expression (N, T);
        In_Default_Expr := Save_In_Default_Expr;
!    end Preanalyze_Default_Expression;
  
!    --------------------------------
!    -- Preanalyze_Spec_Expression --
!    --------------------------------
  
!    procedure Preanalyze_Spec_Expression (N : Node_Id; T : Entity_Id) is
        Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
     begin
        In_Spec_Expression := True;
        Preanalyze_And_Resolve (N, T);
        In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_Spec_Expression;
  
     ----------------------------------------
     -- Prepare_Private_Subtype_Completion --
--- 20855,20925 ----
        Set_Is_Constrained     (T);
     end Ordinary_Fixed_Point_Type_Declaration;
  
!    ----------------------------------------------
!    -- Preanalyze_And_Resolve_Assert_Expression --
!    ----------------------------------------------
  
!    procedure Preanalyze_And_Resolve_Assert_Expression
!      (N : Node_Id;
!       T : Entity_Id) is
     begin
        In_Assertion_Expr := In_Assertion_Expr + 1;
!       Preanalyze_And_Resolve_Spec_Expression (N, T);
        In_Assertion_Expr := In_Assertion_Expr - 1;
!    end Preanalyze_And_Resolve_Assert_Expression;
  
!    ----------------------------------------------
!    -- Preanalyze_And_Resolve_Assert_Expression --
!    ----------------------------------------------
  
+    procedure Preanalyze_And_Resolve_Assert_Expression (N : Node_Id) is
     begin
        In_Assertion_Expr  := In_Assertion_Expr + 1;
!       Preanalyze_And_Resolve_Spec_Expression (N);
        In_Assertion_Expr  := In_Assertion_Expr - 1;
!    end Preanalyze_And_Resolve_Assert_Expression;
  
!    -----------------------------------------------
!    -- Preanalyze_And_Resolve_Default_Expression --
!    -----------------------------------------------
  
!    procedure Preanalyze_And_Resolve_Default_Expression
!       (N : Node_Id;
!        T : Entity_Id)
!    is
        Save_In_Default_Expr : constant Boolean := In_Default_Expr;
     begin
        In_Default_Expr := True;
!       Preanalyze_And_Resolve_Spec_Expression (N, T);
        In_Default_Expr := Save_In_Default_Expr;
!    end Preanalyze_And_Resolve_Default_Expression;
  
!    --------------------------------------------
!    -- Preanalyze_And_Resolve_Spec_Expression --
!    --------------------------------------------
  
!    procedure Preanalyze_And_Resolve_Spec_Expression
!      (N : Node_Id;
!       T : Entity_Id)
!    is
        Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
     begin
        In_Spec_Expression := True;
        Preanalyze_And_Resolve (N, T);
        In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_And_Resolve_Spec_Expression;
! 
!    --------------------------------------------
!    -- Preanalyze_And_Resolve_Spec_Expression --
!    --------------------------------------------
! 
!    procedure Preanalyze_And_Resolve_Spec_Expression (N : Node_Id) is
!       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
!    begin
!       In_Spec_Expression := True;
!       Preanalyze_And_Resolve (N);
!       In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_And_Resolve_Spec_Expression;
  
     ----------------------------------------
     -- Prepare_Private_Subtype_Completion --
*************** package body Sem_Ch3 is
*** 21076,21082 ****
           --  Per-Object Expressions" in spec of package Sem).
  
           if Present (Expression (Discr)) then
!             Preanalyze_Default_Expression (Expression (Discr), Discr_Type);
  
              --  Legaity checks
  
--- 21078,21085 ----
           --  Per-Object Expressions" in spec of package Sem).
  
           if Present (Expression (Discr)) then
!             Preanalyze_And_Resolve_Default_Expression
!               (Expression (Discr), Discr_Type);
  
              --  Legaity checks
  
*************** package body Sem_Ch3 is
*** 23141,23146 ****
--- 23144,23157 ----
  
           Propagate_Concurrent_Flags (T, Etype (Component));
  
+          --  Propagate information about constructor dependence
+ 
+          if Ekind (Etype (Component)) /= E_Void
+            and then Needs_Construction (Etype (Component))
+          then
+             Set_Needs_Construction (T);
+          end if;
+ 
           if Ekind (Component) /= E_Component then
              null;
  
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch3.ads gcc-16-20250608/gcc/ada/sem_ch3.ads
*** gcc-16-20250601/gcc/ada/sem_ch3.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch3.ads	Sun Jun  8 22:32:16 2025
*************** package Sem_Ch3 is
*** 236,254 ****
     --  Always False in Ada 95 mode. Equivalent to OK_For_Limited_Init_In_05 in
     --  Ada 2005 mode.
  
!    procedure Preanalyze_Assert_Expression (N : Node_Id; T : Entity_Id);
!    --  Wrapper on Preanalyze_Spec_Expression for assertion expressions, so that
!    --  In_Assertion_Expr can be properly adjusted.
     --
     --  This routine must not be called when N is the root of a subtree that is
     --  not in its final place since it freezes static expression entities,
     --  which would be misplaced in the tree. Preanalyze_And_Resolve must be
     --  used in such a case to avoid reporting spurious errors.
  
!    procedure Preanalyze_Assert_Expression (N : Node_Id);
     --  Similar to the above, but without forcing N to be of a particular type
  
!    procedure Preanalyze_Spec_Expression (N : Node_Id; T : Entity_Id);
     --  Default and per object expressions do not freeze their components, and
     --  must be analyzed and resolved accordingly. The analysis is done by
     --  calling the Preanalyze_And_Resolve routine and setting the global
--- 236,258 ----
     --  Always False in Ada 95 mode. Equivalent to OK_For_Limited_Init_In_05 in
     --  Ada 2005 mode.
  
!    procedure Preanalyze_And_Resolve_Assert_Expression
!      (N : Node_Id;
!       T : Entity_Id);
!    --  Wrapper on Preanalyze_And_Resolve_Spec_Expression for assertion
!    --  expressions, so that In_Assertion_Expr can be properly adjusted.
     --
     --  This routine must not be called when N is the root of a subtree that is
     --  not in its final place since it freezes static expression entities,
     --  which would be misplaced in the tree. Preanalyze_And_Resolve must be
     --  used in such a case to avoid reporting spurious errors.
  
!    procedure Preanalyze_And_Resolve_Assert_Expression (N : Node_Id);
     --  Similar to the above, but without forcing N to be of a particular type
  
!    procedure Preanalyze_And_Resolve_Spec_Expression
!      (N : Node_Id;
!       T : Entity_Id);
     --  Default and per object expressions do not freeze their components, and
     --  must be analyzed and resolved accordingly. The analysis is done by
     --  calling the Preanalyze_And_Resolve routine and setting the global
*************** package Sem_Ch3 is
*** 263,268 ****
--- 267,275 ----
     --  which would be misplaced in the tree. Preanalyze_And_Resolve must be
     --  used in such a case to avoid reporting spurious errors.
  
+    procedure Preanalyze_And_Resolve_Spec_Expression (N : Node_Id);
+    --  Similar to the above, but without forcing N to be of a particular type
+ 
     procedure Process_Full_View (N : Node_Id; Full_T, Priv_T : Entity_Id);
     --  Process some semantic actions when the full view of a private type is
     --  encountered and analyzed. The first action is to create the full views
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch4.adb gcc-16-20250608/gcc/ada/sem_ch4.adb
*** gcc-16-20250601/gcc/ada/sem_ch4.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch4.adb	Sun Jun  8 22:32:16 2025
*************** with Accessibility;  use Accessibility;
*** 27,37 ****
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Exp_Util;       use Exp_Util;
  with Itypes;         use Itypes;
--- 27,37 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Exp_Util;       use Exp_Util;
  with Itypes;         use Itypes;
*************** package body Sem_Ch4 is
*** 308,315 ****
       (N      : Node_Id;
        Prefix : Node_Id;
        Exprs  : List_Id) return Boolean;
!    --  AI05-0139: Generalized indexing to support iterators over containers
!    --  ??? Need to provide a more detailed spec of what this function does
  
     function Try_Indexed_Call
       (N          : Node_Id;
--- 308,319 ----
       (N      : Node_Id;
        Prefix : Node_Id;
        Exprs  : List_Id) return Boolean;
!    --  AI05-0139: Generalized indexing to support iterators over containers.
!    --  Given the N_Indexed_Component node N, with the given prefix and
!    --  expressions list, check if the generalized indexing is applicable;
!    --  if applicable then build its indexing function, link it to N through
!    --  attribute Generalized_Indexing, and return True; otherwise return
!    --  False.
  
     function Try_Indexed_Call
       (N          : Node_Id;
*************** package body Sem_Ch4 is
*** 6040,6048 ****
           Error_Msg_NE ("invalid prefix in selected component&", N, Sel);
        end if;
  
!       --  If N still has no type, the component is not defined in the prefix
  
!       if Etype (N) = Any_Type then
  
           if Is_Single_Concurrent_Object then
              Error_Msg_Node_2 := Entity (Pref);
--- 6044,6053 ----
           Error_Msg_NE ("invalid prefix in selected component&", N, Sel);
        end if;
  
!       --  If the selector is not labelled with an entity at this point, the
!       --  component is not defined in the prefix.
  
!       if No (Entity (Sel)) then
  
           if Is_Single_Concurrent_Object then
              Error_Msg_Node_2 := Entity (Pref);
*************** package body Sem_Ch4 is
*** 7642,7676 ****
     begin
        if not Is_Overloaded (R) then
           if Is_Numeric_Type (Etype (R)) then
! 
!             --  In an instance a generic actual may be a numeric type even if
!             --  the formal in the generic unit was not. In that case, the
!             --  predefined operator was not a possible interpretation in the
!             --  generic, and cannot be one in the instance, unless the operator
!             --  is an actual of an instance.
! 
!             if In_Instance
!               and then
!                 not Is_Numeric_Type (Corresponding_Generic_Type (Etype (R)))
!             then
!                null;
!             else
!                Add_One_Interp (N, Op_Id, Base_Type (Etype (R)));
!             end if;
           end if;
  
        else
           Get_First_Interp (R, Index, It);
           while Present (It.Typ) loop
              if Is_Numeric_Type (It.Typ) then
!                if In_Instance
!                  and then
!                    not Is_Numeric_Type
!                      (Corresponding_Generic_Type (Etype (It.Typ)))
!                then
!                   null;
! 
!                elsif Is_Effectively_Visible_Operator (N, Base_Type (It.Typ))
                 then
                    Add_One_Interp (N, Op_Id, Base_Type (It.Typ));
                 end if;
--- 7647,7660 ----
     begin
        if not Is_Overloaded (R) then
           if Is_Numeric_Type (Etype (R)) then
!             Add_One_Interp (N, Op_Id, Base_Type (Etype (R)));
           end if;
  
        else
           Get_First_Interp (R, Index, It);
           while Present (It.Typ) loop
              if Is_Numeric_Type (It.Typ) then
!                if Is_Effectively_Visible_Operator (N, Base_Type (It.Typ))
                 then
                    Add_One_Interp (N, Op_Id, Base_Type (It.Typ));
                 end if;
*************** package body Sem_Ch4 is
*** 8533,8553 ****
        Prefix : Node_Id;
        Exprs  : List_Id) return Boolean
     is
!       Pref_Typ : Entity_Id := Etype (Prefix);
  
        function Constant_Indexing_OK return Boolean;
!       --  Constant_Indexing is legal if there is no Variable_Indexing defined
!       --  for the type, or else node not a target of assignment, or an actual
!       --  for an IN OUT or OUT formal (RM 4.1.6 (11)).
  
!       function Expr_Matches_In_Formal
!         (Subp : Entity_Id;
!          Par  : Node_Id) return Boolean;
!       --  Find formal corresponding to given indexed component that is an
!       --  actual in a call. Note that the enclosing subprogram call has not
!       --  been analyzed yet, and the parameter list is not normalized, so
!       --  that if the argument is a parameter association we must match it
!       --  by name and not by position.
  
        function Indexing_Interpretations
          (T           : Entity_Id;
--- 8517,8545 ----
        Prefix : Node_Id;
        Exprs  : List_Id) return Boolean
     is
!       Heuristic : Boolean   := False;
!       Pref_Typ  : Entity_Id := Etype (Prefix);
  
        function Constant_Indexing_OK return Boolean;
!       --  Determines whether the Constant_Indexing aspect has been specified
!       --  for the type of the prefix and can be interpreted as constant
!       --  indexing; that is, there is no Variable_Indexing defined for the
!       --  type, or else the node is not a target of an assignment, or an
!       --  actual for an IN OUT or OUT formal, or the name in an object
!       --  renaming (RM 4.1.6 (12/3..15/3)).
!       --
!       --  Given that prefix notation calls have not yet been resolved, if the
!       --  type of the prefix has both aspects present (Constant_Indexing and
!       --  Variable_Indexing), and context analysis performed by this routine
!       --  identifies a potential prefix notation call (i.e., an N_Selected_
!       --  Component node), this function may rely on heuristics to decide
!       --  between constant or variable indexing. In such cases, if the
!       --  decision is later found to be incorrect, Try_Container_Indexing
!       --  will retry using the alternative indexing aspect.
  
!       --  When heuristics are used to compute the result of this function
!       --  the behavior of Try_Container_Indexing might not be strictly
!       --  following the rules of the RM.
  
        function Indexing_Interpretations
          (T           : Entity_Id;
*************** package body Sem_Ch4 is
*** 8555,8613 ****
        --  Return a set of interpretations reflecting all of the functions
        --  associated with an indexing aspect of type T of the given kind.
  
        --------------------------
        -- Constant_Indexing_OK --
        --------------------------
  
        function Constant_Indexing_OK return Boolean is
!          Par : Node_Id;
  
        begin
!          if No (Find_Value_Of_Aspect (Pref_Typ, Aspect_Variable_Indexing)) then
              return True;
  
           elsif not Is_Variable (Prefix) then
              return True;
           end if;
  
           Par := N;
           while Present (Par) loop
!             if Nkind (Parent (Par)) = N_Assignment_Statement
!               and then Par = Name (Parent (Par))
              then
!                return False;
  
              --  The call may be overloaded, in which case we assume that its
              --  resolution does not depend on the type of the parameter that
!             --  includes the indexing operation.
  
              elsif Nkind (Parent (Par)) in N_Subprogram_Call then
  
!                if not Is_Entity_Name (Name (Parent (Par))) then
! 
!                   --  ??? We don't know what to do with an N_Selected_Component
!                   --  node for a prefixed-notation call to AA.BB where AA's
!                   --  type is known, but BB has not yet been resolved. In that
!                   --  case, the preceding Is_Entity_Name call returns False.
!                   --  Incorrectly returning False here will usually work
!                   --  better than incorrectly returning True, so that's what
!                   --  we do for now.
! 
!                   return False;
!                end if;
  
!                declare
!                   Proc : Entity_Id;
  
!                begin
!                   --  We should look for an interpretation with the proper
!                   --  number of formals, and determine whether it is an
!                   --  In_Parameter, but for now we examine the formal that
!                   --  corresponds to the indexing, and assume that variable
!                   --  indexing is required if some interpretation has an
!                   --  assignable formal at that position. Still does not
!                   --  cover the most complex cases ???
  
                    if Is_Overloaded (Name (Parent (Par))) then
                       declare
                          Proc : constant Node_Id := Name (Parent (Par));
--- 8547,8975 ----
        --  Return a set of interpretations reflecting all of the functions
        --  associated with an indexing aspect of type T of the given kind.
  
+       function Try_Indexing_Function
+         (Func_Name : Node_Id;
+          Assoc     : List_Id) return Entity_Id;
+       --  Build a call to the given indexing function name with the given
+       --  parameter associations; if there are several indexing functions
+       --  the call is analyzed for each of the interpretation; if there are
+       --  several successfull candidates, resolution is handled by result.
+       --  Return the Etype of the built function call.
+ 
        --------------------------
        -- Constant_Indexing_OK --
        --------------------------
  
        function Constant_Indexing_OK return Boolean is
! 
!          function Expr_Matches_In_Formal
!            (Subp                    : Entity_Id;
!             Subp_Call               : Node_Id;
!             Param                   : Node_Id;
!             Skip_Controlling_Formal : Boolean := False) return Boolean;
!          --  Find formal corresponding to given indexed component that is an
!          --  actual in a call. Note that the enclosing subprogram call has not
!          --  been analyzed yet, and the parameter list is not normalized, so
!          --  that if the argument is a parameter association we must match it
!          --  by name and not by position. In the traversal up the tree done by
!          --  Constant_Indexing_OK, the previous node in the traversal (that is,
!          --  the actual parameter used to ascend to the subprogram call node),
!          --  is passed to this function in formal Param, and it is used to
!          --  determine wether the argument is passed by name or by position.
!          --  Skip_Controlling_Formal is set to True to skip the first formal
!          --  of Subp.
! 
!          procedure Handle_Selected_Component
!            (Current_Node    : Node_Id;
!             Sel_Comp        : Node_Id;
!             Candidate       : out Entity_Id;
!             Is_Constant_Idx : out Boolean);
!          --  Current_Node is the current node climbing up the tree. Determine
!          --  if Sel_Comp is a candidate for a prefixed call using constant
!          --  indexing; if no candidate is found Candidate is returned Empty
!          --  and Is_Constant_Idx is returned False.
! 
!          function Has_IN_Mode (Formal : Node_Id) return Boolean is
!            (Ekind (Formal) = E_In_Parameter);
!          --  Return True if the given formal has mode IN
! 
!          ----------------------------
!          -- Expr_Matches_In_Formal --
!          ----------------------------
! 
!          function Expr_Matches_In_Formal
!            (Subp                    : Entity_Id;
!             Subp_Call               : Node_Id;
!             Param                   : Node_Id;
!             Skip_Controlling_Formal : Boolean := False) return Boolean
!          is
!             pragma Assert (Nkind (Subp_Call) in N_Subprogram_Call);
! 
!             Actual : Node_Id := First (Parameter_Associations (Subp_Call));
!             Formal : Node_Id := First_Formal (Subp);
! 
!          begin
!             if Skip_Controlling_Formal then
!                Next_Formal (Formal);
!             end if;
! 
!             --  Match by position
! 
!             if Nkind (Param) /= N_Parameter_Association then
!                while Present (Actual) and then Present (Formal) loop
!                   exit when Actual = Param;
!                   Next (Actual);
! 
!                   if Present (Formal) then
!                      Next_Formal (Formal);
! 
!                   --  Otherwise this is a parameter mismatch, the error is
!                   --  reported elsewhere, or else variable indexing is implied.
! 
!                   else
!                      return False;
!                   end if;
!                end loop;
! 
!             --  Match by name
! 
!             else
!                while Present (Formal) loop
!                   exit when Chars (Formal) = Chars (Selector_Name (Param));
!                   Next_Formal (Formal);
! 
!                   if No (Formal) then
!                      return False;
!                   end if;
!                end loop;
!             end if;
! 
!             return Present (Formal) and then Has_IN_Mode (Formal);
!          end Expr_Matches_In_Formal;
! 
!          -------------------------------
!          -- Handle_Selected_Component --
!          -------------------------------
! 
!          procedure Handle_Selected_Component
!            (Current_Node    : Node_Id;
!             Sel_Comp        : Node_Id;
!             Candidate       : out Entity_Id;
!             Is_Constant_Idx : out Boolean)
!          is
!             procedure Search_Constant_Interpretation
!               (Call        : Node_Id;
!                Target_Name : Node_Id;
!                Candidate   : out Entity_Id;
!                Is_Unique   : out Boolean;
!                Unique_Mode : out Boolean);
!             --  Given a subprogram call, search in the homonyms chain for
!             --  visible (or potentially visible) dispatching primitives that
!             --  have at least one formal. Candidate is the entity of the first
!             --  found candidate; Is_Unique is returned True when the mode of
!             --  the first formal of all the candidates match. If no candidate
!             --  is found the out parameter Candidate is returned Empty, and
!             --  Is_Unique is returned False.
! 
!             procedure Search_Enclosing_Call
!               (Call_Node : out Node_Id;
!                Prev_Node : out Node_Id);
!             --  Climb up to the tree looking for an enclosing subprogram call
!             --  of a prefixed notation call. If found then the Call_Node and
!             --  its Prev_Node in such traversal are returned; otherwise
!             --  Call_Node and Prev_Node are returned Empty.
! 
!             ------------------------------------
!             -- Search_Constant_Interpretation --
!             ------------------------------------
! 
!             procedure Search_Constant_Interpretation
!               (Call        : Node_Id;
!                Target_Name : Node_Id;
!                Candidate   : out Entity_Id;
!                Is_Unique   : out Boolean;
!                Unique_Mode : out Boolean)
!             is
!                Constant_Idx : Boolean;
!                In_Proc_Call : constant Boolean :=
!                                 Present (Call)
!                                   and then
!                                     Nkind (Call) = N_Procedure_Call_Statement;
!                Kind         : constant Entity_Kind :=
!                                 (if In_Proc_Call then E_Procedure
!                                                  else E_Function);
!                Target_Subp  : constant Entity_Id :=
!                                 Current_Entity (Target_Name);
!             begin
!                Candidate   := Empty;
!                Is_Unique   := False;
!                Unique_Mode := False;
! 
!                if Present (Target_Subp) then
!                   declare
!                      Hom : Entity_Id := Target_Subp;
! 
!                   begin
!                      while Present (Hom) loop
!                         if Is_Overloadable (Hom)
!                           and then Is_Dispatching_Operation (Hom)
!                           and then
!                             (Is_Immediately_Visible (Scope (Hom))
!                               or else
!                                 Is_Potentially_Use_Visible (Scope (Hom)))
!                           and then Ekind (Hom) = Kind
!                           and then Present (First_Formal (Hom))
!                         then
!                            if No (Candidate) then
!                               Candidate    := Hom;
!                               Is_Unique    := True;
!                               Unique_Mode  := True;
!                               Constant_Idx :=
!                                 Has_IN_Mode (First_Formal (Candidate));
! 
!                            else
!                               Is_Unique := False;
! 
!                               if Ekind (First_Formal (Hom))
!                                    /= Ekind (First_Formal (Candidate))
!                                 or else Has_IN_Mode (First_Formal (Hom))
!                                           /= Constant_Idx
!                               then
!                                  Unique_Mode := False;
!                                  exit;
!                               end if;
!                            end if;
!                         end if;
! 
!                         Hom := Homonym (Hom);
!                      end loop;
!                   end;
!                end if;
!             end Search_Constant_Interpretation;
! 
!             ---------------------------
!             -- Search_Enclosing_Call --
!             ---------------------------
! 
!             procedure Search_Enclosing_Call
!               (Call_Node : out Node_Id;
!                Prev_Node : out Node_Id)
!             is
!                Prev : Node_Id := Current_Node;
!                Par  : Node_Id := Parent (N);
! 
!             begin
!                while Present (Par)
!                  and then Nkind (Par) not in N_Subprogram_Call
!                                       | N_Handled_Sequence_Of_Statements
!                                       | N_Assignment_Statement
!                                       | N_Iterator_Specification
!                                       | N_Object_Declaration
!                                       | N_Case_Statement
!                                       | N_Declaration
!                                       | N_Elsif_Part
!                                       | N_If_Statement
!                                       | N_Simple_Return_Statement
!                loop
!                   Prev := Par;
!                   Par := Parent (Par);
!                end loop;
! 
!                if Present (Par)
!                  and then Nkind (Par) in N_Subprogram_Call
!                  and then Nkind (Name (Par)) = N_Selected_Component
!                then
!                   Call_Node := Par;
!                   Prev_Node := Prev;
!                else
!                   Call_Node := Empty;
!                   Prev_Node := Empty;
!                end if;
!             end Search_Enclosing_Call;
! 
!             --  Local variables
! 
!             Is_Unique   : Boolean;
!             Unique_Mode : Boolean;
!             Call_Node   : Node_Id;
!             Prev_Node   : Node_Id;
! 
!          --  Start of processing for Handle_Selected_Component
! 
!          begin
!             pragma Assert (Nkind (Sel_Comp) = N_Selected_Component);
! 
!             --  Climb up the tree starting from Current_Node searching for the
!             --  enclosing subprogram call of a prefixed notation call.
! 
!             Search_Enclosing_Call (Call_Node, Prev_Node);
! 
!             --  Search for a candidate visible (or potentially visible)
!             --  dispatching primitive that has at least one formal, and may
!             --  be called using the prefix notation. This must be done even
!             --  if we did not found an enclosing call since the prefix notation
!             --  call has not been transformed yet into a subprogram call. The
!             --  found Call_Node (if any) is passed now to help identifying if
!             --  the prefix notation call corresponds with a procedure call or
!             --  a function call.
! 
!             Search_Constant_Interpretation
!               (Call        => Call_Node,
!                Target_Name => Selector_Name (Sel_Comp),
!                Candidate   => Candidate,
!                Is_Unique   => Is_Unique,
!                Unique_Mode => Unique_Mode);
! 
!             --  If there is no candidate to interpret this node as a prefixed
!             --  call to a subprogram we return no candidate, and the caller
!             --  will continue ascending in the tree.
! 
!             if No (Candidate) then
!                Is_Constant_Idx := False;
! 
!             --  If we found an unique candidate and also found the enclosing
!             --  call node, we differentiate two cases: either we climbed up
!             --  the tree through the first actual parameter of the call (that
!             --  is, the name of the selected component), or we climbed up the
!             --  tree though another actual parameter of the prefixed call and
!             --  we must skip the controlling formal of the call.
! 
!             elsif Is_Unique
!               and then Present (Call_Node)
!             then
!                --  First actual parameter
! 
!                if Name (Call_Node) = Prev_Node
!                  and then Nkind (Prev_Node) = N_Selected_Component
!                  and then Nkind (Selector_Name (Prev_Node)) in N_Has_Chars
!                  and then Chars (Selector_Name (Prev_Node)) = Chars (Candidate)
!                then
!                   Is_Constant_Idx := Has_IN_Mode (First_Formal (Candidate));
! 
!                --  Any other actual parameter
! 
!                else
!                   Is_Constant_Idx :=
!                     Expr_Matches_In_Formal (Candidate,
!                       Subp_Call               => Call_Node,
!                       Param                   => Prev_Node,
!                       Skip_Controlling_Formal => True);
!                end if;
! 
!             --  The mode of the first formal of all the candidates match but,
!             --  given that we have several candidates, we cannot check if
!             --  indexing is used in the first actual parameter of the call
!             --  or in another actual parameter. Heuristically assume here
!             --  that indexing is used in the prefix of a call.
! 
!             elsif Unique_Mode then
!                Heuristic := True;
!                Is_Constant_Idx := Has_IN_Mode (First_Formal (Candidate));
! 
!             --  The target candidate subprogram has several possible
!             --  interpretations; we don't know what to do with an
!             --  N_Selected_Component node for a prefixed notation call
!             --  to AA.BB that has several candidate targets and it has
!             --  not yet been resolved. For now we maintain the
!             --  behavior that we have had so far; to be improved???
! 
!             else
!                Heuristic := True;
! 
!                if Nkind (Call_Node) = N_Procedure_Call_Statement then
!                   Is_Constant_Idx := False;
! 
!                --  For function calls we rely on the mode of the
!                --  first formal of the first found candidate???
! 
!                else
!                   Is_Constant_Idx := Has_IN_Mode (First_Formal (Candidate));
!                end if;
!             end if;
!          end Handle_Selected_Component;
! 
!          --  Local variables
! 
!          Asp_Constant : constant Node_Id :=
!                           Find_Value_Of_Aspect (Pref_Typ,
!                             Aspect_Constant_Indexing);
!          Asp_Variable : constant Node_Id :=
!                           Find_Value_Of_Aspect (Pref_Typ,
!                             Aspect_Variable_Indexing);
!          Par          : Node_Id;
! 
!       --  Start of processing for Constant_Indexing_OK
  
        begin
!          if No (Asp_Constant) then
!             return False;
! 
!          --  It is interpreted as constant indexing when the prefix has the
!          --  Constant_Indexing aspect and the Variable_Indexing aspect is not
!          --  specified for the type of the prefix.
! 
!          elsif No (Asp_Variable) then
              return True;
  
+          --  It is interpreted as constant indexing when the prefix denotes
+          --  a constant.
+ 
           elsif not Is_Variable (Prefix) then
              return True;
           end if;
  
+          --  Both aspects are present
+ 
+          pragma Assert (Present (Asp_Constant) and Present (Asp_Variable));
+ 
+          --  The prefix must be interpreted as a constant indexing when it
+          --  is used within a primary where a name denoting a constant is
+          --  permitted.
+ 
           Par := N;
           while Present (Par) loop
! 
!             --  Avoid climbing more than needed
! 
!             exit when Nkind (Parent (Par)) in N_Iterator_Specification
!                                             | N_Handled_Sequence_Of_Statements;
! 
!             if Nkind (Parent (Par)) in N_Case_Statement
!                                         | N_Declaration
!                                         | N_Elsif_Part
!                                         | N_If_Statement
!                                         | N_Simple_Return_Statement
              then
!                return True;
! 
!             --  It is not interpreted as constant indexing for the variable
!             --  name in the LHS of an assignment.
! 
!             elsif Nkind (Parent (Par)) = N_Assignment_Statement then
!                return Par /= Name (Parent (Par));
  
              --  The call may be overloaded, in which case we assume that its
              --  resolution does not depend on the type of the parameter that
!             --  includes the indexing operation because we cannot invoke
!             --  Preanalyze_And_Resolve (since it would cause a never-ending
!             --  loop).
  
              elsif Nkind (Parent (Par)) in N_Subprogram_Call then
  
!                --  Regular subprogram call
  
!                --  It is not interpreted as constant indexing for the name
!                --  used for an OUT or IN OUT parameter.
  
!                --  We should look for an interpretation with the proper
!                --  number of formals, and determine whether it is an
!                --  In_Parameter, but for now we examine the formal that
!                --  corresponds to the indexing, and assume that variable
!                --  indexing is required if some interpretation has an
!                --  assignable formal at that position. Still does not
!                --  cover the most complex cases ???
  
+                if Is_Entity_Name (Name (Parent (Par))) then
                    if Is_Overloaded (Name (Parent (Par))) then
                       declare
                          Proc : constant Node_Id := Name (Parent (Par));
*************** package body Sem_Ch4 is
*** 8617,8673 ****
                       begin
                          Get_First_Interp (Proc, I, It);
                          while Present (It.Nam) loop
!                            if not Expr_Matches_In_Formal (It.Nam, Par) then
                                return False;
                             end if;
  
                             Get_Next_Interp (I, It);
                          end loop;
-                      end;
  
!                      --  All interpretations have a matching in-mode formal
  
!                      return True;
  
                    else
!                      Proc := Entity (Name (Parent (Par)));
  
!                      --  If this is an indirect call, get formals from
!                      --  designated type.
  
!                      if Is_Access_Subprogram_Type (Etype (Proc)) then
!                         Proc := Designated_Type (Etype (Proc));
!                      end if;
                    end if;
  
!                   return Expr_Matches_In_Formal (Proc, Par);
!                end;
  
              elsif Nkind (Parent (Par)) = N_Object_Renaming_Declaration then
                 return False;
  
!             --  If the indexed component is a prefix it may be the first actual
!             --  of a prefixed call. Retrieve the called entity, if any, and
!             --  check its first formal. Determine if the context is a procedure
!             --  or function call.
  
              elsif Nkind (Parent (Par)) = N_Selected_Component then
                 declare
!                   Sel : constant Node_Id   := Selector_Name (Parent (Par));
!                   Nam : constant Entity_Id := Current_Entity (Sel);
  
                 begin
!                   if Present (Nam) and then Is_Overloadable (Nam) then
!                      if Nkind (Parent (Parent (Par))) =
!                           N_Procedure_Call_Statement
!                      then
!                         return False;
  
!                      elsif Ekind (Nam) = E_Function
!                        and then Present (First_Formal (Nam))
!                      then
!                         return Ekind (First_Formal (Nam)) = E_In_Parameter;
!                      end if;
                    end if;
                 end;
  
--- 8979,9081 ----
                       begin
                          Get_First_Interp (Proc, I, It);
                          while Present (It.Nam) loop
!                            if not Expr_Matches_In_Formal
!                                     (Subp      => It.Nam,
!                                      Subp_Call => Parent (Par),
!                                      Param     => Par)
!                            then
                                return False;
                             end if;
  
                             Get_Next_Interp (I, It);
                          end loop;
  
!                         --  All interpretations have a matching in-mode formal
  
!                         return True;
!                      end;
  
                    else
!                      declare
!                         Proc : Entity_Id := Entity (Name (Parent (Par)));
  
!                      begin
!                         --  If this is an indirect call, get formals from
!                         --  designated type.
  
!                         if Is_Access_Subprogram_Type (Etype (Proc)) then
!                            Proc := Designated_Type (Etype (Proc));
!                         end if;
! 
!                         return Expr_Matches_In_Formal
!                                  (Subp      => Proc,
!                                   Subp_Call => Parent (Par),
!                                   Param     => Par);
!                      end;
                    end if;
  
!                --  Continue climbing
! 
!                elsif Nkind (Name (Parent (Par))) = N_Explicit_Dereference then
!                   null;
! 
!                --  Not a regular call; we know that we are in a subprogram
!                --  call, we also know that the name of the call may be a
!                --  prefixed call, and we know the name of the target
!                --  subprogram. Search for an unique target candidate in the
!                --  homonym chain.
! 
!                elsif Nkind (Name (Parent (Par))) = N_Selected_Component then
!                   declare
!                      Candidate       : Entity_Id;
!                      Is_Constant_Idx : Boolean;
! 
!                   begin
!                      Handle_Selected_Component
!                        (Current_Node    => Par,
!                         Sel_Comp        => Name (Parent (Par)),
!                         Candidate       => Candidate,
!                         Is_Constant_Idx => Is_Constant_Idx);
! 
!                      if Present (Candidate) then
!                         return Is_Constant_Idx;
! 
!                      --  Continue climbing
! 
!                      else
!                         null;
!                      end if;
!                   end;
!                end if;
! 
!             --  It is not interpreted as constant indexing for the name in
!             --  an object renaming.
  
              elsif Nkind (Parent (Par)) = N_Object_Renaming_Declaration then
                 return False;
  
!             --  If the indexed component is a prefix it may be an actual of
!             --  of a prefixed call.
  
              elsif Nkind (Parent (Par)) = N_Selected_Component then
                 declare
!                   Candidate       : Entity_Id;
!                   Is_Constant_Idx : Boolean;
  
                 begin
!                   Handle_Selected_Component
!                     (Current_Node    => Par,
!                      Sel_Comp        => Parent (Par),
!                      Candidate       => Candidate,
!                      Is_Constant_Idx => Is_Constant_Idx);
  
!                   if Present (Candidate) then
!                      return Is_Constant_Idx;
! 
!                   --  Continue climbing
! 
!                   else
!                      null;
                    end if;
                 end;
  
*************** package body Sem_Ch4 is
*** 8678,8738 ****
              Par := Parent (Par);
           end loop;
  
!          --  In all other cases, constant indexing is legal
  
!          return True;
        end Constant_Indexing_OK;
  
-       ----------------------------
-       -- Expr_Matches_In_Formal --
-       ----------------------------
- 
-       function Expr_Matches_In_Formal
-         (Subp : Entity_Id;
-          Par  : Node_Id) return Boolean
-       is
-          Actual : Node_Id;
-          Formal : Node_Id;
- 
-       begin
-          Formal := First_Formal (Subp);
-          Actual := First (Parameter_Associations ((Parent (Par))));
- 
-          if Nkind (Par) /= N_Parameter_Association then
- 
-             --  Match by position
- 
-             while Present (Actual) and then Present (Formal) loop
-                exit when Actual = Par;
-                Next (Actual);
- 
-                if Present (Formal) then
-                   Next_Formal (Formal);
- 
-                --  Otherwise this is a parameter mismatch, the error is
-                --  reported elsewhere, or else variable indexing is implied.
- 
-                else
-                   return False;
-                end if;
-             end loop;
- 
-          else
-             --  Match by name
- 
-             while Present (Formal) loop
-                exit when Chars (Formal) = Chars (Selector_Name (Par));
-                Next_Formal (Formal);
- 
-                if No (Formal) then
-                   return False;
-                end if;
-             end loop;
-          end if;
- 
-          return Present (Formal) and then Ekind (Formal) = E_In_Parameter;
-       end Expr_Matches_In_Formal;
- 
        ------------------------------
        -- Indexing_Interpretations --
        ------------------------------
--- 9086,9097 ----
              Par := Parent (Par);
           end loop;
  
!          --  It is not interpreted as constant indexing when both aspects
!          --  are present (RM 4.1.6(13/3)).
  
!          return False;
        end Constant_Indexing_OK;
  
        ------------------------------
        -- Indexing_Interpretations --
        ------------------------------
*************** package body Sem_Ch4 is
*** 8782,8795 ****
           return Indexing_Func;
        end Indexing_Interpretations;
  
        --  Local variables
  
        Loc       : constant Source_Ptr := Sloc (N);
        Assoc     : List_Id;
        C_Type    : Entity_Id;
-       Func      : Entity_Id;
        Func_Name : Node_Id;
!       Indexing  : Node_Id;
  
     --  Start of processing for Try_Container_Indexing
  
--- 9141,9267 ----
           return Indexing_Func;
        end Indexing_Interpretations;
  
+       ---------------------------
+       -- Try_Indexing_Function --
+       ---------------------------
+ 
+       function Try_Indexing_Function
+         (Func_Name : Node_Id;
+          Assoc     : List_Id) return Entity_Id
+       is
+          Loc      : constant Source_Ptr := Sloc (N);
+          Func     : Entity_Id;
+          Indexing : Node_Id;
+ 
+       begin
+          if not Is_Overloaded (Func_Name) then
+             Func := Entity (Func_Name);
+ 
+             Indexing :=
+               Make_Function_Call (Loc,
+                 Name                   => New_Occurrence_Of (Func, Loc),
+                 Parameter_Associations => Assoc);
+ 
+             Set_Parent (Indexing, Parent (N));
+             Set_Generalized_Indexing (N, Indexing);
+             Analyze (Indexing);
+             Set_Etype (N, Etype (Indexing));
+ 
+             --  If the return type of the indexing function is a reference
+             --  type, add the dereference as a possible interpretation. Note
+             --  that the indexing aspect may be a function that returns the
+             --  element type with no intervening implicit dereference, and
+             --  that the reference discriminant is not the first discriminant.
+ 
+             if Has_Discriminants (Etype (Func)) then
+                Check_Implicit_Dereference (N, Etype (Func));
+             end if;
+ 
+          else
+             --  If there are multiple indexing functions, build a function
+             --  call and analyze it for each of the possible interpretations.
+ 
+             Indexing :=
+               Make_Function_Call (Loc,
+                 Name                   =>
+                   Make_Identifier (Loc, Chars (Func_Name)),
+                 Parameter_Associations => Assoc);
+             Set_Parent (Indexing, Parent (N));
+             Set_Generalized_Indexing (N, Indexing);
+             Set_Etype (N, Any_Type);
+             Set_Etype (Name (Indexing), Any_Type);
+ 
+             declare
+                I       : Interp_Index;
+                It      : Interp;
+                Success : Boolean;
+ 
+             begin
+                Get_First_Interp (Func_Name, I, It);
+                Set_Etype (Indexing, Any_Type);
+ 
+                --  Analyze each candidate function with the given actuals
+ 
+                while Present (It.Nam) loop
+                   Analyze_One_Call (Indexing, It.Nam, False, Success);
+                   Get_Next_Interp (I, It);
+                end loop;
+ 
+                --  If there are several successful candidates, resolution will
+                --  be by result. Mark the interpretations of the function name
+                --  itself.
+ 
+                if Is_Overloaded (Indexing) then
+                   Get_First_Interp (Indexing, I, It);
+ 
+                   while Present (It.Nam) loop
+                      Add_One_Interp (Name (Indexing), It.Nam, It.Typ);
+                      Get_Next_Interp (I, It);
+                   end loop;
+ 
+                else
+                   Set_Etype (Name (Indexing), Etype (Indexing));
+                end if;
+ 
+                --  Now add the candidate interpretations to the indexing node
+                --  itself, to be replaced later by the function call.
+ 
+                if Is_Overloaded (Name (Indexing)) then
+                   Get_First_Interp (Name (Indexing), I, It);
+ 
+                   while Present (It.Nam) loop
+                      Add_One_Interp (N, It.Nam, It.Typ);
+ 
+                      --  Add dereference interpretation if the result type has
+                      --  implicit reference discriminants.
+ 
+                      if Has_Discriminants (Etype (It.Nam)) then
+                         Check_Implicit_Dereference (N, Etype (It.Nam));
+                      end if;
+ 
+                      Get_Next_Interp (I, It);
+                   end loop;
+ 
+                else
+                   Set_Etype (N, Etype (Name (Indexing)));
+ 
+                   if Has_Discriminants (Etype (N)) then
+                      Check_Implicit_Dereference (N, Etype (N));
+                   end if;
+                end if;
+             end;
+          end if;
+ 
+          return Etype (Indexing);
+       end Try_Indexing_Function;
+ 
        --  Local variables
  
        Loc       : constant Source_Ptr := Sloc (N);
        Assoc     : List_Id;
        C_Type    : Entity_Id;
        Func_Name : Node_Id;
!       Idx_Type  : Entity_Id;
  
     --  Start of processing for Try_Container_Indexing
  
*************** package body Sem_Ch4 is
*** 8799,8804 ****
--- 9271,9283 ----
  
        if Present (Generalized_Indexing (N)) then
           return True;
+ 
+       --  Old language version or unknown type require no action
+ 
+       elsif Ada_Version < Ada_2012
+         or else Pref_Typ = Any_Type
+       then
+          return False;
        end if;
  
        --  An explicit dereference needs to be created in the case of a prefix
*************** package body Sem_Ch4 is
*** 8833,8840 ****
  
        Func_Name := Empty;
  
!       --  The context is suitable for constant indexing, so obtain the name of
!       --  the indexing functions from aspect Constant_Indexing.
  
        if Constant_Indexing_OK then
           Func_Name :=
--- 9312,9319 ----
  
        Func_Name := Empty;
  
!       --  The context is suitable for constant indexing, so obtain the name
!       --  of the indexing functions from aspect Constant_Indexing.
  
        if Constant_Indexing_OK then
           Func_Name :=
*************** package body Sem_Ch4 is
*** 8867,8872 ****
--- 9346,9356 ----
           else
              return False;
           end if;
+ 
+       --  Handle cascaded errors
+ 
+       elsif No (Entity (Func_Name)) then
+          return False;
        end if;
  
        Assoc := New_List (Relocate_Node (Prefix));
*************** package body Sem_Ch4 is
*** 8907,9016 ****
           end loop;
        end;
  
!       if not Is_Overloaded (Func_Name) then
!          Func := Entity (Func_Name);
! 
!          --  Can happen in case of e.g. cascaded errors
! 
!          if No (Func) then
!             return False;
!          end if;
! 
!          Indexing :=
!            Make_Function_Call (Loc,
!              Name                   => New_Occurrence_Of (Func, Loc),
!              Parameter_Associations => Assoc);
! 
!          Set_Parent (Indexing, Parent (N));
!          Set_Generalized_Indexing (N, Indexing);
!          Analyze (Indexing);
!          Set_Etype (N, Etype (Indexing));
! 
!          --  If the return type of the indexing function is a reference type,
!          --  add the dereference as a possible interpretation. Note that the
!          --  indexing aspect may be a function that returns the element type
!          --  with no intervening implicit dereference, and that the reference
!          --  discriminant is not the first discriminant.
! 
!          if Has_Discriminants (Etype (Func)) then
!             Check_Implicit_Dereference (N, Etype (Func));
!          end if;
  
!       else
!          --  If there are multiple indexing functions, build a function call
!          --  and analyze it for each of the possible interpretations.
  
!          Indexing :=
!            Make_Function_Call (Loc,
!              Name                   =>
!                Make_Identifier (Loc, Chars (Func_Name)),
!              Parameter_Associations => Assoc);
!          Set_Parent (Indexing, Parent (N));
!          Set_Generalized_Indexing (N, Indexing);
!          Set_Etype (N, Any_Type);
!          Set_Etype (Name (Indexing), Any_Type);
  
           declare
!             I       : Interp_Index;
!             It      : Interp;
!             Success : Boolean;
  
           begin
!             Get_First_Interp (Func_Name, I, It);
!             Set_Etype (Indexing, Any_Type);
! 
!             --  Analyze each candidate function with the given actuals
! 
!             while Present (It.Nam) loop
!                Analyze_One_Call (Indexing, It.Nam, False, Success);
!                Get_Next_Interp (I, It);
!             end loop;
! 
!             --  If there are several successful candidates, resolution will
!             --  be by result. Mark the interpretations of the function name
!             --  itself.
! 
!             if Is_Overloaded (Indexing) then
!                Get_First_Interp (Indexing, I, It);
  
!                while Present (It.Nam) loop
!                   Add_One_Interp (Name (Indexing), It.Nam, It.Typ);
!                   Get_Next_Interp (I, It);
!                end loop;
  
              else
!                Set_Etype (Name (Indexing), Etype (Indexing));
!             end if;
! 
!             --  Now add the candidate interpretations to the indexing node
!             --  itself, to be replaced later by the function call.
! 
!             if Is_Overloaded (Name (Indexing)) then
!                Get_First_Interp (Name (Indexing), I, It);
! 
!                while Present (It.Nam) loop
!                   Add_One_Interp (N, It.Nam, It.Typ);
! 
!                   --  Add dereference interpretation if the result type has
!                   --  implicit reference discriminants.
! 
!                   if Has_Discriminants (Etype (It.Nam)) then
!                      Check_Implicit_Dereference (N, Etype (It.Nam));
!                   end if;
! 
!                   Get_Next_Interp (I, It);
!                end loop;
  
!             else
!                Set_Etype (N, Etype (Name (Indexing)));
!                if Has_Discriminants (Etype (N)) then
!                   Check_Implicit_Dereference (N, Etype (N));
                 end if;
              end if;
           end;
        end if;
  
!       if Etype (Indexing) = Any_Type then
           Error_Msg_NE
             ("container cannot be indexed with&", N, Etype (First (Exprs)));
           Rewrite (N, New_Occurrence_Of (Any_Id, Loc));
--- 9391,9444 ----
           end loop;
        end;
  
!       Idx_Type := Try_Indexing_Function (Func_Name, Assoc);
  
!       --  Last chance handling for heuristics: Given that prefix notation
!       --  calls have not yet been resolved, when the type of the prefix has
!       --  both operational aspects present (Constant_Indexing and Variable_
!       --  Indexing), and the analysis of the context identified a potential
!       --  prefix notation call (i.e. an N_Selected_Component node), the
!       --  evaluation of Constant_Indexing_OK is based on heuristics; in such
!       --  case, if the chosen indexing approach is noticed now to be wrong
!       --  we retry with the other alternative before leaving.
  
!       --  Retrying means that the heuristic decision taken when analyzing
!       --  the context failed in this case, and therefore we should adjust
!       --  the code of Handle_Selected_Component to improve identification
!       --  of prefix notation calls. This last chance handling handler is
!       --  left here for the purpose of improving such routine because it
!       --  proved to be usefull for identified such cases when the function
!       --  Handle_Selected_Component was added.
  
+       if Idx_Type = Any_Type and then Heuristic then
           declare
!             Tried_Func_Name : constant Node_Id := Func_Name;
  
           begin
!             Func_Name :=
!               Indexing_Interpretations (C_Type,
!                 Aspect_Constant_Indexing);
  
!             if Present (Func_Name)
!               and then Func_Name /= Tried_Func_Name
!             then
!                Idx_Type := Try_Indexing_Function (Func_Name, Assoc);
  
              else
!                Func_Name :=
!                  Indexing_Interpretations (C_Type,
!                    Aspect_Variable_Indexing);
  
!                if Present (Func_Name)
!                  and then Func_Name /= Tried_Func_Name
!                then
!                   Idx_Type := Try_Indexing_Function (Func_Name, Assoc);
                 end if;
              end if;
           end;
        end if;
  
!       if Idx_Type = Any_Type then
           Error_Msg_NE
             ("container cannot be indexed with&", N, Etype (First (Exprs)));
           Rewrite (N, New_Occurrence_Of (Any_Id, Loc));
*************** package body Sem_Ch4 is
*** 10667,10752 ****
              end loop;
  
              if No (Op_Id) then
!                if Debug_Flag_Underscore_DD then
!                   if Nkind (N) /= N_Op_Concat then
!                      if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                        and then Is_Fixed_Point_Type (Etype (L))
!                        and then Is_Integer_Type (Etype (R))
!                      then
!                         Record_Invalid_Operand_Types_For_Operator_R_Int_Error
!                           (Op     => N,
!                            L      => L,
!                            L_Type => Etype (L),
!                            R      => R,
!                            R_Type => Etype (R));
! 
!                      elsif Nkind (N) = N_Op_Multiply
!                        and then Is_Fixed_Point_Type (Etype (R))
!                        and then Is_Integer_Type (Etype (L))
!                      then
!                         Record_Invalid_Operand_Types_For_Operator_L_Int_Error
!                           (Op     => N,
!                            L      => L,
!                            L_Type => Etype (L),
!                            R      => R,
!                            R_Type => Etype (R));
!                      else
!                         Record_Invalid_Operand_Types_For_Operator_Error
!                           (Op     => N,
!                            L      => L,
!                            L_Type => Etype (L),
!                            R      => R,
!                            R_Type => Etype (R));
!                      end if;
!                   elsif Is_Access_Type (Etype (L)) then
!                      Record_Invalid_Operand_Types_For_Operator_L_Acc_Error
!                           (Op     => N,
!                            L      => L);
! 
!                   elsif Is_Access_Type (Etype (R)) then
!                      Record_Invalid_Operand_Types_For_Operator_R_Acc_Error
!                           (Op     => N,
!                            R      => R);
!                   else
!                      Record_Invalid_Operand_Types_For_Operator_General_Error
!                       (N);
!                   end if;
!                else
!                   Error_Msg_N ("invalid operand types for operator&", N);
  
!                   if Nkind (N) /= N_Op_Concat then
!                      Error_Msg_NE ("\left operand has}!", N, Etype (L));
!                      Error_Msg_NE ("\right operand has}!", N, Etype (R));
  
!                      --  For multiplication and division operators with
!                      --  a fixed-point operand and an integer operand,
!                      --  indicate that the integer operand should be of
!                      --  type Integer.
  
!                      if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                         and then Is_Fixed_Point_Type (Etype (L))
!                         and then Is_Integer_Type (Etype (R))
!                      then
!                         Error_Msg_N ("\convert right operand to `Integer`", N);
  
!                      elsif Nkind (N) = N_Op_Multiply
!                         and then Is_Fixed_Point_Type (Etype (R))
!                         and then Is_Integer_Type (Etype (L))
!                      then
!                         Error_Msg_N ("\convert left operand to `Integer`", N);
!                      end if;
  
                    --  For concatenation operators it is more difficult to
                    --  determine which is the wrong operand. It is worth
                    --  flagging explicitly an access type, for those who
                    --  might think that a dereference happens here.
  
!                   elsif Is_Access_Type (Etype (L)) then
!                      Error_Msg_N ("\left operand is access type", N);
  
!                   elsif Is_Access_Type (Etype (R)) then
!                      Error_Msg_N ("\right operand is access type", N);
!                   end if;
                 end if;
              end if;
           end if;
--- 11095,11140 ----
              end loop;
  
              if No (Op_Id) then
!                Error_Msg_N
!                  ("invalid operand types for operator&", N,
!                   GNAT0002);
  
!                if Nkind (N) /= N_Op_Concat then
!                   Error_Msg_NE
!                     ("\left operand has}!", N, Etype (L));
!                   Error_Msg_NE
!                     ("\right operand has}!", N, Etype (R));
  
!                   --  For multiplication and division operators with
!                   --  a fixed-point operand and an integer operand,
!                   --  indicate that the integer operand should be of
!                   --  type Integer.
  
!                   if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                     and then Is_Fixed_Point_Type (Etype (L))
!                     and then Is_Integer_Type (Etype (R))
!                   then
!                      Error_Msg_N
!                        ("\convert right operand to `Integer`", N);
  
!                   elsif Nkind (N) = N_Op_Multiply
!                     and then Is_Fixed_Point_Type (Etype (R))
!                     and then Is_Integer_Type (Etype (L))
!                   then
!                      Error_Msg_N
!                        ("\convert left operand to `Integer`", N);
!                   end if;
  
                    --  For concatenation operators it is more difficult to
                    --  determine which is the wrong operand. It is worth
                    --  flagging explicitly an access type, for those who
                    --  might think that a dereference happens here.
  
!                elsif Is_Access_Type (Etype (L)) then
!                   Error_Msg_N ("\left operand is access type", N);
  
!                elsif Is_Access_Type (Etype (R)) then
!                   Error_Msg_N ("\right operand is access type", N);
                 end if;
              end if;
           end if;
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch5.adb gcc-16-20250608/gcc/ada/sem_ch5.adb
*** gcc-16-20250601/gcc/ada/sem_ch5.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch5.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Ch5 is
*** 534,540 ****
        if In_Inlined_Body then
           null;
  
!       elsif not Is_Variable (Lhs) then
  
           --  Ada 2005 (AI-327): Check assignment to the attribute Priority of a
           --  protected object.
--- 534,544 ----
        if In_Inlined_Body then
           null;
  
!       elsif not Is_Variable (Lhs)
!         and then not (not Comes_From_Source (Lhs)
!                        and then Nkind (Lhs) in N_Has_Etype
!                        and then Needs_Construction (Etype (Lhs)))
!       then
  
           --  Ada 2005 (AI-327): Check assignment to the attribute Priority of a
           --  protected object.
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch6.adb gcc-16-20250608/gcc/ada/sem_ch6.adb
*** gcc-16-20250601/gcc/ada/sem_ch6.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch6.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Ch6 is
*** 581,596 ****
              Set_Has_Completion (Def_Id, not Is_Ignored_Ghost_Entity (Def_Id));
              Push_Scope (Def_Id);
              Install_Formals (Def_Id);
!             Preanalyze_Spec_Expression (Expr, Typ);
              End_Scope;
           else
              Push_Scope (Def_Id);
              Install_Formals (Def_Id);
!             Preanalyze_Spec_Expression (Expr, Typ);
              Check_Limited_Return (Orig_N, Expr, Typ);
              End_Scope;
           end if;
  
           --  In the case of an expression function marked with the aspect
           --  Static, we need to check the requirement that the function's
           --  expression is a potentially static expression. This is done
--- 581,601 ----
              Set_Has_Completion (Def_Id, not Is_Ignored_Ghost_Entity (Def_Id));
              Push_Scope (Def_Id);
              Install_Formals (Def_Id);
!             Preanalyze_And_Resolve_Spec_Expression (Expr, Typ);
              End_Scope;
           else
              Push_Scope (Def_Id);
              Install_Formals (Def_Id);
!             Preanalyze_And_Resolve_Spec_Expression (Expr, Typ);
              Check_Limited_Return (Orig_N, Expr, Typ);
              End_Scope;
           end if;
  
+          if Is_Incomplete_Type (Typ) then
+             Error_Msg_NE
+               ("premature usage of incomplete}", Expr, First_Subtype (Typ));
+          end if;
+ 
           --  In the case of an expression function marked with the aspect
           --  Static, we need to check the requirement that the function's
           --  expression is a potentially static expression. This is done
*************** package body Sem_Ch6 is
*** 617,623 ****
                    begin
                       Set_Checking_Potentially_Static_Expression (True);
  
!                      Preanalyze_Spec_Expression (Exp_Copy, Typ);
  
                       if not Is_Static_Expression (Exp_Copy) then
                          Error_Msg_N
--- 622,628 ----
                    begin
                       Set_Checking_Potentially_Static_Expression (True);
  
!                      Preanalyze_And_Resolve_Spec_Expression (Exp_Copy, Typ);
  
                       if not Is_Static_Expression (Exp_Copy) then
                          Error_Msg_N
*************** package body Sem_Ch6 is
*** 2270,2275 ****
--- 2275,2297 ----
        end if;
  
        Formal := First_Formal (Spec_Id);
+ 
+       --  The first parameter of a borrowing traversal function might be an IN
+       --  or an IN OUT parameter.
+ 
+       if Present (Formal)
+         and then Ekind (Etype (Spec_Id)) = E_Anonymous_Access_Type
+         and then not Is_Access_Constant (Etype (Spec_Id))
+       then
+          if Ekind (Formal) = E_Out_Parameter then
+             Error_Msg_Code := GEC_Out_Parameter_In_Function;
+             Error_Msg_N
+               ("first parameter of traversal function cannot have mode `OUT` "
+                & "in SPARK '[[]']", Formal);
+          end if;
+          Next_Formal (Formal);
+       end if;
+ 
        while Present (Formal) loop
           if Ekind (Spec_Id) in E_Function | E_Generic_Function
             and then not Is_Function_With_Side_Effects (Spec_Id)
*************** package body Sem_Ch6 is
*** 4581,4587 ****
        Analyze_SPARK_Subprogram_Specification (Specification (N));
  
        --  A function with side effects shall not be an expression function
!       --  (SPARK RM 6.1.11(6)).
  
        if Present (Spec_Id)
          and then (Is_Expression_Function (Spec_Id)
--- 4603,4609 ----
        Analyze_SPARK_Subprogram_Specification (Specification (N));
  
        --  A function with side effects shall not be an expression function
!       --  (SPARK RM 6.1.12(6)).
  
        if Present (Spec_Id)
          and then (Is_Expression_Function (Spec_Id)
*************** package body Sem_Ch6 is
*** 4644,4653 ****
                 --  an incomplete tagged type declaration, get the class-wide
                 --  type of the incomplete tagged type to match Find_Type_Name.
  
!                if Nkind (Parent (Etyp)) = N_Full_Type_Declaration
!                  and then Present (Incomplete_View (Parent (Etyp)))
!                then
!                   Etyp := Class_Wide_Type (Incomplete_View (Parent (Etyp)));
                 end if;
  
                 Set_Directly_Designated_Type (Etype (Spec_Id), Etyp);
--- 4666,4673 ----
                 --  an incomplete tagged type declaration, get the class-wide
                 --  type of the incomplete tagged type to match Find_Type_Name.
  
!                if Present (Incomplete_View (Etype (Etyp))) then
!                   Etyp := Class_Wide_Type (Incomplete_View (Etype (Etyp)));
                 end if;
  
                 Set_Directly_Designated_Type (Etype (Spec_Id), Etyp);
*************** package body Sem_Ch6 is
*** 5379,5384 ****
--- 5399,5487 ----
  
           End_Scope;
  
+          --  Register the subprogram in a Constructor_List when it is a valid
+          --  constructor.
+ 
+          if All_Extensions_Allowed
+            and then Present (First_Formal (Designator))
+          then
+ 
+             declare
+                First_Form_Type : constant Entity_Id :=
+                  Etype (First_Formal (Designator));
+ 
+                Construct : Elmt_Id;
+             begin
+                --  Valid constructors have a "controlling" formal of a type
+                --  with the Constructor aspect specified. Additionally, the
+                --  subprogram name must match value described by the aspect.
+ 
+                --  Additionally, constructor declarations must exist within the
+                --  same scope as the type declaration and before the type is
+                --  frozen.
+ 
+                --  For example:
+                --
+                --     type Foo is null record with Constructor => Bar;
+                --
+                --     procedure Bar (Self : in out Foo);
+                --
+ 
+                if Present (Constructor_Name (First_Form_Type))
+                  and then Current_Scope = Scope (First_Form_Type)
+                  and then Chars (Constructor_Name (First_Form_Type))
+                             = Chars (Designator)
+                  and then Ekind (Designator) = E_Procedure
+                  and then Nkind (Parent (N)) = N_Subprogram_Declaration
+                then
+                   --  If the constructor list is empty than we don't have to
+                   --  look for duplicates - we simply create the list and
+                   --  add it.
+ 
+                   if No (Constructor_List (First_Form_Type)) then
+                      Set_Constructor_List
+                        (First_Form_Type, New_Elmt_List (Designator));
+ 
+                   --  Otherwise, we need to check the constructor hasen't
+                   --  already been added (e.g. a specification and body) and
+                   --  that there isn't a constructor with the same number of
+                   --  type of formals.
+ 
+                   --  NOTE: The Constructor_List is sorted by the number of
+                   --  parameters.
+ 
+                   else
+                      Construct := First_Elmt
+                                     (Constructor_List (First_Form_Type));
+ 
+                      --  Skip over constructors with less than the number of
+                      --  parameters than Designator ???
+ 
+                      --  Loop through the constructors looking for ones which
+                      --  "match."
+ 
+                      Outter : loop
+ 
+                         --  When we are at the end of the constructor list we
+                         --  know there are no matches, so it is safe to add.
+ 
+                         if No (Construct) then
+                            Append_Elmt
+                              (Designator,
+                               Constructor_List (First_Form_Type));
+                            exit Outter;
+                         end if;
+ 
+                         --  Loop through the formals and check the formals
+                         --  match on type ???
+ 
+                         Next_Elmt (Construct);
+                      end loop Outter;
+                   end if;
+                end if;
+             end;
+          end if;
+ 
        --  The subprogram scope is pushed and popped around the processing of
        --  the return type for consistency with call above to Process_Formals
        --  (which itself can call Analyze_Return_Type), and to ensure that any
*************** package body Sem_Ch6 is
*** 6094,6100 ****
  
                       if NewD then
                          Push_Scope (New_Id);
!                         Preanalyze_Spec_Expression
                            (Default_Value (New_Formal), Etype (New_Formal));
                          End_Scope;
                       end if;
--- 6197,6203 ----
  
                       if NewD then
                          Push_Scope (New_Id);
!                         Preanalyze_And_Resolve_Spec_Expression
                            (Default_Value (New_Formal), Etype (New_Formal));
                          End_Scope;
                       end if;
*************** package body Sem_Ch6 is
*** 6517,6523 ****
                 --  expanded, so expand now to check conformance.
  
                 if NewD then
!                   Preanalyze_Spec_Expression
                      (Expression (New_Discr), New_Discr_Type);
                 end if;
  
--- 6620,6626 ----
                 --  expanded, so expand now to check conformance.
  
                 if NewD then
!                   Preanalyze_And_Resolve_Spec_Expression
                      (Expression (New_Discr), New_Discr_Type);
                 end if;
  
*************** package body Sem_Ch6 is
*** 13207,13213 ****
              --  Do the special preanalysis of the expression (see section on
              --  "Handling of Default Expressions" in the spec of package Sem).
  
!             Preanalyze_Spec_Expression (Default, Formal_Type);
  
              --  An access to constant cannot be the default for
              --  an access parameter that is an access to variable.
--- 13310,13316 ----
              --  Do the special preanalysis of the expression (see section on
              --  "Handling of Default Expressions" in the spec of package Sem).
  
!             Preanalyze_And_Resolve_Spec_Expression (Default, Formal_Type);
  
              --  An access to constant cannot be the default for
              --  an access parameter that is an access to variable.
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch8.adb gcc-16-20250608/gcc/ada/sem_ch8.adb
*** gcc-16-20250601/gcc/ada/sem_ch8.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch8.adb	Sun Jun  8 22:32:16 2025
*************** with Style;
*** 77,82 ****
--- 77,83 ----
  with Table;
  with Tbuild;         use Tbuild;
  with Uintp;          use Uintp;
+ with Uname;          use Uname;
  with Warnsw;         use Warnsw;
  
  package body Sem_Ch8 is
*************** package body Sem_Ch8 is
*** 4300,4305 ****
--- 4301,4344 ----
  
        begin
           pragma Assert (Nkind (Clause) = N_Use_Package_Clause);
+ 
+          --  Perform "use implies with" expansion (when extensions are enabled)
+          --  by inserting an extra with clause since redundant clauses don't
+          --  really matter.
+ 
+          if All_Extensions_Allowed and then Is_In_Context_Clause (Clause) then
+             declare
+                Unum        : Unit_Number_Type;
+                With_Clause : constant Node_Id :=
+                  Make_With_Clause (Sloc (Clause),
+                    Name => New_Copy_Tree (Pack));
+             begin
+                --  Attempt to load the unit mentioned in the use clause
+ 
+                Unum := Load_Unit
+                          (Load_Name  => Get_Unit_Name (With_Clause),
+                           Required   => False,
+                           Subunit    => False,
+                           Error_Node => Clause,
+                           With_Node  => With_Clause);
+ 
+                --  Either we can't file the unit or the use clause is a
+                --  reference to a nested package - in that case just handle
+                --  the use clause normally.
+ 
+                if Unum /= No_Unit then
+ 
+                   Set_Library_Unit (With_Clause, Cunit (Unum));
+                   Set_Is_Implicit_With (With_Clause);
+ 
+                   Analyze (With_Clause);
+                   Expand_With_Clause
+                    (With_Clause, Name (With_Clause),
+                      Enclosing_Comp_Unit_Node (Clause));
+                end if;
+             end;
+          end if;
+ 
           Analyze (Pack);
  
           --  Verify that the package standard is not directly named in a
*************** package body Sem_Ch8 is
*** 9504,9509 ****
--- 9543,9553 ----
             and then Present (Scope (Entity (E)))
           then
              Mark_Use_Package (Scope (Entity (E)));
+ 
+             --  Additionally mark the types of the formals and the return
+             --  types as used when dealing with an overloaded operator.
+ 
+             Mark_Parameters (Entity (E));
           end if;
  
           Curr := Current_Use_Clause (Base);
*************** package body Sem_Ch8 is
*** 9878,9905 ****
  
     procedure Premature_Usage (N : Node_Id) is
        Kind : constant Node_Kind := Nkind (Parent (Entity (N)));
-       E    : Entity_Id := Entity (N);
  
     begin
-       --  Within an instance, the analysis of the actual for a formal object
-       --  does not see the name of the object itself. This is significant only
-       --  if the object is an aggregate, where its analysis does not do any
-       --  name resolution on component associations. (see 4717-008). In such a
-       --  case, look for the visible homonym on the chain.
- 
-       if In_Instance and then Present (Homonym (E)) then
-          E := Homonym (E);
-          while Present (E) and then not In_Open_Scopes (Scope (E)) loop
-             E := Homonym (E);
-          end loop;
- 
-          if Present (E) then
-             Set_Entity (N, E);
-             Set_Etype (N, Etype (E));
-             return;
-          end if;
-       end if;
- 
        case Kind is
           when N_Component_Declaration =>
              Error_Msg_N
--- 9922,9929 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_ch9.adb gcc-16-20250608/gcc/ada/sem_ch9.adb
*** gcc-16-20250601/gcc/ada/sem_ch9.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_ch9.adb	Sun Jun  8 22:32:16 2025
*************** with Aspects;        use Aspects;
*** 28,38 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Contracts;      use Contracts;
- with Debug;          use Debug;
- with Diagnostics.Constructors; use Diagnostics.Constructors;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
  with Exp_Ch9;        use Exp_Ch9;
  with Elists;         use Elists;
--- 28,37 ----
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Contracts;      use Contracts;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Exp_Ch9;        use Exp_Ch9;
  with Elists;         use Elists;
*************** package body Sem_Ch9 is
*** 753,760 ****
        T_Name : Node_Id;
  
     begin
-       Tasking_Used := True;
- 
        T_Name := First (Names (N));
        while Present (T_Name) loop
           Analyze (T_Name);
--- 752,757 ----
*************** package body Sem_Ch9 is
*** 790,797 ****
  
     procedure Analyze_Accept_Alternative (N : Node_Id) is
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 787,792 ----
*************** package body Sem_Ch9 is
*** 823,830 ****
        Task_Nam  : Entity_Id := Empty;  -- initialize to prevent warning
  
     begin
-       Tasking_Used := True;
- 
        --  Entry name is initialized to Any_Id. It should get reset to the
        --  matching entry entity. An error is signalled if it is not reset.
  
--- 818,823 ----
*************** package body Sem_Ch9 is
*** 1064,1070 ****
        Trigger        : Node_Id;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (Max_Asynchronous_Select_Nesting, N);
        Check_Restriction (No_Select_Statements, N);
  
--- 1057,1062 ----
*************** package body Sem_Ch9 is
*** 1109,1115 ****
        Is_Disp_Select : Boolean := False;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Select_Statements, N);
  
        --  Ada 2005 (AI-345): The trigger may be a dispatching call
--- 1101,1106 ----
*************** package body Sem_Ch9 is
*** 1154,1160 ****
        Typ  : Entity_Id;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Delay, N);
  
        if Present (Pragmas_Before (N)) then
--- 1145,1150 ----
*************** package body Sem_Ch9 is
*** 1206,1212 ****
        E : constant Node_Id := Expression (N);
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Relative_Delay, N);
        Check_Restriction (No_Delay, N);
        Check_Potentially_Blocking_Operation (N);
--- 1196,1201 ----
*************** package body Sem_Ch9 is
*** 1231,1237 ****
        Typ : Entity_Id;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Delay, N);
        Check_Potentially_Blocking_Operation (N);
        Analyze_And_Resolve (E);
--- 1220,1225 ----
*************** package body Sem_Ch9 is
*** 1266,1273 ****
  
        Freeze_Previous_Contracts (N);
  
-       Tasking_Used := True;
- 
        --  Entry_Name is initialized to Any_Id. It should get reset to the
        --  matching entry entity. An error is signalled if it is not reset.
  
--- 1254,1259 ----
*************** package body Sem_Ch9 is
*** 1518,1525 ****
        Formals : constant List_Id   := Parameter_Specifications (N);
  
     begin
-       Tasking_Used := True;
- 
        if Present (Index) then
           Analyze (Index);
  
--- 1504,1509 ----
*************** package body Sem_Ch9 is
*** 1545,1552 ****
        Call : constant Node_Id := Entry_Call_Statement (N);
  
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 1529,1534 ----
*************** package body Sem_Ch9 is
*** 1589,1596 ****
     begin
        Generate_Definition (Def_Id);
  
-       Tasking_Used := True;
- 
        --  Case of no discrete subtype definition
  
        if No (D_Sdef) then
--- 1571,1576 ----
*************** package body Sem_Ch9 is
*** 1751,1757 ****
        Loop_Id : constant Entity_Id := Make_Temporary (Sloc (N), 'L');
  
     begin
-       Tasking_Used := True;
        Analyze (Def);
  
        --  There is no elaboration of the entry index specification. Therefore,
--- 1731,1736 ----
*************** package body Sem_Ch9 is
*** 1848,1854 ****
  
        Freeze_Previous_Contracts (N);
  
-       Tasking_Used := True;
        Mutate_Ekind (Body_Id, E_Protected_Body);
        Set_Etype (Body_Id, Standard_Void_Type);
        Spec_Id := Find_Concurrent_Spec (Body_Id);
--- 1827,1832 ----
*************** package body Sem_Ch9 is
*** 1991,1997 ****
     --  Start of processing for Analyze_Protected_Definition
  
     begin
-       Tasking_Used := True;
        Analyze_Declarations (Visible_Declarations (N));
  
        if not Is_Empty_List (Private_Declarations (N)) then
--- 1969,1974 ----
*************** package body Sem_Ch9 is
*** 2047,2053 ****
           return;
        end if;
  
-       Tasking_Used := True;
        Check_Restriction (No_Protected_Types, N);
  
        T := Find_Type_Name (N);
--- 2024,2029 ----
*************** package body Sem_Ch9 is
*** 2223,2240 ****
                 --  Pragma case
  
                 else
!                   if Debug_Flag_Underscore_DD then
!                      Record_Pragma_No_Effect_With_Lock_Free_Warning
!                        (Pragma_Node     => Prio_Item,
!                         Pragma_Name     => Pragma_Name (Prio_Item),
!                         Lock_Free_Node  => Id,
!                         Lock_Free_Range => Parent (Id));
!                   else
!                      Error_Msg_Name_1 := Pragma_Name (Prio_Item);
!                      Error_Msg_NE
!                        ("pragma% for & has no effect when Lock_Free given??",
!                         Prio_Item, Id);
!                   end if;
                 end if;
              end if;
           end;
--- 2199,2219 ----
                 --  Pragma case
  
                 else
!                   Error_Msg_Name_1 := Pragma_Name (Prio_Item);
!                   Error_Msg_NE
!                      (Msg        =>
!                         "pragma% for & has no effect when Lock_Free given??",
!                      N          => Prio_Item,
!                      E          => Id,
!                      Error_Code => GNAT0003,
!                      Label      => "No effect",
!                      Spans      =>
!                         (1 =>
!                            Labeled_Span
!                               (Span       => To_Full_Span (Parent (Id)),
!                               Label      => "Lock_Free in effect here",
!                               Is_Primary => False,
!                               Is_Region  => True)));
                 end if;
              end if;
           end;
*************** package body Sem_Ch9 is
*** 2422,2428 ****
           Modes    => True,
           Warnings => True);
  
-       Tasking_Used := True;
        Check_Restriction (No_Requeue_Statements, N);
        Check_Unreachable_Code (N);
  
--- 2401,2406 ----
*************** package body Sem_Ch9 is
*** 2754,2760 ****
        Alt_Count         : Uint    := Uint_0;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Select_Statements, N);
  
        --  Loop to analyze alternatives
--- 2732,2737 ----
*************** package body Sem_Ch9 is
*** 2871,2877 ****
  
     begin
        Generate_Definition (Obj_Id);
-       Tasking_Used := True;
  
        --  A single protected declaration is transformed into a pair of an
        --  anonymous protected type and an object of that type. Generate:
--- 2848,2853 ----
*************** package body Sem_Ch9 is
*** 2959,2965 ****
  
     begin
        Generate_Definition (Obj_Id);
-       Tasking_Used := True;
  
        --  A single task declaration is transformed into a pair of an anonymous
        --  task type and an object of that type. Generate:
--- 2935,2940 ----
*************** package body Sem_Ch9 is
*** 3074,3080 ****
  
        Freeze_Previous_Contracts (N);
  
-       Tasking_Used := True;
        Set_Scope (Body_Id, Current_Scope);
        Mutate_Ekind (Body_Id, E_Task_Body);
        Set_Etype (Body_Id, Standard_Void_Type);
--- 3049,3054 ----
*************** package body Sem_Ch9 is
*** 3219,3226 ****
        L : Entity_Id;
  
     begin
-       Tasking_Used := True;
- 
        if Present (Visible_Declarations (N)) then
           Analyze_Declarations (Visible_Declarations (N));
        end if;
--- 3193,3198 ----
*************** package body Sem_Ch9 is
*** 3265,3272 ****
  
        --  Proceed ahead with analysis of task type declaration
  
-       Tasking_Used := True;
- 
        --  The sequential partition elaboration policy is supported only in the
        --  restricted profile.
  
--- 3237,3242 ----
*************** package body Sem_Ch9 is
*** 3448,3455 ****
  
     procedure Analyze_Terminate_Alternative (N : Node_Id) is
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 3418,3423 ----
*************** package body Sem_Ch9 is
*** 3469,3475 ****
        Is_Disp_Select : Boolean := False;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Select_Statements, N);
  
        --  Ada 2005 (AI-345): The trigger may be a dispatching call
--- 3437,3442 ----
*************** package body Sem_Ch9 is
*** 3504,3511 ****
        Trigger : constant Node_Id := Triggering_Statement (N);
  
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 3471,3476 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_disp.adb gcc-16-20250608/gcc/ada/sem_disp.adb
*** gcc-16-20250601/gcc/ada/sem_disp.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_disp.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Disp is
*** 80,86 ****
     --  parameter); otherwise returns empty.
  
     function Find_Hidden_Overridden_Primitive (S : Entity_Id) return Entity_Id;
!    --  [Ada 2012:AI-0125] Find an inherited hidden primitive of the dispatching
     --  type of S that has the same name of S, a type-conformant profile, an
     --  original corresponding operation O that is a primitive of a visible
     --  ancestor of the dispatching type of S and O is visible at the point of
--- 80,86 ----
     --  parameter); otherwise returns empty.
  
     function Find_Hidden_Overridden_Primitive (S : Entity_Id) return Entity_Id;
!    --  [AI05-0125] Find an inherited hidden primitive of the dispatching
     --  type of S that has the same name of S, a type-conformant profile, an
     --  original corresponding operation O that is a primitive of a visible
     --  ancestor of the dispatching type of S and O is visible at the point of
*************** package body Sem_Disp is
*** 91,97 ****
     --  This routine does not search for non-hidden primitives since they are
     --  covered by the normal Ada 2005 rules. Its name was motivated by an
     --  intermediate version of AI05-0125 where this term was proposed to
!    --  name these entities in the RM.
  
     function Is_Inherited_Public_Operation (Op : Entity_Id) return Boolean;
     --  Check whether a primitive operation is inherited from an operation
--- 91,98 ----
     --  This routine does not search for non-hidden primitives since they are
     --  covered by the normal Ada 2005 rules. Its name was motivated by an
     --  intermediate version of AI05-0125 where this term was proposed to
!    --  name these entities in the RM. FWIW, note that AI05-0125 was
!    --  not approved; it was voted "No Action".
  
     function Is_Inherited_Public_Operation (Op : Entity_Id) return Boolean;
     --  Check whether a primitive operation is inherited from an operation
*************** package body Sem_Disp is
*** 1710,1718 ****
  
        Ovr_Subp := Old_Subp;
  
!       --  [Ada 2012:AI-0125]: Search for inherited hidden primitive that may be
!       --  overridden by Subp. This only applies to source subprograms, and
!       --  their declaration must carry an explicit overriding indicator.
  
        if No (Ovr_Subp)
          and then Ada_Version >= Ada_2012
--- 1711,1718 ----
  
        Ovr_Subp := Old_Subp;
  
!       --  Search for inherited hidden primitive that may be
!       --  overridden by Subp. This only applies to source subprograms.
  
        if No (Ovr_Subp)
          and then Ada_Version >= Ada_2012
*************** package body Sem_Disp is
*** 1721,1736 ****
            Nkind (Unit_Declaration_Node (Subp)) = N_Subprogram_Declaration
        then
           Ovr_Subp := Find_Hidden_Overridden_Primitive (Subp);
- 
-          --  Warn if the proper overriding indicator has not been supplied.
- 
-          if Present (Ovr_Subp)
-            and then
-              not Must_Override (Specification (Unit_Declaration_Node (Subp)))
-            and then not In_Instance
-          then
-             Error_Msg_NE ("missing overriding indicator for&??", Subp, Subp);
-          end if;
        end if;
  
        --  Now it should be a correct primitive operation, put it in the list
--- 1721,1726 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_eval.adb gcc-16-20250608/gcc/ada/sem_eval.adb
*** gcc-16-20250601/gcc/ada/sem_eval.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_eval.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Eval is
*** 144,150 ****
     Checking_For_Potentially_Static_Expression : Boolean := False;
     --  Global flag that is set True during Analyze_Static_Expression_Function
     --  in order to verify that the result expression of a static expression
!    --  function is a potentially static function (see RM2022 6.8(5.3)).
  
     -----------------------
     -- Local Subprograms --
--- 144,150 ----
     Checking_For_Potentially_Static_Expression : Boolean := False;
     --  Global flag that is set True during Analyze_Static_Expression_Function
     --  in order to verify that the result expression of a static expression
!    --  function is a potentially static function (see RM 2022 6.8(5.3)).
  
     -----------------------
     -- Local Subprograms --
*************** package body Sem_Eval is
*** 574,586 ****
  
           Rewrite (N, New_Copy (N));
  
!          if not Is_Floating_Point_Type (T) then
!             Set_Realval
!               (N, Corresponding_Integer_Value (N) * Small_Value (T));
! 
!          elsif not UR_Is_Zero (Realval (N)) then
              Set_Realval (N, Machine_Number (Base_Type (T), Realval (N), N));
              Set_Is_Machine_Number (N);
           end if;
  
        end if;
--- 574,584 ----
  
           Rewrite (N, New_Copy (N));
  
!          if Is_Floating_Point_Type (T) then
              Set_Realval (N, Machine_Number (Base_Type (T), Realval (N), N));
              Set_Is_Machine_Number (N);
+          else
+             Set_Realval (N, Corresponding_Integer_Value (N) * Small_Value (T));
           end if;
  
        end if;
*************** package body Sem_Eval is
*** 4989,5015 ****
           end if;
        end Check_Elab_Call;
  
-       Modulus, Val : Uint;
- 
     begin
!       if Compile_Time_Known_Value (Left)
!         and then Compile_Time_Known_Value (Right)
        then
!          pragma Assert (not Non_Binary_Modulus (Typ));
  
           if Op = N_Op_Shift_Left then
              Check_Elab_Call;
  
-             if Is_Modular_Integer_Type (Typ) then
-                Modulus := Einfo.Entities.Modulus (Typ);
-             else
-                Modulus := Uint_2 ** RM_Size (Typ);
-             end if;
- 
              --  Fold Shift_Left (X, Y) by computing
              --  (X * 2**Y) rem modulus [- Modulus]
  
!             Val := (Expr_Value (Left) * (Uint_2 ** Expr_Value (Right)))
                       rem Modulus;
  
              if Is_Modular_Integer_Type (Typ)
--- 4987,5027 ----
           end if;
        end Check_Elab_Call;
  
     begin
!       if not (Compile_Time_Known_Value (Left)
!               and then Compile_Time_Known_Value (Right))
        then
!          return;
!       end if;
  
+       pragma Assert (not Non_Binary_Modulus (Typ));
+       pragma Assert (Expr_Value (Right) >= Uint_0); -- Amount is always Natural
+ 
+       --  Shift by zero bits is a no-op
+ 
+       if Expr_Value (Right) = Uint_0 then
+          Fold_Uint (N, Expr_Value (Left), Static => Static);
+          return;
+       end if;
+ 
+       declare
+          Modulus : constant Uint :=
+            (if Is_Modular_Integer_Type (Typ) then Einfo.Entities.Modulus (Typ)
+             else Uint_2 ** RM_Size (Typ));
+          Amount : constant Uint := UI_Min (Expr_Value (Right), RM_Size (Typ));
+          --  Shift by an Amount greater than the size is all-zeros or all-ones.
+          --  Without this "min", we could use huge amounts of time and memory
+          --  below (e.g. 2**Amount, if Amount were a billion).
+ 
+          Val : Uint;
+       begin
           if Op = N_Op_Shift_Left then
              Check_Elab_Call;
  
              --  Fold Shift_Left (X, Y) by computing
              --  (X * 2**Y) rem modulus [- Modulus]
  
!             Val := (Expr_Value (Left) * (Uint_2 ** Amount))
                       rem Modulus;
  
              if Is_Modular_Integer_Type (Typ)
*************** package body Sem_Eval is
*** 5023,5071 ****
           elsif Op = N_Op_Shift_Right then
              Check_Elab_Call;
  
!             --  X >> 0 is a no-op
  
!             if Expr_Value (Right) = Uint_0 then
!                Fold_Uint (N, Expr_Value (Left), Static => Static);
!             else
!                if Is_Modular_Integer_Type (Typ) then
!                   Modulus := Einfo.Entities.Modulus (Typ);
                 else
!                   Modulus := Uint_2 ** RM_Size (Typ);
                 end if;
  
!                --  Fold X >> Y by computing (X [+ Modulus]) / 2**Y
!                --  Note that after a Shift_Right operation (with Y > 0), the
!                --  result is always positive, even if the original operand was
!                --  negative.
! 
!                declare
!                   M : Unat;
!                begin
!                   if Expr_Value (Left) >= Uint_0 then
!                      M := Uint_0;
!                   else
!                      M := Modulus;
!                   end if;
  
-                   Fold_Uint
-                     (N,
-                      (Expr_Value (Left) + M) / (Uint_2 ** Expr_Value (Right)),
-                      Static => Static);
-                end;
-             end if;
           elsif Op = N_Op_Shift_Right_Arithmetic then
              Check_Elab_Call;
  
              declare
!                Two_Y : constant Uint := Uint_2 ** Expr_Value (Right);
              begin
-                if Is_Modular_Integer_Type (Typ) then
-                   Modulus := Einfo.Entities.Modulus (Typ);
-                else
-                   Modulus := Uint_2 ** RM_Size (Typ);
-                end if;
- 
                 --  X / 2**Y if X if positive or a small enough modular integer
  
                 if (Is_Modular_Integer_Type (Typ)
--- 5035,5066 ----
           elsif Op = N_Op_Shift_Right then
              Check_Elab_Call;
  
!             --  Fold X >> Y by computing (X [+ Modulus]) / 2**Y.
!             --  Note that after a Shift_Right operation (with Y > 0), the
!             --  result is always positive, even if the original operand was
!             --  negative.
  
!             declare
!                M : Unat;
!             begin
!                if Expr_Value (Left) >= Uint_0 then
!                   M := Uint_0;
                 else
!                   M := Modulus;
                 end if;
  
!                Fold_Uint
!                  (N,
!                   (Expr_Value (Left) + M) / (Uint_2 ** Amount),
!                   Static => Static);
!             end;
  
           elsif Op = N_Op_Shift_Right_Arithmetic then
              Check_Elab_Call;
  
              declare
!                Two_Y : constant Uint := Uint_2 ** Amount;
              begin
                 --  X / 2**Y if X if positive or a small enough modular integer
  
                 if (Is_Modular_Integer_Type (Typ)
*************** package body Sem_Eval is
*** 5096,5102 ****
                      (N,
                       (Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Expr_Value (Right)),
                       Static => Static);
  
                 --  Negative signed integer, compute via multiple/divide the
--- 5091,5097 ----
                      (N,
                       (Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Amount),
                       Static => Static);
  
                 --  Negative signed integer, compute via multiple/divide the
*************** package body Sem_Eval is
*** 5108,5120 ****
                      (N,
                       (Modulus + Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Expr_Value (Right))
                          - Modulus,
                       Static => Static);
                 end if;
              end;
           end if;
!       end if;
     end Fold_Shift;
  
     --------------
--- 5103,5117 ----
                      (N,
                       (Modulus + Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Amount)
                          - Modulus,
                       Static => Static);
                 end if;
              end;
+          else
+             raise Program_Error;
           end if;
!       end;
     end Fold_Shift;
  
     --------------
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_eval.ads gcc-16-20250608/gcc/ada/sem_eval.ads
*** gcc-16-20250601/gcc/ada/sem_eval.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_eval.ads	Sun Jun  8 22:32:16 2025
*************** package Sem_Eval is
*** 301,334 ****
     --  is static or its value is known at compile time. This version is used
     --  for string types and returns the corresponding N_String_Literal node.
  
!    procedure Eval_Actual                 (N : Node_Id);
!    procedure Eval_Allocator              (N : Node_Id);
!    procedure Eval_Arithmetic_Op          (N : Node_Id);
!    procedure Eval_Call                   (N : Node_Id);
!    procedure Eval_Case_Expression        (N : Node_Id);
!    procedure Eval_Character_Literal      (N : Node_Id);
!    procedure Eval_Concatenation          (N : Node_Id);
!    procedure Eval_Entity_Name            (N : Node_Id);
!    procedure Eval_If_Expression          (N : Node_Id);
!    procedure Eval_Indexed_Component      (N : Node_Id);
!    procedure Eval_Integer_Literal        (N : Node_Id);
!    procedure Eval_Logical_Op             (N : Node_Id);
!    procedure Eval_Membership_Op          (N : Node_Id);
!    procedure Eval_Named_Integer          (N : Node_Id);
!    procedure Eval_Named_Real             (N : Node_Id);
!    procedure Eval_Op_Expon               (N : Node_Id);
!    procedure Eval_Op_Not                 (N : Node_Id);
!    procedure Eval_Real_Literal           (N : Node_Id);
!    procedure Eval_Relational_Op          (N : Node_Id);
!    procedure Eval_Selected_Component     (N : Node_Id);
!    procedure Eval_Shift                  (N : Node_Id);
!    procedure Eval_Short_Circuit          (N : Node_Id);
!    procedure Eval_Slice                  (N : Node_Id);
!    procedure Eval_String_Literal         (N : Node_Id);
!    procedure Eval_Qualified_Expression   (N : Node_Id);
!    procedure Eval_Type_Conversion        (N : Node_Id);
!    procedure Eval_Unary_Op               (N : Node_Id);
!    procedure Eval_Unchecked_Conversion   (N : Node_Id);
  
     procedure Flag_Non_Static_Expr (Msg : String; Expr : Node_Id);
     --  This procedure is called after it has been determined that Expr is not
--- 301,334 ----
     --  is static or its value is known at compile time. This version is used
     --  for string types and returns the corresponding N_String_Literal node.
  
!    procedure Eval_Actual               (N : Node_Id);
!    procedure Eval_Allocator            (N : Node_Id);
!    procedure Eval_Arithmetic_Op        (N : Node_Id);
!    procedure Eval_Call                 (N : Node_Id);
!    procedure Eval_Case_Expression      (N : Node_Id);
!    procedure Eval_Character_Literal    (N : Node_Id);
!    procedure Eval_Concatenation        (N : Node_Id);
!    procedure Eval_Entity_Name          (N : Node_Id);
!    procedure Eval_If_Expression        (N : Node_Id);
!    procedure Eval_Indexed_Component    (N : Node_Id);
!    procedure Eval_Integer_Literal      (N : Node_Id);
!    procedure Eval_Logical_Op           (N : Node_Id);
!    procedure Eval_Membership_Op        (N : Node_Id);
!    procedure Eval_Named_Integer        (N : Node_Id);
!    procedure Eval_Named_Real           (N : Node_Id);
!    procedure Eval_Op_Expon             (N : Node_Id);
!    procedure Eval_Op_Not               (N : Node_Id);
!    procedure Eval_Real_Literal         (N : Node_Id);
!    procedure Eval_Relational_Op        (N : Node_Id);
!    procedure Eval_Selected_Component   (N : Node_Id);
!    procedure Eval_Shift                (N : Node_Id);
!    procedure Eval_Short_Circuit        (N : Node_Id);
!    procedure Eval_Slice                (N : Node_Id);
!    procedure Eval_String_Literal       (N : Node_Id);
!    procedure Eval_Qualified_Expression (N : Node_Id);
!    procedure Eval_Type_Conversion      (N : Node_Id);
!    procedure Eval_Unary_Op             (N : Node_Id);
!    procedure Eval_Unchecked_Conversion (N : Node_Id);
  
     procedure Flag_Non_Static_Expr (Msg : String; Expr : Node_Id);
     --  This procedure is called after it has been determined that Expr is not
*************** package Sem_Eval is
*** 342,382 ****
     --  set of messages is all posted.
  
     procedure Fold_Str (N : Node_Id; Val : String_Id; Static : Boolean);
-    --  Rewrite N with a new N_String_Literal node as the result of the compile
-    --  time evaluation of the node N. Val is the resulting string value from
-    --  the folding operation. The Is_Static_Expression flag is set in the
-    --  result node. The result is fully analyzed and resolved. Static indicates
-    --  whether the result should be considered static or not (True = consider
-    --  static). The point here is that normally all string literals are static,
-    --  but if this was the result of some sequence of evaluation where values
-    --  were known at compile time but not static, then the result is not
-    --  static. The call has no effect if Raises_Constraint_Error (N) is True,
-    --  since there is no point in folding if we have an error.
- 
     procedure Fold_Uint (N : Node_Id; Val : Uint; Static : Boolean);
-    --  Rewrite N with a (N_Integer_Literal, N_Identifier, N_Character_Literal)
-    --  node as the result of the compile time evaluation of the node N. Val is
-    --  the result in the integer case and is the position of the literal in the
-    --  literals list for the enumeration case. Is_Static_Expression is set True
-    --  in the result node. The result is fully analyzed/resolved. Static
-    --  indicates whether the result should be considered static or not (True =
-    --  consider static). The point here is that normally all integer literals
-    --  are static, but if this was the result of some sequence of evaluation
-    --  where values were known at compile time but not static, then the result
-    --  is not static. The call has no effect if Raises_Constraint_Error (N) is
-    --  True, since there is no point in folding if we have an error.
- 
     procedure Fold_Ureal (N : Node_Id; Val : Ureal; Static : Boolean);
!    --  Rewrite N with a new N_Real_Literal node as the result of the compile
!    --  time evaluation of the node N. Val is the resulting real value from the
!    --  folding operation. The Is_Static_Expression flag is set in the result
!    --  node. The result is fully analyzed and result. Static indicates whether
!    --  the result should be considered static or not (True = consider static).
!    --  The point here is that normally all string literals are static, but if
!    --  this was the result of some sequence of evaluation where values were
!    --  known at compile time but not static, then the result is not static.
!    --  The call has no effect if Raises_Constraint_Error (N) is True, since
!    --  there is no point in folding if we have an error.
  
     procedure Fold (N : Node_Id);
     --  Rewrite N with the relevant value if Compile_Time_Known_Value (N) is
--- 342,353 ----
     --  set of messages is all posted.
  
     procedure Fold_Str (N : Node_Id; Val : String_Id; Static : Boolean);
     procedure Fold_Uint (N : Node_Id; Val : Uint; Static : Boolean);
     procedure Fold_Ureal (N : Node_Id; Val : Ureal; Static : Boolean);
!    --  Rewrite N with a new literal node with compile-time-known value Val.
!    --  Is_Static_Expression is set to Static. This has no effect if
!    --  Raises_Constraint_Error (N) is True, since there is no point in
!    --  folding if we have an error.
  
     procedure Fold (N : Node_Id);
     --  Rewrite N with the relevant value if Compile_Time_Known_Value (N) is
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_prag.adb gcc-16-20250608/gcc/ada/sem_prag.adb
*** gcc-16-20250601/gcc/ada/sem_prag.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_prag.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Prag is
*** 216,225 ****
       (Prag    : Node_Id;
        Spec_Id : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Postcondition,
!    --  Precondition, Refined_Post, Subprogram_Variant, and Test_Case. Emit a
!    --  warning when pragma Prag is associated with subprogram Spec_Id subject
!    --  to Inline_Always, assertions are enabled and inling is done in the
!    --  frontend.
  
     procedure Check_State_And_Constituent_Use
       (States   : Elist_Id;
--- 216,225 ----
       (Prag    : Node_Id;
        Spec_Id : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Postcondition,
!    --  Precondition, Program_Exit, Refined_Post, Subprogram_Variant, and
!    --  Test_Case. Emit a warning when pragma Prag is associated with subprogram
!    --  Spec_Id subject to Inline_Always, assertions are enabled and inling is
!    --  done in the frontend.
  
     procedure Check_State_And_Constituent_Use
       (States   : Elist_Id;
*************** package body Sem_Prag is
*** 234,242 ****
       (Contract_Id : Entity_Id;
        Freeze_Id   : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Exceptional_Cases,
!    --  Part_Of, Post, Pre and Subprogram_Variant. Emit a freezing-related error
!    --  message where Freeze_Id is the entity of a body which caused contract
!    --  freezing and Contract_Id denotes the entity of the affected contstruct.
  
     procedure Duplication_Error (Prag : Node_Id; Prev : Node_Id);
     --  Subsidiary to all Find_Related_xxx routines. Emit an error on pragma
--- 234,243 ----
       (Contract_Id : Entity_Id;
        Freeze_Id   : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Exceptional_Cases,
!    --  Part_Of, Post, Pre, Program_Exit and Subprogram_Variant. Emit a
!    --  freezing-related error message where Freeze_Id is the entity of a body
!    --  which caused contract freezing and Contract_Id denotes the entity of the
!    --  affected contstruct.
  
     procedure Duplication_Error (Prag : Node_Id; Prev : Node_Id);
     --  Subsidiary to all Find_Related_xxx routines. Emit an error on pragma
*************** package body Sem_Prag is
*** 474,480 ****
           end if;
  
           Errors := Serious_Errors_Detected;
!          Preanalyze_Assert_Expression (Expression (Arg1), Standard_Boolean);
  
           --  Emit a clarification message when the expression contains at least
           --  one undefined reference, possibly due to contract freezing.
--- 475,482 ----
           end if;
  
           Errors := Serious_Errors_Detected;
!          Preanalyze_And_Resolve_Assert_Expression
!            (Expression (Arg1), Standard_Boolean);
  
           --  Emit a clarification message when the expression contains at least
           --  one undefined reference, possibly due to contract freezing.
*************** package body Sem_Prag is
*** 564,570 ****
  
              if Nkind (Case_Guard) /= N_Others_Choice then
                 Errors := Serious_Errors_Detected;
!                Preanalyze_Assert_Expression (Case_Guard, Standard_Boolean);
  
                 --  Emit a clarification message when the case guard contains
                 --  at least one undefined reference, possibly due to contract
--- 566,573 ----
  
              if Nkind (Case_Guard) /= N_Others_Choice then
                 Errors := Serious_Errors_Detected;
!                Preanalyze_And_Resolve_Assert_Expression
!                  (Case_Guard, Standard_Boolean);
  
                 --  Emit a clarification message when the case guard contains
                 --  at least one undefined reference, possibly due to contract
*************** package body Sem_Prag is
*** 579,585 ****
              end if;
  
              Errors := Serious_Errors_Detected;
!             Preanalyze_Assert_Expression (Conseq, Standard_Boolean);
  
              --  Emit a clarification message when the consequence contains
              --  at least one undefined reference, possibly due to contract
--- 582,589 ----
              end if;
  
              Errors := Serious_Errors_Detected;
!             Preanalyze_And_Resolve_Assert_Expression
!               (Conseq, Standard_Boolean);
  
              --  Emit a clarification message when the consequence contains
              --  at least one undefined reference, possibly due to contract
*************** package body Sem_Prag is
*** 2391,2399 ****
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression enforcing the expression type
  
!          Preanalyze_Assert_Expression (Consequence, Any_Boolean);
  
           Check_Params (Consequence);
  
--- 2395,2404 ----
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_And_Resolve_Assert_Expression enforcing the expression
!          --  type.
  
!          Preanalyze_And_Resolve_Assert_Expression (Consequence, Any_Boolean);
  
           Check_Params (Consequence);
  
*************** package body Sem_Prag is
*** 2621,2627 ****
  
              if Nkind (Case_Guard) /= N_Others_Choice then
                 Errors := Serious_Errors_Detected;
!                Preanalyze_Assert_Expression (Case_Guard, Standard_Boolean);
  
                 --  Emit a clarification message when the case guard contains
                 --  at least one undefined reference, possibly due to contract
--- 2626,2633 ----
  
              if Nkind (Case_Guard) /= N_Others_Choice then
                 Errors := Serious_Errors_Detected;
!                Preanalyze_And_Resolve_Assert_Expression
!                  (Case_Guard, Standard_Boolean);
  
                 --  Emit a clarification message when the case guard contains
                 --  at least one undefined reference, possibly due to contract
*************** package body Sem_Prag is
*** 2636,2649 ****
              end if;
  
              --  Check the exit kind. It shall be either an exception or the
!             --  identifiers Normal_Return or Any_Exception.
  
              if Nkind (Exit_Kind) = N_Identifier then
                 if Chars (Exit_Kind) not in Name_Normal_Return
                                           | Name_Exception_Raised
                 then
                    Error_Msg_N
!                     ("exit kind should be Normal_Return or Exception_Raised",
                       Exit_Kind);
                 end if;
  
--- 2642,2657 ----
              end if;
  
              --  Check the exit kind. It shall be either an exception or the
!             --  identifiers Normal_Return, Exception_Raised, or Program_Exit.
  
              if Nkind (Exit_Kind) = N_Identifier then
                 if Chars (Exit_Kind) not in Name_Normal_Return
                                           | Name_Exception_Raised
+                                          | Name_Program_Exit
                 then
                    Error_Msg_N
!                     ("exit kind should be Normal_Return, Exception_Raised, " &
!                        "or Program_Exit",
                       Exit_Kind);
                 end if;
  
*************** package body Sem_Prag is
*** 5112,5121 ****
        --  Determines if the placement of the current pragma is appropriate
        --  for a configuration pragma.
  
-       function Is_In_Context_Clause return Boolean;
-       --  Returns True if pragma appears within the context clause of a unit,
-       --  and False for any other placement (does not generate any messages).
- 
        function Is_Static_String_Expression (Arg : Node_Id) return Boolean;
        --  Analyzes the argument, and determines if it is a static string
        --  expression, returns True if so, False if non-static or not String.
--- 5120,5125 ----
*************** package body Sem_Prag is
*** 5585,5591 ****
  
              if Present (Arg2) then
                 Check_Optional_Identifier (Arg2, Name_Message);
!                Preanalyze_Assert_Expression
                   (Get_Pragma_Arg (Arg2), Standard_String);
              end if;
           end if;
--- 5589,5595 ----
  
              if Present (Arg2) then
                 Check_Optional_Identifier (Arg2, Name_Message);
!                Preanalyze_And_Resolve_Assert_Expression
                   (Get_Pragma_Arg (Arg2), Standard_String);
              end if;
           end if;
*************** package body Sem_Prag is
*** 6009,6015 ****
  
           --  Check case of appearing within context clause
  
!          if not Is_Unused and then Is_In_Context_Clause then
  
              --  The arguments must all be units mentioned in a with clause in
              --  the same context clause. Note that Par.Prag already checked
--- 6013,6019 ----
  
           --  Check case of appearing within context clause
  
!          if not Is_Unused and then Is_In_Context_Clause (N) then
  
              --  The arguments must all be units mentioned in a with clause in
              --  the same context clause. Note that Par.Prag already checked
*************** package body Sem_Prag is
*** 8127,8153 ****
           end if;
        end Is_Configuration_Pragma;
  
-       --------------------------
-       -- Is_In_Context_Clause --
-       --------------------------
- 
-       function Is_In_Context_Clause return Boolean is
-          Plist       : List_Id;
-          Parent_Node : Node_Id;
- 
-       begin
-          if Is_List_Member (N) then
-             Plist := List_Containing (N);
-             Parent_Node := Parent (Plist);
- 
-             return Present (Parent_Node)
-               and then Nkind (Parent_Node) = N_Compilation_Unit
-               and then Context_Items (Parent_Node) = Plist;
-          end if;
- 
-          return False;
-       end Is_In_Context_Clause;
- 
        ---------------------------------
        -- Is_Static_String_Expression --
        ---------------------------------
--- 8131,8136 ----
*************** package body Sem_Prag is
*** 10049,10055 ****
              end if;
  
              Def_Id := Entity (Def_Id);
-             Kill_Size_Check_Code (Def_Id);
              if Ekind (Def_Id) /= E_Constant then
                 Note_Possible_Modification
                   (Get_Pragma_Arg (Arg1), Sure => False);
--- 10032,10037 ----
*************** package body Sem_Prag is
*** 10062,10068 ****
              --  purposes of legality checks and removal of ignored Ghost code.
  
              Mark_Ghost_Pragma (N, Def_Id);
-             Kill_Size_Check_Code (Def_Id);
              if Ekind (Def_Id) /= E_Constant then
                 Note_Possible_Modification
                   (Get_Pragma_Arg (Arg2), Sure => False);
--- 10044,10049 ----
*************** package body Sem_Prag is
*** 14065,14071 ****
                 --  Perform preanalysis to deal with embedded Loop_Entry
                 --  attributes.
  
!                Preanalyze_Assert_Expression (Expr, Any_Boolean);
              end if;
  
              --  Implement Assert[_And_Cut]/Assume/Loop_Invariant by generating
--- 14046,14052 ----
                 --  Perform preanalysis to deal with embedded Loop_Entry
                 --  attributes.
  
!                Preanalyze_And_Resolve_Assert_Expression (Expr, Any_Boolean);
              end if;
  
              --  Implement Assert[_And_Cut]/Assume/Loop_Invariant by generating
*************** package body Sem_Prag is
*** 16166,16172 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_CPU_Range));
  
                 --  See comment in Sem_Ch13 about the following restrictions
  
--- 16147,16154 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_CPU_Range));
  
                 --  See comment in Sem_Ch13 about the following restrictions
  
*************** package body Sem_Prag is
*** 16212,16218 ****
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Only protected types allowed
  
--- 16194,16200 ----
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_And_Resolve_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Only protected types allowed
  
*************** package body Sem_Prag is
*** 16841,16847 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_Dispatching_Domain));
  
                 --  Check duplicate pragma before we chain the pragma in the Rep
                 --  Item chain of Ent.
--- 16823,16830 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_Dispatching_Domain));
  
                 --  Check duplicate pragma before we chain the pragma in the Rep
                 --  Item chain of Ent.
*************** package body Sem_Prag is
*** 16869,16875 ****
           begin
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause then
                 Pragma_Misplaced;
              end if;
  
--- 16852,16858 ----
           begin
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause (N) then
                 Pragma_Misplaced;
              end if;
  
*************** package body Sem_Prag is
*** 16965,16971 ****
  
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause then
                 Pragma_Misplaced;
              end if;
  
--- 16948,16954 ----
  
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause (N) then
                 Pragma_Misplaced;
              end if;
  
*************** package body Sem_Prag is
*** 17457,17462 ****
--- 17440,17446 ----
           --
           --    EXIT_KIND ::=
           --      Normal_Return
+          --    | Program_Exit
           --    | Exception_Raised
           --    | (Exception_Raised => exception_name)
           --
*************** package body Sem_Prag is
*** 19964,19970 ****
              --  object to be imported.
  
              if Ekind (Def_Id) = E_Variable then
-                Kill_Size_Check_Code (Def_Id);
                 Note_Possible_Modification (Id, Sure => False);
  
                 --  Initialization is not allowed for imported variable
--- 19948,19953 ----
*************** package body Sem_Prag is
*** 20074,20080 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_Interrupt_Priority));
              end if;
  
              if Nkind (P) not in N_Task_Definition | N_Protected_Definition then
--- 20057,20064 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_Interrupt_Priority));
              end if;
  
              if Nkind (P) not in N_Task_Definition | N_Protected_Definition then
*************** package body Sem_Prag is
*** 20979,20988 ****
                      ("Structural variant shall be the only variant", Variant);
                 end if;
  
!                --  Preanalyze_Assert_Expression, but without enforcing any of
!                --  the two acceptable types.
  
!                Preanalyze_Assert_Expression (Expression (Variant));
  
                 --  Expression of a discrete type is allowed. Nothing to
                 --  check for structural variants.
--- 20963,20972 ----
                      ("Structural variant shall be the only variant", Variant);
                 end if;
  
!                --  Preanalyze_And_Resolve_Assert_Expression, but without
!                --  enforcing any of the two acceptable types.
  
!                Preanalyze_And_Resolve_Assert_Expression (Expression (Variant));
  
                 --  Expression of a discrete type is allowed. Nothing to
                 --  check for structural variants.
*************** package body Sem_Prag is
*** 20992,20998 ****
                 then
                    null;
  
!                --  Expression of a Big_Integer type (or its ghost variant) is
                 --  only allowed in Decreases clause.
  
                 elsif
--- 20976,20982 ----
                 then
                    null;
  
!                --  Expression of a Big_Integer type (or its SPARK variant) is
                 --  only allowed in Decreases clause.
  
                 elsif
*************** package body Sem_Prag is
*** 21000,21008 ****
                           RE_Big_Integer)
                     or else
                   Is_RTE (Base_Type (Etype (Expression (Variant))),
-                          RO_GH_Big_Integer)
-                    or else
-                  Is_RTE (Base_Type (Etype (Expression (Variant))),
                           RO_SP_Big_Integer)
                 then
                    if Chars (Variant) = Name_Increases then
--- 20984,20989 ----
*************** package body Sem_Prag is
*** 23410,23416 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_Any_Priority));
  
                 if not Is_OK_Static_Expression (Arg) then
                    Check_Restriction (Static_Priorities, Arg);
--- 23391,23398 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_Any_Priority));
  
                 if not Is_OK_Static_Expression (Arg) then
                    Check_Restriction (Static_Priorities, Arg);
*************** package body Sem_Prag is
*** 23615,23620 ****
--- 23597,23728 ----
                 end if;
              end;
  
+          ------------------
+          -- Program_Exit --
+          ------------------
+ 
+          --  pragma Program_Exit (Boolean_EXPRESSION);
+ 
+          --  Characteristics:
+ 
+          --    * Analysis - The annotation undergoes initial checks to verify
+          --    the legal placement and context. Secondary checks preanalyze the
+          --    expression in:
+ 
+          --       Analyze_Program_Exit_In_Decl_Part
+ 
+          --    * Expansion - The annotation is expanded during the expansion of
+          --    the related subprogram [body] contract as performed in:
+ 
+          --       Expand_Subprogram_Contract
+ 
+          --    * Template - The annotation utilizes the generic template of the
+          --    related subprogram [body] when it is:
+ 
+          --       aspect on subprogram declaration
+          --       aspect on stand-alone subprogram body
+          --       pragma on stand-alone subprogram body
+ 
+          --    The annotation must prepare its own template when it is:
+ 
+          --       pragma on subprogram declaration
+ 
+          --    * Globals - Capture of global references must occur after full
+          --    analysis.
+ 
+          --    * Instance - The annotation is instantiated automatically when
+          --    the related generic subprogram [body] is instantiated except for
+          --    the "pragma on subprogram declaration" case. In that scenario
+          --    the annotation must instantiate itself.
+ 
+          when Pragma_Program_Exit => Program_Exit : declare
+             Spec_Id   : Entity_Id;
+             Subp_Decl : Node_Id;
+             Subp_Spec : Node_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_At_Most_N_Arguments (1);
+ 
+             --  Ensure the proper placement of the pragma. Program_Exit must be
+             --  associated with a subprogram declaration or a body that acts as
+             --  a spec.
+ 
+             Subp_Decl :=
+               Find_Related_Declaration_Or_Body (N, Do_Checks => True);
+ 
+             --  Generic subprogram
+ 
+             if Nkind (Subp_Decl) = N_Generic_Subprogram_Declaration then
+                null;
+ 
+             --  Body acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body
+               and then No (Corresponding_Spec (Subp_Decl))
+             then
+                null;
+ 
+             --  Body stub acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body_Stub
+               and then No (Corresponding_Spec_Of_Stub (Subp_Decl))
+             then
+                null;
+ 
+             --  Subprogram
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Declaration then
+                Subp_Spec := Specification (Subp_Decl);
+ 
+                --  Pragma Program_Exit is forbidden on null procedures, as this
+                --  may lead to potential ambiguities in behavior when interface
+                --  null procedures are involved. Also, it just wouldn't make
+                --  sense, because null procedure always exits.
+ 
+                if Nkind (Subp_Spec) = N_Procedure_Specification
+                  and then Null_Present (Subp_Spec)
+                then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to null procedure"), N);
+                   return;
+                end if;
+ 
+             else
+                Pragma_Misplaced;
+             end if;
+ 
+             Spec_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+             --  A pragma that applies to a Ghost entity becomes Ghost for the
+             --  purposes of legality checks and removal of ignored Ghost code.
+ 
+             Mark_Ghost_Pragma (N, Spec_Id);
+ 
+             --  Chain the pragma on the contract for further processing by
+             --  Analyze_Program_Exit.
+ 
+             Add_Contract_Item (N, Defining_Entity (Subp_Decl));
+ 
+             --  Fully analyze the pragma when it appears inside a subprogram
+             --  body because it cannot benefit from forward references.
+ 
+             if Nkind (Subp_Decl) in N_Subprogram_Body
+                                   | N_Subprogram_Body_Stub
+             then
+                --  The legality checks of pragma Program_Exit are affected by
+                --  the SPARK mode in effect and the volatility of the context.
+                --  Analyze all pragmas in a specific order.
+ 
+                Analyze_If_Present (Pragma_SPARK_Mode);
+                Analyze_If_Present (Pragma_Volatile_Function);
+                Analyze_If_Present (Pragma_Global);
+                Analyze_If_Present (Pragma_Depends);
+                Analyze_Program_Exit_In_Decl_Part (N);
+             end if;
+          end Program_Exit;
+ 
           ----------------------
           -- Profile_Warnings --
           ----------------------
*************** package body Sem_Prag is
*** 23982,23988 ****
              Analyze_If_Present (Pragma_Side_Effects);
  
              --  A function with side effects shall not have a Pure_Function
!             --  aspect or pragma (SPARK RM 6.1.11(5)).
  
              if Is_Function_With_Side_Effects (E) then
                 Error_Pragma
--- 24090,24096 ----
              Analyze_If_Present (Pragma_Side_Effects);
  
              --  A function with side effects shall not have a Pure_Function
!             --  aspect or pragma (SPARK RM 6.1.12(5)).
  
              if Is_Function_With_Side_Effects (E) then
                 Error_Pragma
*************** package body Sem_Prag is
*** 24397,24403 ****
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Subprogram case
  
--- 24505,24511 ----
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_And_Resolve_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Subprogram case
  
*************** package body Sem_Prag is
*** 24657,24663 ****
                 --  The expression must be analyzed in the special manner
                 --  described in "Handling of Default Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, Any_Integer);
  
                 --  The pragma cannot appear if the No_Secondary_Stack
                 --  restriction is in effect.
--- 24765,24771 ----
                 --  The expression must be analyzed in the special manner
                 --  described in "Handling of Default Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression (Arg, Any_Integer);
  
                 --  The pragma cannot appear if the No_Secondary_Stack
                 --  restriction is in effect.
*************** package body Sem_Prag is
*** 25815,25821 ****
              --  in "Handling of Default Expressions" in sem.ads.
  
              Arg := Get_Pragma_Arg (Arg1);
!             Preanalyze_Spec_Expression (Arg, Any_Integer);
  
              if not Is_OK_Static_Expression (Arg) then
                 Check_Restriction (Static_Storage_Size, Arg);
--- 25923,25929 ----
              --  in "Handling of Default Expressions" in sem.ads.
  
              Arg := Get_Pragma_Arg (Arg1);
!             Preanalyze_And_Resolve_Spec_Expression (Arg, Any_Integer);
  
              if not Is_OK_Static_Expression (Arg) then
                 Check_Restriction (Static_Storage_Size, Arg);
*************** package body Sem_Prag is
*** 26845,26851 ****
                 Opt.Time_Slice_Set := True;
                 Val := Expr_Value_R (Get_Pragma_Arg (Arg1));
  
!                if Val <= Ureal_0 then
                    Opt.Time_Slice_Value := 0;
  
                 elsif Val > UR_From_Uint (UI_From_Int (1000)) then
--- 26953,26959 ----
                 Opt.Time_Slice_Set := True;
                 Val := Expr_Value_R (Get_Pragma_Arg (Arg1));
  
!                if not UR_Is_Positive (Val) then
                    Opt.Time_Slice_Value := 0;
  
                 elsif Val > UR_From_Uint (UI_From_Int (1000)) then
*************** package body Sem_Prag is
*** 28241,28247 ****
        end if;
  
        Errors := Serious_Errors_Detected;
!       Preanalyze_Assert_Expression (Expr, Standard_Boolean);
  
        --  Emit a clarification message when the expression contains at least
        --  one undefined reference, possibly due to contract freezing.
--- 28349,28355 ----
        end if;
  
        Errors := Serious_Errors_Detected;
!       Preanalyze_And_Resolve_Assert_Expression (Expr, Standard_Boolean);
  
        --  Emit a clarification message when the expression contains at least
        --  one undefined reference, possibly due to contract freezing.
*************** package body Sem_Prag is
*** 28296,28301 ****
--- 28404,28556 ----
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Pre_Post_Condition_In_Decl_Part;
  
+    ---------------------------------------
+    -- Analyze_Program_Exit_In_Decl_Part --
+    ---------------------------------------
+ 
+    --  WARNING: This routine manages Ghost regions. Return statements must be
+    --  replaced by gotos which jump to the end of the routine and restore the
+    --  Ghost mode.
+ 
+    procedure Analyze_Program_Exit_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty)
+    is
+       Subp_Decl : constant Node_Id   := Find_Related_Declaration_Or_Body (N);
+       Spec_Id   : constant Entity_Id := Unique_Defining_Entity (Subp_Decl);
+       Arg1      : constant Node_Id   :=
+         First (Pragma_Argument_Associations (N));
+ 
+       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
+       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
+       --  Save the Ghost-related attributes to restore on exit
+ 
+       Errors        : Nat;
+       Restore_Scope : Boolean := False;
+       Unused        : Boolean;
+ 
+       Subp_Inputs, Subp_Outputs : Elist_Id := No_Elist;
+       --  Inputs and outputs of the subprogram
+ 
+       function Check_Reference (N : Node_Id) return Traverse_Result;
+       --  Check references to objects within the Program_Exit expression
+ 
+       ---------------------
+       -- Check_Reference --
+       ---------------------
+ 
+       function Check_Reference (N : Node_Id) return Traverse_Result is
+       begin
+           --  If an output of a subprogram with side effects is mentioned
+           --  in the boolean expression of its aspect Program_Exit, then it
+           --  shall either occur inside the prefix of a reference to the Old
+           --  attribute or be a stand-alone object.
+ 
+          if Is_Attribute_Old (N) then
+             return Skip;
+          end if;
+ 
+          if Is_Entity_Name (N) then
+             declare
+                E : constant Entity_Id := Entity (N);
+             begin
+                if Appears_In (Subp_Outputs, E)
+                  and then Ekind (E) not in E_Constant | E_Variable
+                then
+                   Error_Msg_NE
+                     ("reference to subprogram output & in Program_Exit", N, E);
+                end if;
+             end;
+          end if;
+ 
+          return OK;
+       end Check_Reference;
+ 
+       procedure Check_Exit_References is new Traverse_Proc (Check_Reference);
+ 
+    --  Start of processing for Analyze_Pre_Post_Condition_In_Decl_Part
+ 
+    begin
+       --  Do not analyze the pragma multiple times
+ 
+       if Is_Analyzed_Pragma (N) then
+          return;
+       end if;
+ 
+       if Ekind (Spec_Id) in E_Function | E_Generic_Function
+         and then not Is_Function_With_Side_Effects (Spec_Id)
+       then
+          Error_Msg_N
+            ("aspect Program_Exit is only allowed " &
+             "for subprograms with side effects", N);
+       end if;
+ 
+       if Present (Arg1) then
+ 
+          --  Set the Ghost mode in effect from the pragma. Due to the delayed
+          --  analysis of the pragma, the Ghost mode at point of declaration and
+          --  point of analysis may not necessarily be the same. Use the mode in
+          --  effect at the point of declaration.
+ 
+          Set_Ghost_Mode (N);
+ 
+          --  Ensure that the subprogram and its formals are visible when
+          --  analyzing the expression of the pragma.
+ 
+          if not In_Open_Scopes (Spec_Id) then
+             Restore_Scope := True;
+ 
+             if Is_Generic_Subprogram (Spec_Id) then
+                Push_Scope (Spec_Id);
+                Install_Generic_Formals (Spec_Id);
+             else
+                Push_Scope (Spec_Id);
+                Install_Formals (Spec_Id);
+             end if;
+          end if;
+ 
+          Errors := Serious_Errors_Detected;
+ 
+          --  Preanalyze_And_Resolve_Assert_Expression enforcing the expression
+          --  type.
+ 
+          Preanalyze_And_Resolve_Assert_Expression
+            (Expression (Arg1), Any_Boolean);
+ 
+          Collect_Subprogram_Inputs_Outputs
+            (Spec_Id,
+             Synthesize   => True,
+             Subp_Inputs  => Subp_Inputs,
+             Subp_Outputs => Subp_Outputs,
+             Global_Seen  => Unused);
+ 
+          Check_Exit_References (Expression (Arg1));
+ 
+          --  Emit a clarification message when the expression contains at least
+          --  one undefined reference, possibly due to contract freezing.
+ 
+          if Errors /= Serious_Errors_Detected
+            and then Present (Freeze_Id)
+            and then Has_Undefined_Reference (Expression (Arg1))
+          then
+             Contract_Freeze_Error (Spec_Id, Freeze_Id);
+          end if;
+ 
+          if Restore_Scope then
+             End_Scope;
+          end if;
+ 
+          --  Currently it is not possible to inline pre/postconditions on a
+          --  subprogram subject to pragma Inline_Always.
+ 
+          Check_Postcondition_Use_In_Inlined_Subprogram (N, Spec_Id);
+ 
+          Restore_Ghost_Region (Saved_GM, Saved_IGR);
+       end if;
+ 
+       Set_Is_Analyzed_Pragma (N);
+    end Analyze_Program_Exit_In_Decl_Part;
+ 
     ------------------------------------------
     -- Analyze_Refined_Depends_In_Decl_Part --
     ------------------------------------------
*************** package body Sem_Prag is
*** 30956,30989 ****
                    --    end Pack;
  
                    if Constit_Id = Any_Id then
!                      SPARK_Msg_NE ("& is undefined", Constit, Constit_Id);
  
!                      --  Emit a specialized info message when the contract of
!                      --  the related package body was "frozen" by another body.
!                      --  Note that it is not possible to precisely identify why
!                      --  the constituent is undefined because it is not visible
!                      --  when pragma Refined_State is analyzed. This message is
!                      --  a reasonable approximation.
  
!                      if Present (Freeze_Id) and then not Freeze_Posted then
!                         Freeze_Posted := True;
  
!                         Error_Msg_Name_1 := Chars (Body_Id);
!                         Error_Msg_Sloc   := Sloc (Freeze_Id);
!                         SPARK_Msg_NE
!                           ("body & declared # freezes the contract of %",
!                            N, Freeze_Id);
!                         SPARK_Msg_N
!                           ("\all constituents must be declared before body #",
!                            N);
  
!                         --  A misplaced constituent is a critical error because
!                         --  pragma Refined_Depends or Refined_Global depends on
!                         --  the proper link between a state and a constituent.
!                         --  Stop the compilation, as this leads to a multitude
!                         --  of misleading cascaded errors.
  
!                         raise Unrecoverable_Error;
                       end if;
  
                    --  The constituent is a valid state or object
--- 31211,31277 ----
                    --    end Pack;
  
                    if Constit_Id = Any_Id then
!                      --  A "Foo is undefined" message has already been
!                      --  generated for this constituent. Emit an additional
!                      --  message in the special case where the named
!                      --  would-be constituent was declared too late in the
!                      --  declaration list (as opposed to, for example, not
!                      --  being declared at all).
  
!                      --  Look for named constituent after freezing point
!                      if Present (Freeze_Id) then
!                         declare
!                            Decl : Node_Id;
!                         begin
!                            Decl := Enclosing_Declaration (Freeze_Id);
  
!                            while Present (Decl) loop
!                               if Nkind (Decl) = N_Object_Declaration
!                                 and then Same_Name (Defining_Identifier (Decl),
!                                                     Constit)
!                                 and then not Constant_Present (Decl)
!                               then
!                                  Error_Msg_Node_1 := Constit;
!                                  Error_Msg_Sloc :=
!                                    Sloc (Defining_Identifier (Decl));
  
!                                  SPARK_Msg_NE
!                                   ("abstract state constituent & declared"
!                                    & " too late #!", Constit, Constit);
  
!                                  exit;
!                               end if;
!                               Next (Decl);
!                            end loop;
!                         end;
  
!                         --  Emit a specialized info message when the contract
!                         --  of the related package body was "frozen" by
!                         --  another body. If a "declared too late" message
!                         --  is generated, this will clarify what is meant by
!                         --  "too late".
! 
!                         if not Freeze_Posted then
!                            Freeze_Posted := True;
! 
!                            Error_Msg_Name_1 := Chars (Body_Id);
!                            Error_Msg_Sloc   := Sloc (Freeze_Id);
!                            SPARK_Msg_NE
!                              ("body & declared # freezes the contract of %",
!                               N, Freeze_Id);
!                            SPARK_Msg_N
!                              ("\all constituents must be declared" &
!                               " before body #", N);
! 
!                            --  A misplaced constituent is a critical error
!                            --  because pragma Refined_Depends or
!                            --  Refined_Global depends on the proper link
!                            --  between a state and a constituent. Stop the
!                            --  compilation, as this leads to a multitude of
!                            --  misleading cascaded errors.
! 
!                            raise Unrecoverable_Error;
!                         end if;
                       end if;
  
                    --  The constituent is a valid state or object
*************** package body Sem_Prag is
*** 31452,31461 ****
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression, but without enforcing any of the
!          --  acceptable types.
  
!          Preanalyze_Assert_Expression (Expr);
  
           --  Expression of a discrete type is allowed. Nothing more to check
           --  for structural variants.
--- 31740,31749 ----
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_And_Resolve_Assert_Expression, but without enforcing
!          --  any of the acceptable types.
  
!          Preanalyze_And_Resolve_Assert_Expression (Expr);
  
           --  Expression of a discrete type is allowed. Nothing more to check
           --  for structural variants.
*************** package body Sem_Prag is
*** 31468,31479 ****
           --  Expression of a Big_Integer type (or its ghost variant) is only
           --  allowed in Decreases clause.
  
!          elsif
!            Is_RTE (Base_Type (Etype (Expr)), RE_Big_Integer)
!              or else
!            Is_RTE (Base_Type (Etype (Expr)), RO_GH_Big_Integer)
!              or else
!            Is_RTE (Base_Type (Etype (Expr)), RO_SP_Big_Integer)
           then
              if Chars (Direction) = Name_Increases then
                 Error_Msg_N
--- 31756,31763 ----
           --  Expression of a Big_Integer type (or its ghost variant) is only
           --  allowed in Decreases clause.
  
!          elsif Is_RTE (Base_Type (Etype (Expr)), RE_Big_Integer)
!            or else Is_RTE (Base_Type (Etype (Expr)), RO_SP_Big_Integer)
           then
              if Chars (Direction) = Name_Increases then
                 Error_Msg_N
*************** package body Sem_Prag is
*** 31633,31639 ****
                   From_Aspect => True);
  
              if Present (Arg) then
!                Preanalyze_Assert_Expression
                   (Expression (Arg), Standard_Boolean);
              end if;
           end if;
--- 31917,31923 ----
                   From_Aspect => True);
  
              if Present (Arg) then
!                Preanalyze_And_Resolve_Assert_Expression
                   (Expression (Arg), Standard_Boolean);
              end if;
           end if;
*************** package body Sem_Prag is
*** 31641,31647 ****
           Arg := Test_Case_Arg (N, Arg_Nam);
  
           if Present (Arg) then
!             Preanalyze_Assert_Expression (Expression (Arg), Standard_Boolean);
           end if;
        end Preanalyze_Test_Case_Arg;
  
--- 31925,31932 ----
           Arg := Test_Case_Arg (N, Arg_Nam);
  
           if Present (Arg) then
!             Preanalyze_And_Resolve_Assert_Expression
!               (Expression (Arg), Standard_Boolean);
           end if;
        end Preanalyze_Test_Case_Arg;
  
*************** package body Sem_Prag is
*** 33640,33645 ****
--- 33925,33931 ----
        Pragma_Profile                        =>  0,
        Pragma_Profile_Warnings               =>  0,
        Pragma_Propagate_Exceptions           =>  0,
+       Pragma_Program_Exit                   => -1,
        Pragma_Provide_Shift_Operators        =>  0,
        Pragma_Psect_Object                   =>  0,
        Pragma_Pure                           =>  0,
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_prag.ads gcc-16-20250608/gcc/ada/sem_prag.ads
*** gcc-16-20250601/gcc/ada/sem_prag.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_prag.ads	Sun Jun  8 22:32:16 2025
*************** package Sem_Prag is
*** 97,102 ****
--- 97,103 ----
        Pragma_Preelaborable_Initialization => True,
        Pragma_Preelaborate                 => True,
        Pragma_Priority                     => True,
+       Pragma_Program_Exit                 => True,
        Pragma_Pure                         => True,
        Pragma_Pure_Function                => True,
        Pragma_Refined_Depends              => True,
*************** package Sem_Prag is
*** 156,161 ****
--- 157,163 ----
        Pragma_Pre_Class                 => True,
        Pragma_Precondition              => True,
        Pragma_Predicate                 => True,
+       Pragma_Program_Exit              => True,
        Pragma_Refined_Post              => True,
        Pragma_Subprogram_Variant        => True,
        Pragma_Test_Case                 => True,
*************** package Sem_Prag is
*** 229,234 ****
--- 231,237 ----
        Pragma_Pre                 => True,
        Pragma_Pre_Class           => True,
        Pragma_Precondition        => True,
+       Pragma_Program_Exit        => True,
        Pragma_Pure                => True,
        Pragma_Pure_Function       => True,
        Pragma_Refined_Depends     => True,
*************** package Sem_Prag is
*** 326,331 ****
--- 329,341 ----
     --  subprogram body which caused "freezing" of the related contract where
     --  the pragma resides.
  
+    procedure Analyze_Program_Exit_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty);
+    --  Perform full analysis of delayed pragma Program_Exit. Freeze_Id is the
+    --  entity of [generic] package body or [generic] subprogram body which
+    --  caused "freezing" of the related contract where the pragma resides.
+ 
     procedure Analyze_Refined_Depends_In_Decl_Part (N : Node_Id);
     --  Preform full analysis of delayed pragma Refined_Depends. This routine
     --  uses Analyze_Depends_In_Decl_Part as a starting point, then performs
*************** package Sem_Prag is
*** 494,499 ****
--- 504,510 ----
     --    Pre
     --    Pre_Class
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_res.adb gcc-16-20250608/gcc/ada/sem_res.adb
*** gcc-16-20250601/gcc/ada/sem_res.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_res.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Res is
*** 757,770 ****
                    goto No_Danger;
                 end if;
  
-                --  If the enclosing type is limited, we allocate only the
-                --  default value, not the maximum, and there is no need for
-                --  a warning.
- 
-                if Is_Limited_Type (Scope (Disc)) then
-                   goto No_Danger;
-                end if;
- 
                 --  Check that it is the high bound
  
                 if N /= High_Bound (PN)
--- 757,762 ----
*************** package body Sem_Res is
*** 811,821 ****
                    goto No_Danger;
                 end if;
  
!                --  Warn about the danger
! 
!                Error_Msg_N
!                  ("??creation of & object may raise Storage_Error!",
!                   Scope (Disc));
  
                 <<No_Danger>>
                    null;
--- 803,811 ----
                    goto No_Danger;
                 end if;
  
!                if Ekind (Scope (Disc)) = E_Record_Type then
!                   Set_Is_Large_Unconstrained_Definite (Scope (Disc));
!                end if;
  
                 <<No_Danger>>
                    null;
*************** package body Sem_Res is
*** 2106,2113 ****
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
-       --  See also Preanalyze_And_Resolve in sem.adb for similar handling
- 
        --  Normally, we suppress all checks for this preanalysis. There is no
        --  point in processing them now, since they will be applied properly
        --  and in the proper location when the default expressions reanalyzed
--- 2096,2101 ----
*************** package body Sem_Res is
*** 2150,2157 ****
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
!       Analyze (N);
!       Resolve (N, Etype (N), Suppress => All_Checks);
  
        Expander_Mode_Restore;
        Full_Analysis := Save_Full_Analysis;
--- 2138,2150 ----
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
!       --  See previous version of Preanalyze_And_Resolve for similar handling
! 
!       if GNATprove_Mode then
!          Analyze_And_Resolve (N);
!       else
!          Analyze_And_Resolve (N, Suppress => All_Checks);
!       end if;
  
        Expander_Mode_Restore;
        Full_Analysis := Save_Full_Analysis;
*************** package body Sem_Res is
*** 4849,4854 ****
--- 4842,4848 ----
  
                 if not Is_OK_Variable_For_Out_Formal (A)
                   and then not Is_Init_Proc (Nam)
+                  and then not Is_Expanded_Constructor_Call (N)
                 then
                    Error_Msg_NE ("actual for& must be a variable", A, F);
  
*************** package body Sem_Res is
*** 6101,6106 ****
--- 6095,6102 ----
                 elsif Is_Fixed_Point_Type (It.Typ) then
                    if Analyzed (N) then
                       Error_Msg_N ("ambiguous operand in fixed operation", N);
+                   elsif It.Typ = Any_Fixed then
+                      Resolve (N, B_Typ);
                    else
                       Resolve (N, It.Typ);
                    end if;
*************** package body Sem_Res is
*** 7801,7806 ****
--- 7797,7803 ----
           then
              Set_Entity (N, Local);
              Set_Etype (N, Etype (Local));
+             Generate_Reference (Local, N);
           end if;
  
           return OK;
*************** package body Sem_Res is
*** 8150,8155 ****
--- 8147,8153 ----
             and then not Preanalysis_Active
             and then not Is_Imported (E)
             and then Nkind (Parent (E)) /= N_Object_Renaming_Declaration
+            and then not Needs_Construction (Etype (E))
           then
              if No_Initialization (Parent (E))
                or else (Present (Full_View (E))
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_util.adb gcc-16-20250608/gcc/ada/sem_util.adb
*** gcc-16-20250601/gcc/ada/sem_util.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_util.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Util is
*** 3025,3031 ****
  
                 --  For an array aggregate, a discrete_choice_list that has
                 --  a nonstatic range is considered as two or more separate
!                --  occurrences of the expression (RM 6.4.1(20/3)).
  
                 elsif Is_Array_Type (Etype (N))
                   and then Nkind (N) = N_Aggregate
--- 3025,3031 ----
  
                 --  For an array aggregate, a discrete_choice_list that has
                 --  a nonstatic range is considered as two or more separate
!                --  occurrences of the expression (RM 6.4.1(6.20/3)).
  
                 elsif Is_Array_Type (Etype (N))
                   and then Nkind (N) = N_Aggregate
*************** package body Sem_Util is
*** 3110,3157 ****
                    end loop;
                 end if;
  
!                --  Handle discrete associations
  
                 if Present (Component_Associations (N)) then
                    Assoc := First (Component_Associations (N));
                    while Present (Assoc) loop
  
!                      if not Box_Present (Assoc) then
!                         Choice := First (Choices (Assoc));
!                         while Present (Choice) loop
  
!                            --  For now we skip discriminants since it requires
!                            --  performing the analysis in two phases: first one
!                            --  analyzing discriminants and second one analyzing
!                            --  the rest of components since discriminants are
!                            --  evaluated prior to components: too much extra
!                            --  work to detect a corner case???
  
!                            if Nkind (Choice) in N_Has_Entity
!                              and then Present (Entity (Choice))
!                              and then Ekind (Entity (Choice)) = E_Discriminant
!                            then
!                               null;
  
!                            elsif Box_Present (Assoc) then
!                               null;
  
                             else
!                               if not Analyzed (Expression (Assoc)) then
!                                  Comp_Expr :=
!                                    New_Copy_Tree (Expression (Assoc));
!                                  Set_Parent (Comp_Expr, Parent (N));
!                                  Preanalyze_Without_Errors (Comp_Expr);
                                else
!                                  Comp_Expr := Expression (Assoc);
                                end if;
  
!                               Collect_Identifiers (Comp_Expr);
!                            end if;
  
!                            Next (Choice);
!                         end loop;
!                      end if;
  
                       Next (Assoc);
                    end loop;
--- 3110,3214 ----
                    end loop;
                 end if;
  
!                --  Handle named associations
  
                 if Present (Component_Associations (N)) then
                    Assoc := First (Component_Associations (N));
                    while Present (Assoc) loop
  
!                      Handle_Association : declare
  
!                         procedure Collect_Expression_Ids (Expr : Node_Id);
!                         --  Collect identifiers in association expression Expr
  
!                         procedure Handle_Association_Choices
!                           (Choices : List_Id; Expr : Node_Id);
!                         --  Collect identifiers in an association expression
!                         --  Expr for each choice in Choices.
  
!                         ----------------------------
!                         -- Collect_Expression_Ids --
!                         ----------------------------
! 
!                         procedure Collect_Expression_Ids (Expr : Node_Id) is
!                            Comp_Expr : Node_Id;
  
+                         begin
+                            if not Analyzed (Expr) then
+                               Comp_Expr := New_Copy_Tree (Expr);
+                               Set_Parent (Comp_Expr, Parent (N));
+                               Preanalyze_Without_Errors (Comp_Expr);
                             else
!                               Comp_Expr := Expr;
!                            end if;
! 
!                            Collect_Identifiers (Comp_Expr);
!                         end Collect_Expression_Ids;
! 
!                         --------------------------------
!                         -- Handle_Association_Choices --
!                         --------------------------------
! 
!                         procedure Handle_Association_Choices
!                           (Choices : List_Id; Expr : Node_Id)
!                         is
!                            Choice : Node_Id := First (Choices);
! 
!                         begin
!                            while Present (Choice) loop
! 
!                               --  For now skip discriminants since it requires
!                               --  performing analysis in two phases: first one
!                               --  analyzing discriminants and second analyzing
!                               --  the rest of components since discriminants
!                               --  are evaluated prior to components: too much
!                               --  extra work to detect a corner case???
! 
!                               if Nkind (Choice) in N_Has_Entity
!                                 and then Present (Entity (Choice))
!                                 and then
!                                   Ekind (Entity (Choice)) = E_Discriminant
!                               then
!                                  null;
! 
                                else
!                                  Collect_Expression_Ids (Expr);
                                end if;
  
!                               Next (Choice);
!                            end loop;
!                         end Handle_Association_Choices;
  
!                      begin
!                         if not Box_Present (Assoc) then
!                            if Nkind (Assoc) = N_Component_Association then
!                               Handle_Association_Choices
!                                 (Choices (Assoc), Expression (Assoc));
! 
!                            elsif
!                              Nkind (Assoc) = N_Iterated_Component_Association
!                                and then Present (Defining_Identifier (Assoc))
!                            then
!                               Handle_Association_Choices
!                                 (Discrete_Choices (Assoc), Expression (Assoc));
! 
!                            --  Nkind (Assoc) = N_Iterated_Component_Association
!                            --    with iterator_specification, or
!                            --  Nkind (Assoc) = N_Iterated_Element_Association
!                            --    with loop_parameter_specification
!                            --      or iterator_specification
!                            --
!                            --  It seems that we might also need to deal with
!                            --  iterable/iterator_names and iterator_filters
!                            --  within iterator_specifications, and range bounds
!                            --  within loop_parameter_specifications, but the
!                            --  utility of doing that seems very low. ???
! 
!                            else
!                               Collect_Expression_Ids (Expression (Assoc));
!                            end if;
!                         end if;
!                      end Handle_Association;
  
                       Next (Assoc);
                    end loop;
*************** package body Sem_Util is
*** 5619,5628 ****
           --  to start scanning from the incomplete view, which is earlier on
           --  the entity chain.
  
!          elsif Nkind (Parent (B_Type)) = N_Full_Type_Declaration
!            and then Present (Incomplete_View (Parent (B_Type)))
!          then
!             Id := Incomplete_View (Parent (B_Type));
  
              --  If T is a derived from a type with an incomplete view declared
              --  elsewhere, that incomplete view is irrelevant, we want the
--- 5676,5683 ----
           --  to start scanning from the incomplete view, which is earlier on
           --  the entity chain.
  
!          elsif Present (Incomplete_View (B_Type)) then
!             Id := Incomplete_View (B_Type);
  
              --  If T is a derived from a type with an incomplete view declared
              --  elsewhere, that incomplete view is irrelevant, we want the
*************** package body Sem_Util is
*** 5662,5667 ****
--- 5717,5723 ----
                           or else Is_Primitive (Id))
                and then Parent_Kind (Parent (Id))
                                      not in N_Formal_Subprogram_Declaration
+               and then not Is_Child_Unit (Id)
              then
                 Is_Prim := False;
  
*************** package body Sem_Util is
*** 6578,6583 ****
--- 6634,6663 ----
        return Is_Class_Wide_Type (Typ) or else Needs_Finalization (Typ);
     end CW_Or_Needs_Finalization;
  
+    -------------------------
+    -- Default_Constructor --
+    -------------------------
+ 
+    function Default_Constructor (Typ : Entity_Id) return Entity_Id is
+       Construct : Elmt_Id;
+    begin
+       pragma Assert (Is_Type (Typ));
+       if No (Constructor_Name (Typ)) or else No (Constructor_List (Typ)) then
+          return Empty;
+       end if;
+ 
+       Construct := First_Elmt (Constructor_List (Typ));
+       while Present (Construct) loop
+          if Parameter_Count (Elists.Node (Construct)) = 1 then
+             return Elists.Node (Construct);
+          end if;
+ 
+          Next_Elmt (Construct);
+       end loop;
+ 
+       return Empty;
+    end Default_Constructor;
+ 
     ---------------------
     -- Defining_Entity --
     ---------------------
*************** package body Sem_Util is
*** 8063,8074 ****
           loop
              Ren := Renamed_Object (Id);
  
              --  The reference renames an abstract state or a whole object
  
              --    Obj : ...;
              --    Ren : ... renames Obj;
  
!             if Is_Entity_Name (Ren) then
  
                 --  Do not follow a renaming that goes through a generic formal,
                 --  because these entities are hidden and must not be referenced
--- 8143,8162 ----
           loop
              Ren := Renamed_Object (Id);
  
+             --  The reference renames a function result. Check the original
+             --  node in case expansion relocates the function call.
+ 
+             --    Ren : ... renames Func_Call;
+ 
+             if Nkind (Original_Node (Ren)) = N_Function_Call then
+                exit;
+ 
              --  The reference renames an abstract state or a whole object
  
              --    Obj : ...;
              --    Ren : ... renames Obj;
  
!             elsif Is_Entity_Name (Ren) then
  
                 --  Do not follow a renaming that goes through a generic formal,
                 --  because these entities are hidden and must not be referenced
*************** package body Sem_Util is
*** 8081,8094 ****
                    Id := Entity (Ren);
                 end if;
  
-             --  The reference renames a function result. Check the original
-             --  node in case expansion relocates the function call.
- 
-             --    Ren : ... renames Func_Call;
- 
-             elsif Nkind (Original_Node (Ren)) = N_Function_Call then
-                exit;
- 
              --  Otherwise the reference renames something which does not yield
              --  an abstract state or a whole object. Treat the reference as not
              --  having a proper entity for SPARK legality purposes.
--- 8169,8174 ----
*************** package body Sem_Util is
*** 12368,12376 ****
  
        while Present (Node) loop
           case Nkind (Node) is
!             when N_Null_Statement | N_Call_Marker | N_Raise_xxx_Error =>
                 null;
  
              when N_Object_Declaration =>
                 if Present (Expression (Node))
                   and then not Side_Effect_Free (Expression (Node))
--- 12448,12461 ----
  
        while Present (Node) loop
           case Nkind (Node) is
!             when N_Null_Statement | N_Call_Marker =>
                 null;
  
+             when N_Raise_xxx_Error =>
+                if Comes_From_Source (Node) then
+                   return False;
+                end if;
+ 
              when N_Object_Declaration =>
                 if Present (Expression (Node))
                   and then not Side_Effect_Free (Expression (Node))
*************** package body Sem_Util is
*** 17815,17820 ****
--- 17900,17926 ----
        return Nkind (Spec_Decl) in N_Generic_Declaration;
     end Is_Generic_Declaration_Or_Body;
  
+    --------------------------
+    -- Is_In_Context_Clause --
+    --------------------------
+ 
+    function Is_In_Context_Clause (N : Node_Id) return Boolean is
+       Plist       : List_Id;
+       Parent_Node : Node_Id;
+ 
+    begin
+       if Is_List_Member (N) then
+          Plist := List_Containing (N);
+          Parent_Node := Parent (Plist);
+ 
+          return Present (Parent_Node)
+            and then Nkind (Parent_Node) = N_Compilation_Unit
+            and then Context_Items (Parent_Node) = Plist;
+       end if;
+ 
+       return False;
+    end Is_In_Context_Clause;
+ 
     ---------------------------
     -- Is_Independent_Object --
     ---------------------------
*************** package body Sem_Util is
*** 20863,20868 ****
--- 20969,20975 ----
          or else Nam = Name_Pre
          or else Nam = Name_Pre_Class
          or else Nam = Name_Precondition
+         or else Nam = Name_Program_Exit
          or else Nam = Name_Refined_Depends
          or else Nam = Name_Refined_Global
          or else Nam = Name_Refined_Post
*************** package body Sem_Util is
*** 21876,21895 ****
        end loop Scope_Loop;
     end Kill_Current_Values;
  
-    --------------------------
-    -- Kill_Size_Check_Code --
-    --------------------------
- 
-    procedure Kill_Size_Check_Code (E : Entity_Id) is
-    begin
-       if (Ekind (E) = E_Constant or else Ekind (E) = E_Variable)
-         and then Present (Size_Check_Code (E))
-       then
-          Remove (Size_Check_Code (E));
-          Set_Size_Check_Code (E, Empty);
-       end if;
-    end Kill_Size_Check_Code;
- 
     --------------------
     -- Known_Non_Null --
     --------------------
--- 21983,21988 ----
*************** package body Sem_Util is
*** 25336,25341 ****
--- 25429,25436 ----
                 end if;
  
                 if Nkind (P) = N_Selected_Component
+                --  and then Ekind (Entity (Selector_Name (P)))
+                --             in Record_Field_Kind
                   and then Present (Entry_Formal (Entity (Selector_Name (P))))
                 then
                    --  Case of a reference to an entry formal
*************** package body Sem_Util is
*** 26066,26071 ****
--- 26161,26184 ----
        return Empty;
     end Param_Entity;
  
+    ---------------------
+    -- Parameter_Count --
+    ---------------------
+ 
+    function Parameter_Count (Subp : Entity_Id) return Nat is
+       Result : Nat := 0;
+       Param  : Entity_Id;
+    begin
+       Param := First_Entity (Subp);
+       while Present (Param) loop
+          Result := Result + 1;
+ 
+          Param := Next_Entity (Param);
+       end loop;
+ 
+       return Result;
+    end Parameter_Count;
+ 
     ----------------------
     -- Policy_In_Effect --
     ----------------------
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_util.ads gcc-16-20250608/gcc/ada/sem_util.ads
*** gcc-16-20250601/gcc/ada/sem_util.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_util.ads	Sun Jun  8 22:32:16 2025
*************** package Sem_Util is
*** 647,652 ****
--- 647,656 ----
     --  as Needs_Finalization except with pragma Restrictions (No_Finalization),
     --  in which case we know that class-wide objects do not need finalization.
  
+    function Default_Constructor (Typ : Entity_Id) return Entity_Id;
+    --  Determine the default constructor (e.g. the constructor with only one
+    --  formal parameter) for a given type Typ.
+ 
     function Defining_Entity (N : Node_Id) return Entity_Id;
     --  Given a declaration N, returns the associated defining entity. If the
     --  declaration has a specification, the entity is obtained from the
*************** package Sem_Util is
*** 2095,2100 ****
--- 2099,2108 ----
     --  Determine whether arbitrary declaration Decl denotes a generic package,
     --  a generic subprogram or a generic body.
  
+    function Is_In_Context_Clause (N : Node_Id) return Boolean;
+    --  Returns True if N appears within the context clause of a unit, and False
+    --  for any other placement.
+ 
     function Is_Independent_Object (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes a reference to an independent
     --  object as per RM C.6(8).
*************** package Sem_Util is
*** 2377,2382 ****
--- 2385,2391 ----
     --    Pre
     --    Pre_Class
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Sem_Util is
*** 2536,2547 ****
     --  if the entity Ent is not for an object. Last_Assignment_Only has the
     --  same meaning as for the call with no Ent.
  
-    procedure Kill_Size_Check_Code (E : Entity_Id);
-    --  Called when an address clause or pragma Import is applied to an entity.
-    --  If the entity is a variable or a constant, and size check code is
-    --  present, this size check code is killed, since the object will not be
-    --  allocated by the program.
- 
     function Known_Non_Null (N : Node_Id) return Boolean;
     --  Given a node N for a subexpression of an access type, determines if
     --  this subexpression yields a value that is known at compile time to
--- 2545,2550 ----
*************** package Sem_Util is
*** 2862,2867 ****
--- 2865,2873 ----
     --  WARNING: this routine should be used in debugging scenarios such as
     --  tracking down undefined symbols as it is fairly low level.
  
+    function Parameter_Count (Subp : Entity_Id) return Nat;
+    --  Return the number of parameters for a given subprogram Subp.
+ 
     function Param_Entity (N : Node_Id) return Entity_Id;
     --  Given an expression N, determines if the expression is a reference
     --  to a formal (of a subprogram or entry), and if so returns the Id
diff -Nrcpad gcc-16-20250601/gcc/ada/sem_warn.adb gcc-16-20250608/gcc/ada/sem_warn.adb
*** gcc-16-20250601/gcc/ada/sem_warn.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sem_warn.adb	Sun Jun  8 22:32:16 2025
*************** package body Sem_Warn is
*** 4670,4678 ****
                       if Nkind (Parent (LA)) in N_Procedure_Call_Statement
                                               | N_Parameter_Association
                       then
!                         Error_Msg_NE
!                           ("?m?& modified by call, but value overwritten #!",
!                            LA, Ent);
                       else
                          Error_Msg_NE -- CODEFIX
                            ("?m?useless assignment to&, value overwritten #!",
--- 4670,4680 ----
                       if Nkind (Parent (LA)) in N_Procedure_Call_Statement
                                               | N_Parameter_Association
                       then
!                         if Warn_On_All_Unread_Out_Parameters then
!                            Error_Msg_NE
!                             ("?m?& modified by call, but value overwritten #!",
!                              LA, Ent);
!                         end if;
                       else
                          Error_Msg_NE -- CODEFIX
                            ("?m?useless assignment to&, value overwritten #!",
diff -Nrcpad gcc-16-20250601/gcc/ada/set_targ.ads gcc-16-20250608/gcc/ada/set_targ.ads
*** gcc-16-20250601/gcc/ada/set_targ.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/set_targ.ads	Sun Jun  8 22:32:16 2025
*************** package Set_Targ is
*** 93,99 ****
  
     type FPT_Mode_Entry is record
        NAME      : String_Ptr;     -- Name of mode (no null character at end)
!       DIGS      : Natural;        -- Digits for floating-point type
        FLOAT_REP : Float_Rep_Kind; -- Float representation
        PRECISION : Natural;        -- Precision in bits
        SIZE      : Natural;        -- Size in bits
--- 93,99 ----
  
     type FPT_Mode_Entry is record
        NAME      : String_Ptr;     -- Name of mode (no null character at end)
!       DIGS      : Positive;       -- Digits for floating-point type
        FLOAT_REP : Float_Rep_Kind; -- Float representation
        PRECISION : Natural;        -- Precision in bits
        SIZE      : Natural;        -- Size in bits
diff -Nrcpad gcc-16-20250601/gcc/ada/sinfo.ads gcc-16-20250608/gcc/ada/sinfo.ads
*** gcc-16-20250601/gcc/ada/sinfo.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sinfo.ads	Sun Jun  8 22:32:16 2025
*************** package Sinfo is
*** 737,750 ****
     --  section describes the usage of the semantic fields, which are used to
     --  contain additional information determined during semantic analysis.
  
-    --  Accept_Handler_Records
-    --    This field is present only in an N_Accept_Alternative node. It is used
-    --    to temporarily hold the exception handler records from an accept
-    --    statement in a selective accept. These exception handlers will
-    --    eventually be placed in the Handler_Records list of the procedure
-    --    built for this accept (see Expand_N_Selective_Accept procedure in
-    --    Exp_Ch9 for further details).
- 
     --  Access_Types_To_Process
     --    Present in N_Freeze_Entity nodes for Incomplete or private types.
     --    Contains the list of access types which may require specific treatment
--- 737,742 ----
*************** package Sinfo is
*** 1515,1525 ****
     --    range is given by the programmer, even if that range is identical to
     --    the range for Float.
  
-    --  Incomplete_View
-    --    Present in full type declarations that are completions of incomplete
-    --    type declarations. Denotes the corresponding incomplete view declared
-    --    by the incomplete declaration.
- 
     --  Inherited_Discriminant
     --    This flag is present in N_Component_Association nodes. It indicates
     --    that a given component association in an extension aggregate is the
--- 1507,1512 ----
*************** package Sinfo is
*** 1701,1706 ****
--- 1688,1694 ----
     --      Pre
     --      Pre_Class
     --      Precondition
+    --      Program_Exit
     --      Refined_Depends
     --      Refined_Global
     --      Refined_Post
*************** package Sinfo is
*** 6381,6387 ****
        --  Condition from the guard (set to Empty if no guard present)
        --  Statements (set to Empty_List if no statements)
        --  Pragmas_Before pragmas before alt (set to No_List if none)
-       --  Accept_Handler_Records
  
        ------------------------------
        -- 9.7.1  Delay Alternative --
--- 6369,6374 ----
*************** package Sinfo is
*** 7966,7973 ****
        --  operation) are also in this list.
  
        --  Contract_Test_Cases contains a collection of pragmas that correspond
!       --  to aspects/pragmas Contract_Cases, Exceptional_Cases, Test_Case and
!       --  Subprogram_Variant. The ordering in the list is in LIFO fashion.
  
        --  Classifications contains pragmas that either declare, categorize, or
        --  establish dependencies between subprogram or package inputs and
--- 7953,7961 ----
        --  operation) are also in this list.
  
        --  Contract_Test_Cases contains a collection of pragmas that correspond
!       --  to aspects/pragmas Contract_Cases, Exceptional_Cases, Program_Exit,
!       --  Test_Case and Subprogram_Variant. The ordering in the list is in LIFO
!       --  fashion.
  
        --  Classifications contains pragmas that either declare, categorize, or
        --  establish dependencies between subprogram or package inputs and
diff -Nrcpad gcc-16-20250601/gcc/ada/sinput.ads gcc-16-20250608/gcc/ada/sinput.ads
*** gcc-16-20250601/gcc/ada/sinput.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sinput.ads	Sun Jun  8 22:32:16 2025
*************** private
*** 793,800 ****
        Full_Ref_Name     : File_Name_Type;
        Instance          : Instance_Id;
        Num_SRef_Pragmas  : Nat;
-       First_Mapped_Line : Logical_Line_Number;
        Source_Text       : Source_Buffer_Ptr;
        Source_First      : Source_Ptr;
        Source_Last       : Source_Ptr;
        Source_Checksum   : Word;
--- 793,801 ----
        Full_Ref_Name     : File_Name_Type;
        Instance          : Instance_Id;
        Num_SRef_Pragmas  : Nat;
        Source_Text       : Source_Buffer_Ptr;
+       Inlined_Call      : Source_Ptr;
+       First_Mapped_Line : Logical_Line_Number;
        Source_First      : Source_Ptr;
        Source_Last       : Source_Ptr;
        Source_Checksum   : Word;
*************** private
*** 803,809 ****
        Unit              : Unit_Number_Type;
        Time_Stamp        : Time_Stamp_Type;
        File_Type         : Type_Of_File;
-       Inlined_Call      : Source_Ptr;
        Inlined_Body      : Boolean;
        Inherited_Pragma  : Boolean;
        License           : License_Type;
--- 804,809 ----
*************** private
*** 839,890 ****
        Index : Source_File_Index := 123456789; -- for debugging
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written by Tree_Gen, we do not write uninitialized values to the file.
- 
-    AS : constant Pos := Standard'Address_Size;
- 
-    for Source_File_Record use record
-       File_Name           at  0 range 0 .. 31;
-       Reference_Name      at  4 range 0 .. 31;
-       Debug_Source_Name   at  8 range 0 .. 31;
-       Full_Debug_Name     at 12 range 0 .. 31;
-       Full_File_Name      at 16 range 0 .. 31;
-       Full_Ref_Name       at 20 range 0 .. 31;
-       Instance            at 48 range 0 .. 31;
-       Num_SRef_Pragmas    at 24 range 0 .. 31;
-       First_Mapped_Line   at 28 range 0 .. 31;
-       Source_First        at 32 range 0 .. 31;
-       Source_Last         at 36 range 0 .. 31;
-       Source_Checksum     at 40 range 0 .. 31;
-       Last_Source_Line    at 44 range 0 .. 31;
-       Template            at 52 range 0 .. 31;
-       Unit                at 56 range 0 .. 31;
-       Time_Stamp          at 60 range 0 .. 8 * Time_Stamp_Length - 1;
-       File_Type           at 74 range 0 .. 7;
-       Inlined_Call        at 88 range 0 .. 31;
-       Inlined_Body        at 75 range 0 .. 0;
-       Inherited_Pragma    at 75 range 1 .. 1;
-       License             at 76 range 0 .. 7;
-       Keyword_Casing      at 77 range 0 .. 7;
-       Identifier_Casing   at 78 range 0 .. 15;
-       Sloc_Adjust         at 80 range 0 .. 31;
-       Lines_Table_Max     at 84 range 0 .. 31;
-       Index               at 92 range 0 .. 31;
- 
-       --  The following fields are pointers, so we have to specialize their
-       --  lengths using pointer size, obtained above as Standard'Address_Size.
-       --  Note that Source_Text is a fat pointer, so it has size = AS*2.
- 
-       Source_Text         at 96 range 0      .. AS * 2 - 1;
-       Lines_Table         at 96 range AS * 2 .. AS * 3 - 1;
-       Logical_Lines_Table at 96 range AS * 3 .. AS * 4 - 1;
-    end record; -- Source_File_Record
- 
-    for Source_File_Record'Size use 96 * 8 + AS * 4;
-    --  This ensures that we did not leave out any fields
- 
     package Source_File is new Table.Table
       (Table_Component_Type => Source_File_Record,
        Table_Index_Type     => Source_File_Index,
--- 839,844 ----
diff -Nrcpad gcc-16-20250601/gcc/ada/snames.ads-tmpl gcc-16-20250608/gcc/ada/snames.ads-tmpl
*** gcc-16-20250601/gcc/ada/snames.ads-tmpl	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/snames.ads-tmpl	Sun Jun  8 22:32:16 2025
*************** package Snames is
*** 147,152 ****
--- 147,153 ----
     --  Names of aspects for which there are no matching pragmas or attributes
     --  so that they need to be included for aspect specification use.
  
+    Name_Constructor                    : constant Name_Id := N + $;
     Name_Default_Value                  : constant Name_Id := N + $;
     Name_Default_Component_Value        : constant Name_Id := N + $;
     Name_Designated_Storage_Model       : constant Name_Id := N + $;
*************** package Snames is
*** 659,664 ****
--- 660,666 ----
     --  correctly recognize and process Priority. Priority is a standard Ada 95
     --  pragma.
  
+    Name_Program_Exit                   : constant Name_Id := N + $; -- GNAT
     Name_Provide_Shift_Operators        : constant Name_Id := N + $; -- GNAT
     Name_Psect_Object                   : constant Name_Id := N + $; -- GNAT
     Name_Pure                           : constant Name_Id := N + $;
*************** package Snames is
*** 1080,1085 ****
--- 1082,1088 ----
     Name_Img                            : constant Name_Id := N + $; -- GNAT
     Name_Input                          : constant Name_Id := N + $;
     Name_Machine                        : constant Name_Id := N + $;
+    Name_Make                           : constant Name_Id := N + $; -- GNAT
     Name_Max                            : constant Name_Id := N + $;
     Name_Min                            : constant Name_Id := N + $;
     Name_Model                          : constant Name_Id := N + $;
*************** package Snames is
*** 1614,1619 ****
--- 1617,1623 ----
        Attribute_Img,
        Attribute_Input,
        Attribute_Machine,
+       Attribute_Make,
        Attribute_Max,
        Attribute_Min,
        Attribute_Model,
*************** package Snames is
*** 1952,1957 ****
--- 1956,1962 ----
        Pragma_Predicate_Failure,
        Pragma_Preelaborate,
        Pragma_Pre_Class,
+       Pragma_Program_Exit,
        Pragma_Provide_Shift_Operators,
        Pragma_Psect_Object,
        Pragma_Pure,
diff -Nrcpad gcc-16-20250601/gcc/ada/switch-c.adb gcc-16-20250608/gcc/ada/switch-c.adb
*** gcc-16-20250601/gcc/ada/switch-c.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/switch-c.adb	Sun Jun  8 22:32:16 2025
*************** package body Switch.C is
*** 335,340 ****
--- 335,341 ----
                 end if;
  
                 Ptr := Ptr + 1;
+                Check_Semantics_Only_Mode := True;
                 Operating_Mode := Check_Semantics;
  
              --  -gnatC (Generate CodePeer information)
diff -Nrcpad gcc-16-20250601/gcc/ada/sysdep.c gcc-16-20250608/gcc/ada/sysdep.c
*** gcc-16-20250601/gcc/ada/sysdep.c	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/sysdep.c	Sun Jun  8 22:32:16 2025
*************** __gnat_ttyname (int filedes ATTRIBUTE_UN
*** 331,337 ****
  #endif /* defined (__vxworks) */
  }
  #endif
! 
  #if defined (__linux__) || defined (__sun__) \
    || defined (WINNT) \
    || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \
--- 331,337 ----
  #endif /* defined (__vxworks) */
  }
  #endif
! 
  #if defined (__linux__) || defined (__sun__) \
    || defined (WINNT) \
    || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \
*************** _getpagesize (void)
*** 1070,1075 ****
--- 1070,1080 ----
  {
    return getpagesize ();
  }
+ 
+ int
+ __gnat_has_cap_sys_nice () {
+   return 0;
+ }
  #endif
  
  int
diff -Nrcpad gcc-16-20250601/gcc/ada/urealp.adb gcc-16-20250608/gcc/ada/urealp.adb
*** gcc-16-20250601/gcc/ada/urealp.adb	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/urealp.adb	Sun Jun  8 22:32:16 2025
*************** package body Urealp is
*** 34,40 ****
     --  add 1 to No_Ureal, since "+" means something different for Ureals).
  
     type Ureal_Entry is record
!       Num  : Uint;
        --  Numerator (always non-negative)
  
        Den : Uint;
--- 34,40 ----
     --  add 1 to No_Ureal, since "+" means something different for Ureals).
  
     type Ureal_Entry is record
!       Num : Uint;
        --  Numerator (always non-negative)
  
        Den : Uint;
*************** package body Urealp is
*** 48,67 ****
        --  Flag set if value is negative
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written, we do not write uninitialized values to the file.
- 
-    for Ureal_Entry use record
-       Num      at  0 range 0 .. 31;
-       Den      at  4 range 0 .. 31;
-       Rbase    at  8 range 0 .. 31;
-       Negative at 12 range 0 .. 31;
-    end record;
- 
-    for Ureal_Entry'Size use 16 * 8;
-    --  This ensures that we did not leave out any fields
- 
     package Ureals is new Table.Table (
       Table_Component_Type => Ureal_Entry,
       Table_Index_Type     => Ureal'Base,
--- 48,53 ----
*************** package body Urealp is
*** 832,838 ****
           return Store_Ureal
                    ((Num      => Uint_1,
                      Den      => -N,
!                     Rbase    => UI_To_Int (UR_Trunc (Bas)),
                      Negative => Neg));
  
        --  If the exponent is negative then we raise the numerator and the
--- 818,824 ----
           return Store_Ureal
                    ((Num      => Uint_1,
                      Den      => -N,
!                     Rbase    => UI_To_Int (IBas),
                      Negative => Neg));
  
        --  If the exponent is negative then we raise the numerator and the
*************** package body Urealp is
*** 1251,1262 ****
     ---------------
  
     function UR_Negate (Real : Ureal) return Ureal is
     begin
        return Store_Ureal
!                ((Num      => Ureals.Table (Real).Num,
!                  Den      => Ureals.Table (Real).Den,
!                  Rbase    => Ureals.Table (Real).Rbase,
!                  Negative => not Ureals.Table (Real).Negative));
     end UR_Negate;
  
     ------------
--- 1237,1249 ----
     ---------------
  
     function UR_Negate (Real : Ureal) return Ureal is
+       Val : constant Ureal_Entry := Ureals.Table (Real);
     begin
        return Store_Ureal
!                ((Num      => Val.Num,
!                  Den      => Val.Den,
!                  Rbase    => Val.Rbase,
!                  Negative => not Val.Negative));
     end UR_Negate;
  
     ------------
diff -Nrcpad gcc-16-20250601/gcc/ada/urealp.ads gcc-16-20250608/gcc/ada/urealp.ads
*** gcc-16-20250601/gcc/ada/urealp.ads	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/ada/urealp.ads	Sun Jun  8 22:32:16 2025
*************** package Urealp is
*** 233,239 ****
     function UR_Sub (Left : Ureal; Right : Uint)  return Ureal;
     --  Returns real difference of operands
  
!    function UR_Exponentiate (Real  : Ureal; N : Uint) return  Ureal;
     --  Returns result of raising Ureal to Uint power.
     --  Fatal error if Left is 0 and Right is negative.
  
--- 233,239 ----
     function UR_Sub (Left : Ureal; Right : Uint)  return Ureal;
     --  Returns real difference of operands
  
!    function UR_Exponentiate (Real : Ureal; N : Uint) return Ureal;
     --  Returns result of raising Ureal to Uint power.
     --  Fatal error if Left is 0 and Right is negative.
  
*************** package Urealp is
*** 317,323 ****
     function "-" (Left : Uint;  Right : Ureal) return Ureal renames UR_Sub;
     function "-" (Left : Ureal; Right : Uint)  return Ureal renames UR_Sub;
  
!    function "**"  (Real  : Ureal; N : Uint) return Ureal
                                                       renames UR_Exponentiate;
  
     function "abs" (Real : Ureal) return Ureal renames UR_Abs;
--- 317,323 ----
     function "-" (Left : Uint;  Right : Ureal) return Ureal renames UR_Sub;
     function "-" (Left : Ureal; Right : Uint)  return Ureal renames UR_Sub;
  
!    function "**"  (Real : Ureal; N : Uint) return Ureal
                                                       renames UR_Exponentiate;
  
     function "abs" (Real : Ureal) return Ureal renames UR_Abs;
diff -Nrcpad gcc-16-20250601/gcc/auto-profile.cc gcc-16-20250608/gcc/auto-profile.cc
*** gcc-16-20250601/gcc/auto-profile.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/auto-profile.cc	Sun Jun  8 22:32:16 2025
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,42 ----
  #include "diagnostic-core.h"
  #include "profile.h"
  #include "langhooks.h"
+ #include "context.h"
+ #include "pass_manager.h"
  #include "cfgloop.h"
  #include "tree-cfg.h"
  #include "tree-cfgcleanup.h"
*************** autofdo_source_profile::read ()
*** 858,863 ****
--- 860,868 ----
    /* Read in the function/callsite profile, and store it in local
       data structure.  */
    unsigned function_num = gcov_read_unsigned ();
+   int profile_pass_num
+ 	  = g->get_passes ()->get_pass_auto_profile ()->static_pass_number;
+   g->get_dumps ()->dump_start (profile_pass_num, NULL);
    for (unsigned i = 0; i < function_num; i++)
      {
        function_instance::function_instance_stack stack;
*************** autofdo_source_profile::read ()
*** 870,877 ****
        if (map_.count (fun_id) == 0)
  	map_[fun_id] = s;
        else
! 	map_[fun_id]->merge (s);
      }
    return true;
  }
  
--- 875,895 ----
        if (map_.count (fun_id) == 0)
  	map_[fun_id] = s;
        else
! 	{
!  	  /* Since this is invoked very early, before the pass
! 	     manager, we need to set up the dumping explicitly.  This is
!      	     similar to the handling in finish_optimization_passes.  */
! 	  if (dump_enabled_p ())
! 	    {
! 	      dump_user_location_t loc
! 		      = dump_user_location_t::from_location_t (input_location);
! 	      dump_printf_loc (MSG_NOTE, loc, "Merging profile for %s\n",
! 			    afdo_string_table->get_name (s->name ()));
! 	    }
! 	  map_[fun_id]->merge (s);
! 	}
      }
+   g->get_dumps ()->dump_finish (profile_pass_num);
    return true;
  }
  
*************** update_count_by_afdo_count (profile_coun
*** 1102,1108 ****
    /* In case we have guessed profile which is already zero, preserve
       quality info.  */
    else if (count->nonzero_p ()
! 	   || count->quality () == GUESSED)
      *count = profile_count::zero ().afdo ();
  }
  
--- 1120,1127 ----
    /* In case we have guessed profile which is already zero, preserve
       quality info.  */
    else if (count->nonzero_p ()
! 	   || count->quality () == GUESSED
! 	   || count->quality () == GUESSED_LOCAL)
      *count = profile_count::zero ().afdo ();
  }
  
*************** afdo_calculate_branch_prob (bb_set *anno
*** 1497,1504 ****
      if (num_unknown_succ == 0 && total_count.nonzero_p ())
        {
  	FOR_EACH_EDGE (e, ei, bb->succs)
! 	  e->probability
! 	    = AFDO_EINFO (e)->get_count ().probability_in (total_count);
        }
    }
    FOR_ALL_BB_FN (bb, cfun)
--- 1516,1536 ----
      if (num_unknown_succ == 0 && total_count.nonzero_p ())
        {
  	FOR_EACH_EDGE (e, ei, bb->succs)
! 	  {
! 	    /* If probability is 1, preserve reliable static prediction
! 	       (This is, for example the case of single fallthru edge
! 		or single fallthru plus unlikely EH edge.)  */
! 	    if (AFDO_EINFO (e)->get_count () == total_count
! 		&& e->probability == profile_probability::always ())
! 	      ;
! 	    else if (AFDO_EINFO (e)->get_count ().nonzero_p ())
! 	      e->probability
! 		= AFDO_EINFO (e)->get_count ().probability_in (total_count);
! 	    /* If probability is zero, preserve reliable static prediction.  */
! 	    else if (e->probability.nonzero_p ()
! 		     || e->probability.quality () == GUESSED)
! 	      e->probability = profile_probability::never ().afdo ();
! 	  }
        }
    }
    FOR_ALL_BB_FN (bb, cfun)
diff -Nrcpad gcc-16-20250601/gcc/builtins.def gcc-16-20250608/gcc/builtins.def
*** gcc-16-20250601/gcc/builtins.def	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/builtins.def	Sun Jun  8 22:32:16 2025
*************** along with GCC; see the file COPYING3.
*** 217,222 ****
--- 217,224 ----
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
  	       false, true, true, ATTRS, false, \
  	       flag_openacc)
+ /* Set NONANSI_P = false to enable the builtins also with -fno-nonansi-builtins,
+    esp. as -std=c++../c.. imply that flag and -fopenacc should be othogonal.  */
  #undef DEF_GOACC_BUILTIN_COMPILER
  #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
*************** along with GCC; see the file COPYING3.
*** 232,241 ****
  	       (flag_openacc \
  		|| flag_openmp \
  		|| flag_tree_parallelize_loops > 1))
  #undef DEF_GOMP_BUILTIN_COMPILER
  #define DEF_GOMP_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
!                flag_openmp, true, true, ATTRS, false, flag_openmp)
  
  /* Builtin used by the implementation of GNU TM.  These
     functions are mapped to the actual implementation of the STM library. */
--- 234,245 ----
  	       (flag_openacc \
  		|| flag_openmp \
  		|| flag_tree_parallelize_loops > 1))
+ /* Set NONANSI_P = false to enable the builtins also with -fno-nonansi-builtins,
+    esp. as -std=c++../c.. imply that flag and -fopenmp should be othogonal.  */
  #undef DEF_GOMP_BUILTIN_COMPILER
  #define DEF_GOMP_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
!                flag_openmp, true, false, ATTRS, false, flag_openmp)
  
  /* Builtin used by the implementation of GNU TM.  These
     functions are mapped to the actual implementation of the STM library. */
diff -Nrcpad gcc-16-20250601/gcc/c/ChangeLog gcc-16-20250608/gcc/c/ChangeLog
*** gcc-16-20250601/gcc/c/ChangeLog	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/c/ChangeLog	Sun Jun  8 22:32:16 2025
***************
*** 1,3 ****
--- 1,24 ----
+ 2025-06-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	* c-typeck.cc (composite_type_internal,composite_type): Move
+ 	checking assertions.
+ 
+ 2025-06-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/116892
+ 	* c-decl.cc (finish_enum): Propagate TYPE_PACKED.
+ 
+ 2025-06-02  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* c-parser.cc (c_parser_omp_context_selector): Call
+ 	convert_lvalue_to_rvalue and c_objc_common_truthvalue_conversion
+ 	on the expression for OMP_TRAIT_PROPERTY_BOOL_EXPR.
+ 
+ 2025-06-01  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/120380
+ 	* c-objc-common.cc (get_aka_type): Ignore attributes for tagged types.
+ 
  2025-05-30  Qing Zhao  <qing.zhao@oracle.com>
  
  	PR c/120354
diff -Nrcpad gcc-16-20250601/gcc/c/c-decl.cc gcc-16-20250608/gcc/c/c-decl.cc
*** gcc-16-20250601/gcc/c/c-decl.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/c/c-decl.cc	Sun Jun  8 22:32:16 2025
*************** finish_enum (tree enumtype, tree values,
*** 10293,10298 ****
--- 10293,10299 ----
        TYPE_UNSIGNED (tem) = TYPE_UNSIGNED (enumtype);
        TYPE_LANG_SPECIFIC (tem) = TYPE_LANG_SPECIFIC (enumtype);
        ENUM_UNDERLYING_TYPE (tem) = ENUM_UNDERLYING_TYPE (enumtype);
+       TYPE_PACKED (tem) = TYPE_PACKED (enumtype);
      }
  
    /* Finish debugging output for this type.  */
diff -Nrcpad gcc-16-20250601/gcc/c/c-parser.cc gcc-16-20250608/gcc/c/c-parser.cc
*** gcc-16-20250601/gcc/c/c-parser.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/c/c-parser.cc	Sun Jun  8 22:32:16 2025
*************** c_parser_omp_context_selector (c_parser
*** 26966,26982 ****
  	      break;
  	    case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
  	    case OMP_TRAIT_PROPERTY_BOOL_EXPR:
! 	      t = c_parser_expr_no_commas (parser, NULL).value;
  	      if (t == error_mark_node)
  		return error_mark_node;
  	      mark_exp_read (t);
! 	      t = c_fully_fold (t, false, NULL);
! 	      if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
  		{
  		  error_at (token->location,
  			    "property must be integer expression");
  		  return error_mark_node;
  		}
  	      properties = make_trait_property (NULL_TREE, t, properties);
  	      break;
  	    case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
--- 26966,26995 ----
  	      break;
  	    case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
  	    case OMP_TRAIT_PROPERTY_BOOL_EXPR:
! 	      {
! 		c_expr texpr = c_parser_expr_no_commas (parser, NULL);
! 		texpr = convert_lvalue_to_rvalue (token->location, texpr,
! 						  true, true);
! 		t = texpr.value;
! 	      }
  	      if (t == error_mark_node)
  		return error_mark_node;
  	      mark_exp_read (t);
! 	      if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
! 		{
! 		  t = c_objc_common_truthvalue_conversion (token->location,
! 							   t,
! 							   boolean_type_node);
! 		  if (t == error_mark_node)
! 		    return error_mark_node;
! 		}
! 	      else if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
  		{
  		  error_at (token->location,
  			    "property must be integer expression");
  		  return error_mark_node;
  		}
+ 	      t = c_fully_fold (t, false, NULL);
  	      properties = make_trait_property (NULL_TREE, t, properties);
  	      break;
  	    case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
diff -Nrcpad gcc-16-20250601/gcc/c/c-typeck.cc gcc-16-20250608/gcc/c/c-typeck.cc
*** gcc-16-20250601/gcc/c/c-typeck.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/c/c-typeck.cc	Sun Jun  8 22:32:16 2025
*************** composite_type_internal (tree t1, tree t
*** 846,857 ****
  	  n = finish_struct (input_location, n, fields, attributes, NULL,
  			     &expr);
  
! 	  n = qualify_type (n, t1);
! 
! 	  gcc_checking_assert (!TYPE_NAME (n) || comptypes (n, t1));
! 	  gcc_checking_assert (!TYPE_NAME (n) || comptypes (n, t2));
! 
! 	  return n;
  	}
        /* FALLTHRU */
      case ENUMERAL_TYPE:
--- 846,852 ----
  	  n = finish_struct (input_location, n, fields, attributes, NULL,
  			     &expr);
  
! 	  return qualify_type (n, t1);
  	}
        /* FALLTHRU */
      case ENUMERAL_TYPE:
*************** tree
*** 1004,1010 ****
  composite_type (tree t1, tree t2)
  {
    struct composite_cache cache = { };
!   return composite_type_internal (t1, t2, &cache);
  }
  
  /* Return the type of a conditional expression between pointers to
--- 999,1013 ----
  composite_type (tree t1, tree t2)
  {
    struct composite_cache cache = { };
!   tree n = composite_type_internal (t1, t2, &cache);
!   /* For function and arrays there are some cases where qualifiers do
!      not match.  See PR120510.  */
!   if (FUNCTION_TYPE != TREE_CODE (n) && ARRAY_TYPE != TREE_CODE (n))
!     {
!       gcc_checking_assert (comptypes (n, t1));
!       gcc_checking_assert (comptypes (n, t2));
!     }
!   return n;
  }
  
  /* Return the type of a conditional expression between pointers to
diff -Nrcpad gcc-16-20250601/gcc/c-family/ChangeLog gcc-16-20250608/gcc/c-family/ChangeLog
*** gcc-16-20250601/gcc/c-family/ChangeLog	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/c-family/ChangeLog	Sun Jun  8 22:32:16 2025
***************
*** 1,3 ****
--- 1,8 ----
+ 2025-06-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/120078
+ 	* c.opt (Wjump-misses-init): Fix typo.
+ 
  2025-05-30  Julian Brown  <julian@codesourcery.com>
  	    Tobias Burnus  <tburnus@baylibre.com>
  
diff -Nrcpad gcc-16-20250601/gcc/c-family/c.opt gcc-16-20250608/gcc/c-family/c.opt
*** gcc-16-20250601/gcc/c-family/c.opt	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/c-family/c.opt	Sun Jun  8 22:32:16 2025
*************** C ObjC C++ ObjC++ CPP(cpp_warn_invalid_u
*** 938,944 ****
  Warn about invalid UTF-8 characters.
  
  Wjump-misses-init
! C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
  Warn when a jump misses a variable initialization.
  
  Enum
--- 938,944 ----
  Warn about invalid UTF-8 characters.
  
  Wjump-misses-init
! C ObjC Var(warn_jump_misses_init) Warning LangEnabledBy(C ObjC,Wc++-compat)
  Warn when a jump misses a variable initialization.
  
  Enum
diff -Nrcpad gcc-16-20250601/gcc/calls.cc gcc-16-20250608/gcc/calls.cc
*** gcc-16-20250601/gcc/calls.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/calls.cc	Sun Jun  8 22:32:16 2025
*************** expand_call (tree exp, rtx target, int i
*** 3736,3754 ****
  		   next_arg_reg, valreg, old_inhibit_defer_pop, call_fusage,
  		   flags, args_so_far);
  
!       if (flag_ipa_ra)
  	{
! 	  rtx_call_insn *last;
! 	  rtx datum = NULL_RTX;
! 	  if (fndecl != NULL_TREE)
! 	    {
! 	      datum = XEXP (DECL_RTL (fndecl), 0);
! 	      gcc_assert (datum != NULL_RTX
! 			  && GET_CODE (datum) == SYMBOL_REF);
! 	    }
! 	  last = last_call_insn ();
! 	  add_reg_note (last, REG_CALL_DECL, datum);
  	}
  
        /* If the call setup or the call itself overlaps with anything
  	 of the argument setup we probably clobbered our call address.
--- 3736,3751 ----
  		   next_arg_reg, valreg, old_inhibit_defer_pop, call_fusage,
  		   flags, args_so_far);
  
!       rtx_call_insn *last;
!       rtx datum = NULL_RTX;
!       if (fndecl != NULL_TREE)
  	{
! 	  datum = XEXP (DECL_RTL (fndecl), 0);
! 	  gcc_assert (datum != NULL_RTX
! 		      && GET_CODE (datum) == SYMBOL_REF);
  	}
+       last = last_call_insn ();
+       add_reg_note (last, REG_CALL_DECL, datum);
  
        /* If the call setup or the call itself overlaps with anything
  	 of the argument setup we probably clobbered our call address.
*************** emit_library_call_value_1 (int retval, r
*** 4804,4816 ****
  	       struct_value_size, call_cookie, valreg,
  	       old_inhibit_defer_pop + 1, call_fusage, flags, args_so_far);
  
!   if (flag_ipa_ra)
!     {
!       rtx datum = orgfun;
!       gcc_assert (GET_CODE (datum) == SYMBOL_REF);
!       rtx_call_insn *last = last_call_insn ();
!       add_reg_note (last, REG_CALL_DECL, datum);
!     }
  
    /* Right-shift returned value if necessary.  */
    if (!pcc_struct_value
--- 4801,4810 ----
  	       struct_value_size, call_cookie, valreg,
  	       old_inhibit_defer_pop + 1, call_fusage, flags, args_so_far);
  
!   rtx datum = orgfun;
!   gcc_assert (GET_CODE (datum) == SYMBOL_REF);
!   rtx_call_insn *last = last_call_insn ();
!   add_reg_note (last, REG_CALL_DECL, datum);
  
    /* Right-shift returned value if necessary.  */
    if (!pcc_struct_value
diff -Nrcpad gcc-16-20250601/gcc/cobol/ChangeLog gcc-16-20250608/gcc/cobol/ChangeLog
*** gcc-16-20250601/gcc/cobol/ChangeLog	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/ChangeLog	Sun Jun  8 22:32:16 2025
***************
*** 1,3 ****
--- 1,94 ----
+ 2025-06-06  Robert Dubner  <rdubner@symas.com>
+ 	    James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	PR cobol/120328
+ 	PR cobol/119695
+ 	* Make-lang.in: Success with non-English locale.
+ 	* cbldiag.h (cbl_unimplemented_at): Comment:
+ 	* cdf-copy.cc (copybook_elem_t::open_file): Indentation.
+ 	* cdf.y: YYABORT on certain errors.
+ 	* cdfval.h (cdf_value): Const parameter.
+ 	* copybook.h (class copybook_elem_t): Initialization.
+ 	(class uppername_t): Explicit constructor.
+ 	* except.cc (ec_type_descr): Remove %04s.
+ 	(cbl_enabled_exceptions_t::dump): Remove %zu.
+ 	* exceptg.h (class exception_turn_t): Explicit constructor.
+ 	* genapi.cc (parser_perform_conditional): Remove %zu.
+ 	(set_exception_environment): Formatting.
+ 	(parser_statement_begin): Exception overhead.
+ 	(parser_perform_conditional): Formatting:
+ 	(parser_perform_conditional_end): Eliminate size_t.
+ 	(parser_check_fatal_exception): Exception overhead.
+ 	(parser_perform_conditional_end): Remove %zu.
+ 	* inspect.h (struct cbx_inspect_match_t): Const reference.
+ 	(struct cbx_inspect_t): Const parameter.
+ 	* lexio.cc (cdftext::process_file): Remove %zu.
+ 	* lexio.h (struct YYLTYPE): Remove unneeded struct.
+ 	(YYLTYPE_IS_DECLARED): Likewise.
+ 	(YYLTYPE_IS_TRIVIAL): Likewise.
+ 	* parse.y: Comment; change DOT.
+ 	* scan.l: Scan function names without swallowing whitespace.
+ 	* scan_ante.h (scanner_parsing): Remove %zu.
+ 	(scanner_parsing_pop): Remove %zu.
+ 	(binary_integer_usage): Remove %zu.
+ 	* scan_post.h (prelex): Correct post-CDF resumption.
+ 	(yylex): Clearer message.
+ 	* symbols.cc (symbol_table_extend): Explicit constructor.
+ 	(elementize): Const parameter.
+ 	(is_variable_length): Correct always-false.
+ 	(symbols_update): Remove unnecessary shadow variable.
+ 	(struct symbol_elem_t): Const parameter.
+ 	(symbol_alphabet_add): Const parameter.
+ 	(new_literal_add): Initialization.
+ 	* symbols.h (class cbl_domain_elem_t): Correct assignment.
+ 	(struct cbl_span_t): Improve constructor.
+ 	(struct cbl_refer_t): Initialization.
+ 	(struct cbl_alphabet_t): Rename shadow variable.
+ 	(struct cbl_file_key_t): Remove unused constructor.
+ 	(struct symbol_elem_t): Initialization.
+ 	(struct cbl_until_addresses_t): Use unsigned int, for messages.
+ 	(struct cbl_prog_hier_t): Initialization.
+ 	(struct cbl_perform_tgt_t): Repair constructor.
+ 	(struct cbl_label_t): Const parameter.
+ 	(symbol_typedef_add): Const parameter.
+ 	(symbol_field_add): Explicit constructor.
+ 	(symbol_label_add): Explicit constructor.
+ 	(symbol_program_add): Remove C-style "struct" use.
+ 	(symbol_special_add): Remove C-style "struct" use.
+ 	(symbol_alphabet_add): Const parameter.
+ 	(symbol_file_add): Remove C-style "struct" use.
+ 	(symbol_section_add): Remove C-style "struct" use.
+ 	* symfind.cc: Const parameter.
+ 	* util.cc (gb4): New function.
+ 	* util.h (gb4): New function.
+ 	* TODO: New file.
+ 
+ 2025-06-05  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119975
+ 	* genapi.cc (parser_intrinsic_call_0): Use get_time_nanoseconds().
+ 	* genutil.cc (get_time_64): Rename to get_time_nanoseconds().
+ 	(get_time_nanoseconds): Likewise.
+ 	* genutil.h (get_time_64): Likewise.
+ 	(get_time_nanoseconds): Likewise.
+ 	* util.cc (class cbl_timespec): Timing routine uses
+ 	get_time_nanoseconds().
+ 	(operator-): Likewise.
+ 	(parse_file): Likewise.
+ 
+ 2025-06-02  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119975
+ 	* genapi.cc (parser_intrinsic_call_0): Use get_time_64() function.
+ 	* genutil.cc (get_time_64): Definition created.
+ 	* genutil.h (get_time_64): Declaration created.
+ 
+ 2025-06-01  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119524
+ 	* gengen.cc (gg_printf): Use the new __gg__fprintf_stderr() function
+ 	instead of generating a call to fprintf().
+ 
  2025-05-20  Robert Dubner  <rdubner@symas.com>
  	    James K. Lowden  <jklowden@cobolworx.com>
  
diff -Nrcpad gcc-16-20250601/gcc/cobol/Make-lang.in gcc-16-20250608/gcc/cobol/Make-lang.in
*** gcc-16-20250601/gcc/cobol/Make-lang.in	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/Make-lang.in	Sun Jun  8 22:32:16 2025
*************** FLEX_WARNING = warning, dangerous traili
*** 159,166 ****
  cobol/scan.cc: cobol/scan.l
  	$(FLEX) -o$@ $(LFLAGS) $< 2>$@~ || { cat $@~ >&1; exit 1; }
  	awk  '! /$(FLEX_WARNING)/ {print > "/dev/stderr"; nerr++}	\
! 	     END {print "$(FLEX):", NR, "messages" > "/dev/stderr";	\
! 		  exit nerr}' $@~
  	@rm $@~
  
  
--- 159,165 ----
  cobol/scan.cc: cobol/scan.l
  	$(FLEX) -o$@ $(LFLAGS) $< 2>$@~ || { cat $@~ >&1; exit 1; }
  	awk  '! /$(FLEX_WARNING)/ {print > "/dev/stderr"; nerr++}	\
! 	     END {print "$(FLEX):", NR, "messages" > "/dev/stderr"}' $@~
  	@rm $@~
  
  
diff -Nrcpad gcc-16-20250601/gcc/cobol/TODO gcc-16-20250608/gcc/cobol/TODO
*** gcc-16-20250601/gcc/cobol/TODO	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/cobol/TODO	Sun Jun  8 22:32:16 2025
***************
*** 0 ****
--- 1,33 ----
+ Below is listed work to be done, hopefully all of it in 2025 for
+ GCC 16. They are vaguely in priority order, in that addressing more
+ technical issues may illuminate ways to attack more amorphous ones.
+ 
+ Portability:
+     - host/target, for cross-compilation
+     - OS portability, BSD, macOS, Solaris
+     - 64-bit portability, LE
+     - 64-bit portability, BE
+     - 2025 goal: Compile & run on primary & secondary GCC 15 platforms
+                  https://www.gnu.org/software/gcc/gcc-15/criteria.html
+ 
+ Correctness:
+     - LTO ODR, PR 119215 
+     - cppcheck
+     - valgrind
+     - -static produces dynamic
+ 
+ Efficiency:
+     - Code size for MOVE 'a' TO FOO(1,1)
+     - EC checking
+ 
+ COBOL Features:
+     - XML, JSON
+     - MF system functions
+     - National characters (and Unicode, for IBM)
+     - GLOBAL and PERFORM declaratives
+     - dialect feature names (to enable and enumerate)
+ 
+ GCC features:
+     - make check-nist
+     - -Werror, -Wno-<foo>
+     - -fEC-ALL, -fno-EC-I-O
diff -Nrcpad gcc-16-20250601/gcc/cobol/cbldiag.h gcc-16-20250608/gcc/cobol/cbldiag.h
*** gcc-16-20250601/gcc/cobol/cbldiag.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/cbldiag.h	Sun Jun  8 22:32:16 2025
*************** void cbl_unimplemented(const char *gmsgi
*** 93,101 ****
  void cbl_unimplemented_at( const  YYLTYPE& loc, const char *gmsgid, ... );
  
  /*
!  * dbgmsg produce messages not intended for the user.  They cannot
!  * be localized and fwrite directly to standard out.  dbgmsg is activated by
!  * -fflex-debug or -fyacc-debug.  
   */
  void dbgmsg( const char fmt[], ... ) ATTRIBUTE_PRINTF_1;
  
--- 93,101 ----
  void cbl_unimplemented_at( const  YYLTYPE& loc, const char *gmsgid, ... );
  
  /*
!  * dbgmsg produce messages not intended for the user.  They cannot be localized
!  * and fwrite directly to standard error.  dbgmsg is activated by -fflex-debug
!  * or -fyacc-debug.
   */
  void dbgmsg( const char fmt[], ... ) ATTRIBUTE_PRINTF_1;
  
diff -Nrcpad gcc-16-20250601/gcc/cobol/cdf-copy.cc gcc-16-20250608/gcc/cobol/cdf-copy.cc
*** gcc-16-20250601/gcc/cobol/cdf-copy.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/cdf-copy.cc	Sun Jun  8 22:32:16 2025
*************** copybook_elem_t::open_file( const char d
*** 304,312 ****
        dbgmsg("found copybook file %s", filename);
        this->source.name = xstrdup(filename);
        if( ! cobol_filename(this->source.name, inode_of(fd)) ) {
! 	error_msg(source.loc, "recursive copybook: '%s' includes itself", this->source);
! 	(void)! close(fd);
! 	fd = -1;
        }
        dbgmsg("%s: opened %s as fd %d", __func__, source.name, fd);
        return fd;
--- 304,312 ----
        dbgmsg("found copybook file %s", filename);
        this->source.name = xstrdup(filename);
        if( ! cobol_filename(this->source.name, inode_of(fd)) ) {
!         error_msg(source.loc, "recursive copybook: '%s' includes itself", this->source);
!         (void)! close(fd);
!         fd = -1;
        }
        dbgmsg("%s: opened %s as fd %d", __func__, source.name, fd);
        return fd;
diff -Nrcpad gcc-16-20250601/gcc/cobol/cdf.y gcc-16-20250608/gcc/cobol/cdf.y
*** gcc-16-20250601/gcc/cobol/cdf.y	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/cdf.y	Sun Jun  8 22:32:16 2025
*************** top:		partials { YYACCEPT; }
*** 263,269 ****
  		}
  	|	copy error {
  		  error_msg(@error, "COPY directive must end in a '.'");
! 		  YYACCEPT;
  		}
  	|	completes { YYACCEPT; }
  		;
--- 263,269 ----
  		}
  	|	copy error {
  		  error_msg(@error, "COPY directive must end in a '.'");
! 		  YYABORT;
  		}
  	|	completes { YYACCEPT; }
  		;
*************** copybook_name: 	COPY name_one[src]
*** 584,590 ****
  		  if( -1 == copybook.open(@src, $src.string) ) {
  		    error_msg(@src, "could not open copybook file "
  		             "for '%s'", $src.string);
! 		    YYERROR;
  		  }
  		}
  	|	COPY name_one[src] IN name_one[lib]
--- 584,590 ----
  		  if( -1 == copybook.open(@src, $src.string) ) {
  		    error_msg(@src, "could not open copybook file "
  		             "for '%s'", $src.string);
! 		    YYABORT;
  		  }
  		}
  	|	COPY name_one[src] IN name_one[lib]
*************** copybook_name: 	COPY name_one[src]
*** 593,599 ****
  		  if( -1 == copybook.open(@src, $src.string) ) {
  		    error_msg(@src, "could not open copybook file "
  		             "for '%s' in '%'s'", $src.string, $lib.string);
! 		    YYERROR;
  		  }
  		}
  		;
--- 593,599 ----
  		  if( -1 == copybook.open(@src, $src.string) ) {
  		    error_msg(@src, "could not open copybook file "
  		             "for '%s' in '%'s'", $src.string, $lib.string);
! 		    YYABORT;
  		  }
  		}
  		;
*************** static int ydflex(void) {
*** 864,870 ****
  }
  
  bool
! cdf_value( const char name[], cdfval_t value ) {
    auto p = dictionary.find(name);
  
    if( p != dictionary.end() ) return false;
--- 864,870 ----
  }
  
  bool
! cdf_value( const char name[], const cdfval_t& value ) {
    auto p = dictionary.find(name);
  
    if( p != dictionary.end() ) return false;
diff -Nrcpad gcc-16-20250601/gcc/cobol/cdfval.h gcc-16-20250608/gcc/cobol/cdfval.h
*** gcc-16-20250601/gcc/cobol/cdfval.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/cdfval.h	Sun Jun  8 22:32:16 2025
*************** const cdfval_t *
*** 116,121 ****
  cdf_value( const char name[] );
  
  bool
! cdf_value( const char name[], cdfval_t value );
  
  #endif
--- 116,121 ----
  cdf_value( const char name[] );
  
  bool
! cdf_value( const char name[], const cdfval_t& value );
  
  #endif
diff -Nrcpad gcc-16-20250601/gcc/cobol/copybook.h gcc-16-20250608/gcc/cobol/copybook.h
*** gcc-16-20250601/gcc/cobol/copybook.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/copybook.h	Sun Jun  8 22:32:16 2025
*************** class copybook_elem_t {
*** 62,68 ****
    struct copybook_loc_t {
      YYLTYPE loc;
      const char *name;
!     copybook_loc_t() : name(NULL) {}
    } source, library;
    bool suppress;
    static std::list<const char *> suffixes;
--- 62,68 ----
    struct copybook_loc_t {
      YYLTYPE loc;
      const char *name;
!     copybook_loc_t() : loc(), name(NULL) {}
    } source, library;
    bool suppress;
    static std::list<const char *> suffixes;
*************** class copybook_elem_t {
*** 74,85 ****
  
    copybook_elem_t()
      : suppress(false)
      , fd(-1)
      , nsubexpr(0)
      , regex_text(NULL)
!   {
!     literally = {};
!   }
  
    void clear() {
      suppress = false;
--- 74,84 ----
  
    copybook_elem_t()
      : suppress(false)
+     , literally()
      , fd(-1)
      , nsubexpr(0)
      , regex_text(NULL)
!   {}
  
    void clear() {
      suppress = false;
*************** private:
*** 130,136 ****
  class uppername_t {
    std::string upper;
   public:
!   uppername_t( const std::string input ) : upper(input) {
      std::transform(input.begin(), input.end(), upper.begin(), 
  		   []( char ch ) { return TOUPPER(ch); } );
    }
--- 129,135 ----
  class uppername_t {
    std::string upper;
   public:
!   explicit uppername_t( const std::string& input ) : upper(input) {
      std::transform(input.begin(), input.end(), upper.begin(), 
  		   []( char ch ) { return TOUPPER(ch); } );
    }
diff -Nrcpad gcc-16-20250601/gcc/cobol/except.cc gcc-16-20250608/gcc/cobol/except.cc
*** gcc-16-20250601/gcc/cobol/except.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/except.cc	Sun Jun  8 22:32:16 2025
*************** static const ec_descr_t *
*** 51,57 ****
  ec_type_descr( ec_type_t type ) {
    auto p = std::find( __gg__exception_table, __gg__exception_table_end, type );
    if( p == __gg__exception_table_end ) {
!     cbl_internal_error("no such exception: 0x%04x", type);
    }
    return p;
  }
--- 51,57 ----
  ec_type_descr( ec_type_t type ) {
    auto p = std::find( __gg__exception_table, __gg__exception_table_end, type );
    if( p == __gg__exception_table_end ) {
!     cbl_internal_error("no such exception: 0x%x", type);
    }
    return p;
  }
diff -Nrcpad gcc-16-20250601/gcc/cobol/exceptg.h gcc-16-20250608/gcc/cobol/exceptg.h
*** gcc-16-20250601/gcc/cobol/exceptg.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/exceptg.h	Sun Jun  8 22:32:16 2025
*************** class exception_turn_t {
*** 58,65 ****
  
    exception_turn_t() : enabled(false), location(false) {};
  
!   exception_turn_t( ec_type_t ec, bool enabled = true )
!     : enabled(enabled)
    {
      add_exception(ec);
    } 
--- 58,65 ----
  
    exception_turn_t() : enabled(false), location(false) {};
  
!   explicit exception_turn_t( ec_type_t ec, bool enabled = true )
!     : enabled(enabled), location(false)
    {
      add_exception(ec);
    } 
*************** class exception_turn_t {
*** 74,80 ****
  
    const ec_filemap_t& exception_files() const { return exceptions; }
  
!   bool add_exception( ec_type_t type, const filelist_t files = filelist_t() ) {
      ec_disposition_t disposition = ec_type_disposition(type);
      if( disposition != ec_implemented(disposition) ) {
  	cbl_unimplementedw("CDF: exception '%s'", ec_type_str(type));
--- 74,80 ----
  
    const ec_filemap_t& exception_files() const { return exceptions; }
  
!   bool add_exception( ec_type_t type, const filelist_t& files = filelist_t() ) {
      ec_disposition_t disposition = ec_type_disposition(type);
      if( disposition != ec_implemented(disposition) ) {
  	cbl_unimplementedw("CDF: exception '%s'", ec_type_str(type));
diff -Nrcpad gcc-16-20250601/gcc/cobol/genapi.cc gcc-16-20250608/gcc/cobol/genapi.cc
*** gcc-16-20250601/gcc/cobol/genapi.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/genapi.cc	Sun Jun  8 22:32:16 2025
*************** parser_compile_dcls( const std::vector<u
*** 1019,1028 ****
    return retval;
    }
  
! static void store_location_stuff(const cbl_name_t statement_name);
  
  void
! parser_statement_begin( const cbl_name_t statement_name, tree ecs, tree dcls )
    {
    SHOW_PARSE
      {
--- 1019,1081 ----
    return retval;
    }
  
! static void
! store_location_stuff(const cbl_name_t statement_name)
!   {
!   if( exception_location_active && !current_declarative_section_name() )
!     {
!     // We need to establish some stuff for EXCEPTION- function processing
  
+     gg_assign(var_decl_exception_program_id,
+               gg_string_literal(current_function->our_unmangled_name));
+ 
+     if( strstr(current_function->current_section->label->name, "_implicit")
+         != current_function->current_section->label->name )
+       {
+       gg_assign(var_decl_exception_section,
+            gg_string_literal(current_function->current_section->label->name));
+       }
+     else
+       {
+       gg_assign(var_decl_exception_section,
+                 gg_cast(build_pointer_type(CHAR_P),null_pointer_node));
+       }
+ 
+     if( strstr(current_function->current_paragraph->label->name, "_implicit")
+         != current_function->current_paragraph->label->name )
+       {
+       gg_assign(var_decl_exception_paragraph,
+            gg_string_literal(current_function->current_paragraph->label->name));
+       }
+     else
+       {
+       gg_assign(var_decl_exception_paragraph,
+                 gg_cast(build_pointer_type(CHAR_P), null_pointer_node));
+       }
+ 
+     gg_assign(var_decl_exception_source_file,
+               gg_string_literal(current_filename.back().c_str()));
+     gg_assign(var_decl_exception_line_number, build_int_cst_type(INT,
+                                                           CURRENT_LINE_NUMBER));
+     gg_assign(var_decl_exception_statement, gg_string_literal(statement_name));
+     }
+   }
+ 
+ static
  void
! set_exception_environment( tree ecs, tree dcls )
!   {
!   gg_call(VOID,
!           "__gg__set_exception_environment",
!           ecs  ? gg_get_address_of(ecs) : null_pointer_node,
!           dcls ? gg_get_address_of(dcls) : null_pointer_node,
!           NULL_TREE);
!   }
! 
! void
! parser_statement_begin( const cbl_name_t statement_name, 
!                         tree ecs,
!                         tree dcls )
    {
    SHOW_PARSE
      {
*************** parser_statement_begin( const cbl_name_t
*** 1052,1057 ****
--- 1105,1139 ----
      TRACE1_END
      }
  
+   gcc_assert( gg_trans_unit.function_stack.size() );
+ 
+   // In the cases where enabled_exceptions.size() is non-zero, or when
+   // there is a possibility of an EC-I-O exception because this is a file
+   // operation, we need to store the location information and do the exception
+   // overhead:
+ 
+   static const std::set<std::string> file_ops = 
+     {
+     "OPEN",
+     "CLOSE",
+     "READ",
+     "WRITE",
+     "DELETE",
+     "REWRITE",
+     "START",
+     };
+ 
+   //  Performance note:  By doing exception processing only when necessary
+   //  the execution time of a program doing two-billion simple adds in an inner
+   //  loop dropped from 3.8 seconds to 0.175 seconds.
+ 
+   bool exception_processing = enabled_exceptions.size() ;
+ 
+   if( !exception_processing )
+     {
+     exception_processing = file_ops.find(statement_name) != file_ops.end();
+     }
+ 
    if( gg_get_current_line_number() == DEFAULT_LINE_NUMBER )
      {
      // This code is intended to prevert GDB anomalies when the first line of a
*************** parser_statement_begin( const cbl_name_t
*** 1064,1086 ****
    // Each file I-O routine calls store_location_stuff explicitly, because
    // those exceptions can't be defeated.
  
!   if( enabled_exceptions.size() )
      {
      store_location_stuff(statement_name);
      }
  
    gg_set_current_line_number(CURRENT_LINE_NUMBER);
  
!   // if( ecs || dcls || sv_is_i_o )
      {
!     gg_call(VOID,
!             "__gg__set_exception_environment",
!             ecs  ? gg_get_address_of(ecs) : null_pointer_node,
!             dcls ? gg_get_address_of(dcls) : null_pointer_node,
!             NULL_TREE);
      }
- 
-   gcc_assert( gg_trans_unit.function_stack.size() );
    sv_is_i_o = false;
    }
  
--- 1146,1162 ----
    // Each file I-O routine calls store_location_stuff explicitly, because
    // those exceptions can't be defeated.
  
!   if( exception_processing )
      {
      store_location_stuff(statement_name);
      }
  
    gg_set_current_line_number(CURRENT_LINE_NUMBER);
  
!   if( exception_processing )
      {
!     set_exception_environment(ecs, dcls);
      }
    sv_is_i_o = false;
    }
  
*************** parser_perform_conditional( struct cbl_p
*** 7833,7844 ****
      SHOW_PARSE_END
      }
  
!   size_t i = tgt->addresses.number_of_conditionals;
  
    if( !(i < MAXIMUM_UNTILS) )
      {
!     cbl_internal_error("%s:%d: %zu exceeds MAXIMUM_UNTILS of %d, line %d",
!           __func__, __LINE__, i, MAXIMUM_UNTILS, CURRENT_LINE_NUMBER);
      }
    gcc_assert(i < MAXIMUM_UNTILS);
  
--- 7909,7921 ----
      SHOW_PARSE_END
      }
  
!   unsigned int i = tgt->addresses.number_of_conditionals;
  
    if( !(i < MAXIMUM_UNTILS) )
      {
!     cbl_internal_error("%s:%d: %u exceeds MAXIMUM_UNTILS of %d, line %d",
! 		       __func__, __LINE__,
! 		       i, MAXIMUM_UNTILS, CURRENT_LINE_NUMBER);
      }
    gcc_assert(i < MAXIMUM_UNTILS);
  
*************** parser_perform_conditional_end( struct c
*** 7882,7888 ****
      SHOW_PARSE_END
      }
  
!   size_t i = tgt->addresses.number_of_conditionals;
    gcc_assert(i);
  
    // We need to cap off the prior conditional in this chain of conditionals
--- 7959,7965 ----
      SHOW_PARSE_END
      }
  
!   unsigned int i = tgt->addresses.number_of_conditionals;
    gcc_assert(i);
  
    // We need to cap off the prior conditional in this chain of conditionals
*************** parser_intrinsic_call_0(cbl_field_t *tgt
*** 10491,10497 ****
      {
      // Pass __gg__when_compiled() the time from right now.
      struct timespec tp;
!     clock_gettime(CLOCK_REALTIME, &tp); // time_t tv_sec; long tv_nsec
  
      store_location_stuff(function_name);
      gg_call(VOID,
--- 10568,10576 ----
      {
      // Pass __gg__when_compiled() the time from right now.
      struct timespec tp;
!     uint64_t now = get_time_nanoseconds();
!     tp.tv_sec  = now / 1000000000;
!     tp.tv_nsec = now % 1000000000;
  
      store_location_stuff(function_name);
      gg_call(VOID,
*************** parser_set_numeric(struct cbl_field_t *t
*** 13425,13472 ****
            NULL_TREE );
    }
  
- static void
- store_location_stuff(const cbl_name_t statement_name)
-   {
-   if( exception_location_active && !current_declarative_section_name() )
-     {
-     // We need to establish some stuff for EXCEPTION- function processing
- 
-     gg_assign(var_decl_exception_program_id,
-               gg_string_literal(current_function->our_unmangled_name));
- 
-     if( strstr(current_function->current_section->label->name, "_implicit")
-         != current_function->current_section->label->name )
-       {
-       gg_assign(var_decl_exception_section,
-            gg_string_literal(current_function->current_section->label->name));
-       }
-     else
-       {
-       gg_assign(var_decl_exception_section,
-                 gg_cast(build_pointer_type(CHAR_P),null_pointer_node));
-       }
- 
-     if( strstr(current_function->current_paragraph->label->name, "_implicit")
-         != current_function->current_paragraph->label->name )
-       {
-       gg_assign(var_decl_exception_paragraph,
-            gg_string_literal(current_function->current_paragraph->label->name));
-       }
-     else
-       {
-       gg_assign(var_decl_exception_paragraph,
-                 gg_cast(build_pointer_type(CHAR_P), null_pointer_node));
-       }
- 
-     gg_assign(var_decl_exception_source_file,
-               gg_string_literal(current_filename.back().c_str()));
-     gg_assign(var_decl_exception_line_number, build_int_cst_type(INT,
-                                                           CURRENT_LINE_NUMBER));
-     gg_assign(var_decl_exception_statement, gg_string_literal(statement_name));
-     }
-   }
- 
  void
  parser_exception_clear()
    {
--- 13504,13509 ----
*************** parser_check_fatal_exception()
*** 13546,13554 ****
--- 13583,13599 ----
      TRACE1_END
      }
  
+   // Performance note:
+   // A simple program that does two billion additions of 32-bit binary numbers
+   // in its innermost loop had an execution time of 19.5 seconds.  By putting in
+   // the if() statement, that was reduced to 3.8 seconds.
+ 
+   if( enabled_exceptions.size() || sv_is_i_o )
+     {
      gg_call(VOID,
              "__gg__check_fatal_exception",
              NULL_TREE);
+     }
    }
  
  void
diff -Nrcpad gcc-16-20250601/gcc/cobol/genutil.cc gcc-16-20250608/gcc/cobol/genutil.cc
*** gcc-16-20250601/gcc/cobol/genutil.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/genutil.cc	Sun Jun  8 22:32:16 2025
*************** qualified_data_location(cbl_refer_t &ref
*** 2119,2121 ****
--- 2119,2144 ----
    return gg_add(member(refer.field->var_decl_node, "data"),
                  refer_offset(refer));
    }
+ 
+ uint64_t
+ get_time_nanoseconds()
+ {
+   // This code was unabashedly stolen from gcc/timevar.cc.
+   // It returns the Unix epoch with nine decimal places.
+ 
+   uint64_t retval = 0;
+ 
+ #ifdef HAVE_CLOCK_GETTIME
+   struct timespec ts;
+   clock_gettime (CLOCK_REALTIME, &ts);
+   retval = ts.tv_sec * 1000000000 + ts.tv_nsec;
+   return retval;
+ #endif
+ #ifdef HAVE_GETTIMEOFDAY
+   struct timeval tv;
+   gettimeofday (&tv, NULL);
+   retval = tv.tv_sec * 1000000000 + tv.tv_usec * 1000;
+   return retval;
+ #endif
+   return retval;
+ }
\ No newline at end of file
diff -Nrcpad gcc-16-20250601/gcc/cobol/genutil.h gcc-16-20250608/gcc/cobol/genutil.h
*** gcc-16-20250601/gcc/cobol/genutil.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/genutil.h	Sun Jun  8 22:32:16 2025
*************** void      build_array_of_fourplets( int
*** 155,158 ****
--- 155,161 ----
                                      size_t N,
                                      cbl_refer_t *refers);
  void      get_depending_on_value_from_odo(tree retval, cbl_field_t *odo);
+ uint64_t  get_time_nanoseconds();
+ 
+ 
  #endif
diff -Nrcpad gcc-16-20250601/gcc/cobol/inspect.h gcc-16-20250608/gcc/cobol/inspect.h
*** gcc-16-20250601/gcc/cobol/inspect.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/inspect.h	Sun Jun  8 22:32:16 2025
*************** struct cbx_inspect_match_t {
*** 102,109 ****
  
    cbx_inspect_match_t(
      const DATA& matching = DATA(),
!     cbx_inspect_qual_t<DATA> before = cbx_inspect_qual_t<DATA>(),
!     cbx_inspect_qual_t<DATA> after = cbx_inspect_qual_t<DATA>()
      )
      : matching(matching)
      , before(before)
--- 102,109 ----
  
    cbx_inspect_match_t(
      const DATA& matching = DATA(),
!     const cbx_inspect_qual_t<DATA>& before = cbx_inspect_qual_t<DATA>(),
!     const cbx_inspect_qual_t<DATA>& after  = cbx_inspect_qual_t<DATA>()
      )
      : matching(matching)
      , before(before)
*************** typedef cbx_inspect_oper_t<cbl_refer_t>
*** 192,198 ****
  template <typename DATA>
  struct cbx_inspect_t {
    DATA tally;                 // identifier-2: NULL without a tally
!   size_t nbound;              // Each FOR or REPLACING operation starts with a cbl_inspect_bound_t
    cbx_inspect_oper_t<DATA> *opers;
  
    cbx_inspect_t( const DATA& tally = DATA() )
--- 192,198 ----
  template <typename DATA>
  struct cbx_inspect_t {
    DATA tally;                 // identifier-2: NULL without a tally
!   size_t nbound;              // FOR and REPLACING start with a cbl_inspect_bound_t
    cbx_inspect_oper_t<DATA> *opers;
  
    cbx_inspect_t( const DATA& tally = DATA() )
*************** struct cbx_inspect_t {
*** 200,206 ****
      , nbound(0)
      , opers(NULL)
      {}
!   cbx_inspect_t( const DATA& tally, cbx_inspect_oper_t<DATA> oper )
      : tally(tally)
      , nbound(1)
      , opers(NULL)
--- 200,206 ----
      , nbound(0)
      , opers(NULL)
      {}
!   cbx_inspect_t( const DATA& tally, const cbx_inspect_oper_t<DATA>& oper )
      : tally(tally)
      , nbound(1)
      , opers(NULL)
diff -Nrcpad gcc-16-20250601/gcc/cobol/lexio.cc gcc-16-20250608/gcc/cobol/lexio.cc
*** gcc-16-20250601/gcc/cobol/lexio.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/lexio.cc	Sun Jun  8 22:32:16 2025
*************** cdftext::process_file( filespan_t mfile,
*** 1905,1913 ****
                                   segments.front().pend, '\n');
        nlines.after  = std::count(segments.back().p, segments.back().pend, '\n');
        if( nlines.delta() < 0 ) {
!         yywarn("line %zu: REPLACED %zu lines with %zu lines, "
!               "line count off by %d", mfile.lineno(),
!               nlines.before, nlines.after, nlines.delta());
        }
        int nnl = nlines.delta();
        while( nnl-- > 0 ) {
--- 1905,1916 ----
                                   segments.front().pend, '\n');
        nlines.after  = std::count(segments.back().p, segments.back().pend, '\n');
        if( nlines.delta() < 0 ) {
!         yywarn("line %lu: REPLACED %lu lines with %lu lines, "
! 	       "line count off by %d",
! 	       gb4(mfile.lineno()),
! 	       gb4(nlines.before),
! 	       gb4(nlines.after),
! 	       nlines.delta());
        }
        int nnl = nlines.delta();
        while( nnl-- > 0 ) {
diff -Nrcpad gcc-16-20250601/gcc/cobol/lexio.h gcc-16-20250608/gcc/cobol/lexio.h
*** gcc-16-20250601/gcc/cobol/lexio.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/lexio.h	Sun Jun  8 22:32:16 2025
*************** struct bytespan_t {
*** 110,128 ****
    }
  };
  
! /* Location type.  Borrowed from parse.h as generated by Bison. */
! #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
! typedef struct YYLTYPE YYLTYPE;
! struct YYLTYPE
! {
!   int first_line;
!   int first_column;
!   int last_line;
!   int last_column;
! };
! # define YYLTYPE_IS_DECLARED 1
! # define YYLTYPE_IS_TRIVIAL 1
! #endif
  
  struct filespan_t : public bytespan_t {
    char *cur, *eol, *quote;
--- 110,116 ----
    }
  };
  
! // YYLTYPE supplied by cbldiag.h.  Borrowed from parse.h as generated by Bison.
  
  struct filespan_t : public bytespan_t {
    char *cur, *eol, *quote;
diff -Nrcpad gcc-16-20250601/gcc/cobol/parse.y gcc-16-20250608/gcc/cobol/parse.y
*** gcc-16-20250601/gcc/cobol/parse.y	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/parse.y	Sun Jun  8 22:32:16 2025
*************** id_div:         cdf_words IDENTIFICATION
*** 1453,1458 ****
--- 1453,1459 ----
  
  cdf_words:	%empty
  	|	cobol_words
+ 	/* |	error { error_msg(@1, "not a COBOL-WORD"); } */
  		;
  cobol_words:	cobol_words1
  	|	cobol_words cobol_words1
*************** config_paragraph:
*** 2298,2305 ****
                      }
                    }
                  }
!         |       REPOSITORY '.'
!         |       REPOSITORY '.' repo_members '.'
                  ;
  
  repo_members:   repo_member
--- 2299,2306 ----
                      }
                    }
                  }
!         |       REPOSITORY dot
!         |       REPOSITORY dot repo_members '.'
                  ;
  
  repo_members:   repo_member
*************** fd_clause:      record_desc
*** 2950,2956 ****
                    f->attr |= external_e;
                    cbl_unimplemented("AS LITERAL");
                  }
!         |       fd_linage
          |       fd_report {
                    cbl_unimplemented("REPORT WRITER");
                    YYERROR;
--- 2951,2957 ----
                    f->attr |= external_e;
                    cbl_unimplemented("AS LITERAL");
                  }
!         |       fd_linage { cbl_unimplemented("LINAGE"); }
          |       fd_report {
                    cbl_unimplemented("REPORT WRITER");
                    YYERROR;
*************** data_clauses:   data_clause
*** 3888,3897 ****
                        auto redefined = symbol_redefines(field);
                        if( redefined && redefined->type == FldPointer ) {
                          if( yydebug ) {
!                           yywarn("expanding %s size from %u bytes to %zu "
!                                 "because it redefines %s with USAGE POINTER",
                                  field->name, field->size(),
!                                 (size_t)int_size_in_bytes(ptr_type_node),
                                  redefined->name);
                          }
                          field->embiggen();
--- 3889,3899 ----
                        auto redefined = symbol_redefines(field);
                        if( redefined && redefined->type == FldPointer ) {
                          if( yydebug ) {
!                           yywarn("expanding %s size from %u bytes to "
! 				 HOST_WIDE_INT_PRINT " "
! 				 "because it redefines %s with USAGE POINTER",
                                  field->name, field->size(),
!                                 int_size_in_bytes(ptr_type_node),
                                  redefined->name);
                          }
                          field->embiggen();
diff -Nrcpad gcc-16-20250601/gcc/cobol/scan.l gcc-16-20250608/gcc/cobol/scan.l
*** gcc-16-20250601/gcc/cobol/scan.l	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/scan.l	Sun Jun  8 22:32:16 2025
*************** nonseq    (([''][[:alnum:]]+][''])|([""]
*** 79,84 ****
--- 79,86 ----
  INTEGER   0*[1-9][[:digit:]]*
  INTEGERZ  [[:digit:]]+
  
+ NONWORD   [^[:alnum:]$_-]+
+ 
  SPC  [[:space:]]+
  OSPC [[:space:]]*
  EOL  \r?\n
*************** USE({SPC}FOR)?		{ return USE; }
*** 1795,1920 ****
  }
  
  <function>{
  
  
!   ABS{OSPC}/[(]?			{ pop_return ABS; }
!   ACOS{OSPC}/[(]?			{ pop_return ACOS; }
!   ANNUITY{OSPC}/[(]?			{ pop_return ANNUITY; }
!   ASIN{OSPC}/[(]?			{ pop_return ASIN; }
!   ATAN{OSPC}/[(]?			{ pop_return ATAN; }
!   BASECONVERT{OSPC}/[(]?		{ pop_return BASECONVERT; }
!   BIT-OF{OSPC}/[(]?			{ pop_return BIT_OF; }
!   BIT-TO-CHAR{OSPC}/[(]?		{ pop_return BIT_TO_CHAR; }
!   BOOLEAN-OF-INTEGER{OSPC}/[(]?		{ pop_return BOOLEAN_OF_INTEGER; }
!   BYTE-LENGTH{OSPC}/[(]?		{ pop_return BYTE_LENGTH; }
!   CHAR-NATIONAL{OSPC}/[(]?		{ pop_return CHAR_NATIONAL; }
!   CHAR{OSPC}/[(]?			{ pop_return CHAR; }
!   COMBINED-DATETIME{OSPC}/[(]?		{ pop_return COMBINED_DATETIME; }
!   CONCAT{OSPC}/[(]?			{ pop_return CONCAT; }
!   CONTENT-LENGTH{OSPC}/[(]?		{ pop_return NO_CONDITION; /* GNU only*/ }
!   CONTENT-OF{OSPC}/[(]?			{ pop_return NO_CONDITION; /* GNU only*/ }
!   CONVERT{OSPC}/[(]?			{ pop_return CONVERT; }
!   COS{OSPC}/[(]?			{ pop_return COS; }
!   CURRENCY-SYBOL{OSPC}/[(]?		{ pop_return NO_CONDITION; /* GNU only*/ }
!   CURRENT-DATE{OSPC}/[(]?		{ pop_return CURRENT_DATE; }
!   DATE-OF-INTEGER{OSPC}/[(]?		{ pop_return DATE_OF_INTEGER; }
!   DATE-TO-YYYYMMDD{OSPC}/[(]?		{ pop_return DATE_TO_YYYYMMDD; }
!   DAY-OF-INTEGER{OSPC}/[(]?		{ pop_return DAY_OF_INTEGER; }
!   DAY-TO-YYYYDDD{OSPC}/[(]?		{ pop_return DAY_TO_YYYYDDD; }
!   DISPLAY-OF{OSPC}/[(]?			{ pop_return DISPLAY_OF; }
!   E{OSPC}/[(]?				{ pop_return E; }
! 
!   EXCEPTION-FILE-N{OSPC}/[(]?		{ pop_return EXCEPTION_FILE_N; }
!   EXCEPTION-FILE{OSPC}/[(]?		{ pop_return EXCEPTION_FILE; }
!   EXCEPTION-LOCATION-N{OSPC}/[(]?	{ pop_return EXCEPTION_LOCATION_N; }
!   EXCEPTION-LOCATION{OSPC}/[(]?		{ pop_return EXCEPTION_LOCATION; }
!   EXCEPTION-STATEMENT{OSPC}/[(]?	{ pop_return EXCEPTION_STATEMENT; }
!   EXCEPTION-STATUS{OSPC}/[(]?		{ pop_return EXCEPTION_STATUS; }
! 
!   EXP{OSPC}/[(]?			{ pop_return EXP; }
!   EXP10{OSPC}/[(]?			{ pop_return EXP10; }
!   FACTORIAL{OSPC}/[(]?			{ pop_return FACTORIAL; }
!   FIND-STRING{OSPC}/[(]?		{ pop_return FIND_STRING; }
  
!   FORMATTED-CURRENT-DATE{OSPC}/[(]?	{ BEGIN(datetime_fmt); return FORMATTED_CURRENT_DATE; }
!   FORMATTED-DATE{OSPC}/[(]?		{ BEGIN(datetime_fmt); return FORMATTED_DATE; }
!   FORMATTED-DATETIME{OSPC}/[(]?		{ BEGIN(datetime_fmt); return FORMATTED_DATETIME; }
!   FORMATTED-TIME{OSPC}/[(]?		{ BEGIN(datetime_fmt); return FORMATTED_TIME; }
!   FRACTION-PART{OSPC}/[(]?		{ pop_return FRACTION_PART; }
  
!   HEX-OF{OSPC}/[(]?			{ pop_return HEX_OF; }
!   HEX-TO-CHAR{OSPC}/[(]?		{ pop_return HEX_TO_CHAR; }
!   HIGHEST-ALGEBRAIC{OSPC}/[(]?		{ pop_return HIGHEST_ALGEBRAIC; }
  
!   INTEGER{OSPC}/[(]?			{ pop_return INTEGER; }
!   INTEGER-OF-BOOLEAN{OSPC}/[(]?		{ pop_return INTEGER_OF_BOOLEAN; }
!   INTEGER-OF-DATE{OSPC}/[(]?		{ pop_return INTEGER_OF_DATE; }
!   INTEGER-OF-DAY{OSPC}/[(]?		{ pop_return INTEGER_OF_DAY; }
!   INTEGER-OF-FORMATTED-DATE{OSPC}/[(]?	{ BEGIN(datetime_fmt); return INTEGER_OF_FORMATTED_DATE; }
!   INTEGER-PART{OSPC}/[(]?		{ pop_return INTEGER_PART; }
!   LENGTH{OSPC}/[(]?			{ pop_return LENGTH; }
!   LOCALE-COMPARE{OSPC}/[(]?		{ pop_return LOCALE_COMPARE; }
!   LOCALE-DATE{OSPC}/[(]?		{ pop_return LOCALE_DATE; }
!   LOCALE-TIME{OSPC}/[(]?		{ pop_return LOCALE_TIME; }
!   LOCALE-TIME-FROM-SECONDS{OSPC}/[(]?	{ pop_return LOCALE_TIME_FROM_SECONDS; }
!   LOG{OSPC}/[(]?			{ pop_return LOG; }
!   LOG10{OSPC}/[(]?			{ pop_return LOG10; }
!   LOWER-CASE{OSPC}/[(]?			{ pop_return LOWER_CASE; }
!   LOWEST-ALGEBRAIC{OSPC}/[(]?		{ pop_return LOWEST_ALGEBRAIC; }
!   MAX{OSPC}/[(]?			{ pop_return MAXX; }
!   MEAN{OSPC}/[(]?			{ pop_return MEAN; }
!   MEDIAN{OSPC}/[(]?			{ pop_return MEDIAN; }
!   MIDRANGE{OSPC}/[(]?			{ pop_return MIDRANGE; }
!   MIN{OSPC}/[(]?			{ pop_return MINN; }
!   MOD{OSPC}/[(]?			{ pop_return MOD; }
!   MODULE-NAME{OSPC}/[(]?		{ pop_return MODULE_NAME; }
!   NATIONAL-OF{OSPC}/[(]?		{ pop_return NATIONAL_OF; }
!   NUMVAL{OSPC}/[(]?			{ pop_return NUMVAL; }
!   NUMVAL-C{OSPC}/[(]?			{ pop_return NUMVAL_C; }
!   NUMVAL-F{OSPC}/[(]?			{ pop_return NUMVAL_F; }
!   ORD{OSPC}/[(]?			{ pop_return ORD; }
!   ORD-MAX{OSPC}/[(]?			{ pop_return ORD_MAX; }
!   ORD-MIN{OSPC}/[(]?			{ pop_return ORD_MIN; }
!   PI{OSPC}/[(]?				{ pop_return PI; }
!   PRESENT-VALUE{OSPC}/[(]?		{ pop_return PRESENT_VALUE; }
  
    RANDOM{OSPC}{PARENS}			{ pop_return RANDOM; }
    RANDOM{OSPC}[(]		 	{ pop_return RANDOM_SEED; }
    RANDOM			 	{ pop_return RANDOM; }
  
!   RANGE{OSPC}/[(]?			{ pop_return RANGE; }
!   REM{OSPC}/[(]?			{ pop_return REM; }
!   REVERSE{OSPC}/[(]?			{ pop_return REVERSE; }
!   SECONDS-FROM-FORMATTED-TIME{OSPC}/[(]? { BEGIN(datetime_fmt);
  					   return SECONDS_FROM_FORMATTED_TIME; }
!   SECONDS-PAST-MIDNIGHT{OSPC}/[(]?	{ pop_return SECONDS_PAST_MIDNIGHT; }
!   SIGN{OSPC}/[(]?			{ pop_return SIGN; }
!   SIN{OSPC}/[(]?			{ pop_return SIN; }
!   SMALLEST-ALGEBRAIC{OSPC}/[(]?		{ pop_return SMALLEST_ALGEBRAIC; }
!   SQRT{OSPC}/[(]?			{ pop_return SQRT; }
!   STANDARD-COMPARE{OSPC}/[(]?		{ pop_return STANDARD_COMPARE; }
!   STANDARD-DEVIATION{OSPC}/[(]?		{ pop_return STANDARD_DEVIATION; }
!   SUBSTITUTE{OSPC}/[(]?			{ pop_return SUBSTITUTE; }
!   SUM{OSPC}/[(]?			{ pop_return SUM; }
!   TAN{OSPC}/[(]?			{ pop_return TAN; }
!   TEST-DATE-YYYYMMDD{OSPC}/[(]?		{ pop_return TEST_DATE_YYYYMMDD; }
!   TEST-DAY-YYYYDDD{OSPC}/[(]?		{ pop_return TEST_DAY_YYYYDDD; }
!   TEST-FORMATTED-DATETIME{OSPC}/[(]?	{ BEGIN(datetime_fmt); return TEST_FORMATTED_DATETIME; }
!   TEST-NUMVAL{OSPC}/[(]?		{ pop_return TEST_NUMVAL; }
!   TEST-NUMVAL-C{OSPC}/[(]?		{ pop_return TEST_NUMVAL_C; }
!   TEST-NUMVAL-F{OSPC}/[(]?		{ pop_return TEST_NUMVAL_F; }
!   TRIM{OSPC}/[(]?			{ pop_return TRIM; }
!   ULENGTH{OSPC}/[(]?			{ pop_return ULENGTH; }
!   UPOS{OSPC}/[(]?			{ pop_return UPOS; }
!   UPPER-CASE{OSPC}/[(]?			{ pop_return UPPER_CASE; }
!   USUBSTR{OSPC}/[(]?			{ pop_return USUBSTR; }
!   USUPPLEMENTARY{OSPC}/[(]?		{ pop_return USUPPLEMENTARY; }
!   UUID4{OSPC}/[(]?			{ pop_return UUID4; }
!   UVALID{OSPC}/[(]?			{ pop_return UVALID; }
!   UWIDTH{OSPC}/[(]?			{ pop_return UWIDTH; }
!   VARIANCE{OSPC}/[(]?			{ pop_return VARIANCE; }
!   WHEN-COMPILED{OSPC}/[(]?		{ pop_return WHEN_COMPILED; }
!   YEAR-TO-YYYY{OSPC}/[(]?		{ pop_return YEAR_TO_YYYY; }
  
    {NAME}{OSPC}/[(] { /* If /{OSPC}, "dangerous trailing context" "*/
                    auto name = null_trim(xstrdup(yytext));
--- 1797,1924 ----
  }
  
  <function>{
+   ABS/{NONWORD}				{ pop_return ABS; }
+   ACOS/{NONWORD}			{ pop_return ACOS; }
+   ANNUITY/{NONWORD}			{ pop_return ANNUITY; }
+   ASIN/{NONWORD}			{ pop_return ASIN; }
+   ATAN/{NONWORD}			{ pop_return ATAN; }
+   BASECONVERT/{NONWORD}			{ pop_return BASECONVERT; }
+   BIT-OF/{NONWORD}			{ pop_return BIT_OF; }
+   BIT-TO-CHAR/{NONWORD}			{ pop_return BIT_TO_CHAR; }
+   BOOLEAN-OF-INTEGER/{NONWORD}		{ pop_return BOOLEAN_OF_INTEGER; }
+   BYTE-LENGTH/{NONWORD}			{ pop_return BYTE_LENGTH; }
+   CHAR-NATIONAL/{NONWORD}		{ pop_return CHAR_NATIONAL; }
+   CHAR/{NONWORD}			{ pop_return CHAR; }
+   COMBINED-DATETIME/{NONWORD}		{ pop_return COMBINED_DATETIME; }
+   CONCAT/{NONWORD}			{ pop_return CONCAT; }
+   CONTENT-LENGTH/{NONWORD}		{ pop_return NO_CONDITION; /* GNU only*/ }
+   CONTENT-OF/{NONWORD}			{ pop_return NO_CONDITION; /* GNU only*/ }
+   CONVERT/{NONWORD}			{ pop_return CONVERT; }
+   COS/{NONWORD}				{ pop_return COS; }
+   CURRENCY-SYBOL/{NONWORD}		{ pop_return NO_CONDITION; /* GNU only*/ }
+   CURRENT-DATE/{NONWORD}		{ pop_return CURRENT_DATE; }
+   DATE-OF-INTEGER/{NONWORD}		{ pop_return DATE_OF_INTEGER; }
+   DATE-TO-YYYYMMDD/{NONWORD}		{ pop_return DATE_TO_YYYYMMDD; }
+   DAY-OF-INTEGER/{NONWORD}		{ pop_return DAY_OF_INTEGER; }
+   DAY-TO-YYYYDDD/{NONWORD}		{ pop_return DAY_TO_YYYYDDD; }
+   DISPLAY-OF/{NONWORD}			{ pop_return DISPLAY_OF; }
+   E/{NONWORD}				{ pop_return E; }
  
+   EXCEPTION-FILE-N/{NONWORD}		{ pop_return EXCEPTION_FILE_N; }
+   EXCEPTION-FILE/{NONWORD}		{ pop_return EXCEPTION_FILE; }
+   EXCEPTION-LOCATION-N/{NONWORD}	{ pop_return EXCEPTION_LOCATION_N; }
+   EXCEPTION-LOCATION/{NONWORD}		{ pop_return EXCEPTION_LOCATION; }
+   EXCEPTION-STATEMENT/{NONWORD}		{ pop_return EXCEPTION_STATEMENT; }
+   EXCEPTION-STATUS/{NONWORD}		{ pop_return EXCEPTION_STATUS; }
  
!   EXP/{NONWORD}				{ pop_return EXP; }
!   EXP10/{NONWORD}			{ pop_return EXP10; }
!   FACTORIAL/{NONWORD}			{ pop_return FACTORIAL; }
!   FIND-STRING/{NONWORD}			{ pop_return FIND_STRING; }
  
!   FORMATTED-CURRENT-DATE/{NONWORD}	{ BEGIN(datetime_fmt);
! 					  return FORMATTED_CURRENT_DATE; }
!   FORMATTED-DATE/{NONWORD}		{ BEGIN(datetime_fmt); return FORMATTED_DATE; }
!   FORMATTED-DATETIME/{NONWORD}		{ BEGIN(datetime_fmt); return FORMATTED_DATETIME; }
!   FORMATTED-TIME/{NONWORD}		{ BEGIN(datetime_fmt); return FORMATTED_TIME; }
!   FRACTION-PART/{NONWORD}		{ pop_return FRACTION_PART; }
  
!   HEX-OF/{NONWORD}			{ pop_return HEX_OF; }
!   HEX-TO-CHAR/{NONWORD}			{ pop_return HEX_TO_CHAR; }
!   HIGHEST-ALGEBRAIC/{NONWORD}		{ pop_return HIGHEST_ALGEBRAIC; }
  
!   INTEGER/{NONWORD}			{ pop_return INTEGER; }
!   INTEGER-OF-BOOLEAN/{NONWORD}		{ pop_return INTEGER_OF_BOOLEAN; }
!   INTEGER-OF-DATE/{NONWORD}		{ pop_return INTEGER_OF_DATE; }
!   INTEGER-OF-DAY/{NONWORD}		{ pop_return INTEGER_OF_DAY; }
!   INTEGER-OF-FORMATTED-DATE/{NONWORD}	{ BEGIN(datetime_fmt);
! 					  return INTEGER_OF_FORMATTED_DATE; }
!   INTEGER-PART/{NONWORD}		{ pop_return INTEGER_PART; }
!   LENGTH/{NONWORD}			{ pop_return LENGTH; }
!   LOCALE-COMPARE/{NONWORD}		{ pop_return LOCALE_COMPARE; }
!   LOCALE-DATE/{NONWORD}			{ pop_return LOCALE_DATE; }
!   LOCALE-TIME/{NONWORD}			{ pop_return LOCALE_TIME; }
!   LOCALE-TIME-FROM-SECONDS/{NONWORD}	{ pop_return LOCALE_TIME_FROM_SECONDS; }
!   LOG/{NONWORD}				{ pop_return LOG; }
!   LOG10/{NONWORD}			{ pop_return LOG10; }
!   LOWER-CASE/{NONWORD}			{ pop_return LOWER_CASE; }
!   LOWEST-ALGEBRAIC/{NONWORD}		{ pop_return LOWEST_ALGEBRAIC; }
!   MAX/{NONWORD}				{ pop_return MAXX; }
!   MEAN/{NONWORD}			{ pop_return MEAN; }
!   MEDIAN/{NONWORD}			{ pop_return MEDIAN; }
!   MIDRANGE/{NONWORD}			{ pop_return MIDRANGE; }
!   MIN/{NONWORD}				{ pop_return MINN; }
!   MOD/{NONWORD}				{ pop_return MOD; }
!   MODULE-NAME/{NONWORD}			{ pop_return MODULE_NAME; }
!   NATIONAL-OF/{NONWORD}			{ pop_return NATIONAL_OF; }
!   NUMVAL/{NONWORD}			{ pop_return NUMVAL; }
!   NUMVAL-C/{NONWORD}			{ pop_return NUMVAL_C; }
!   NUMVAL-F/{NONWORD}			{ pop_return NUMVAL_F; }
!   ORD/{NONWORD}				{ pop_return ORD; }
!   ORD-MAX/{NONWORD}			{ pop_return ORD_MAX; }
!   ORD-MIN/{NONWORD}			{ pop_return ORD_MIN; }
!   PI/{NONWORD}				{ pop_return PI; }
!   PRESENT-VALUE/{NONWORD}		{ pop_return PRESENT_VALUE; }
  
    RANDOM{OSPC}{PARENS}			{ pop_return RANDOM; }
    RANDOM{OSPC}[(]		 	{ pop_return RANDOM_SEED; }
    RANDOM			 	{ pop_return RANDOM; }
  
!   RANGE/{NONWORD}			{ pop_return RANGE; }
!   REM/{NONWORD}				{ pop_return REM; }
!   REVERSE/{NONWORD}			{ pop_return REVERSE; }
!   SECONDS-FROM-FORMATTED-TIME/{NONWORD} { BEGIN(datetime_fmt);
  					   return SECONDS_FROM_FORMATTED_TIME; }
!   SECONDS-PAST-MIDNIGHT/{NONWORD}	{ pop_return SECONDS_PAST_MIDNIGHT; }
!   SIGN/{NONWORD}			{ pop_return SIGN; }
!   SIN/{NONWORD}				{ pop_return SIN; }
!   SMALLEST-ALGEBRAIC/{NONWORD}		{ pop_return SMALLEST_ALGEBRAIC; }
!   SQRT/{NONWORD}			{ pop_return SQRT; }
!   STANDARD-COMPARE/{NONWORD}		{ pop_return STANDARD_COMPARE; }
!   STANDARD-DEVIATION/{NONWORD}		{ pop_return STANDARD_DEVIATION; }
!   SUBSTITUTE/{NONWORD}			{ pop_return SUBSTITUTE; }
!   SUM/{NONWORD}				{ pop_return SUM; }
!   TAN/{NONWORD}				{ pop_return TAN; }
!   TEST-DATE-YYYYMMDD/{NONWORD}		{ pop_return TEST_DATE_YYYYMMDD; }
!   TEST-DAY-YYYYDDD/{NONWORD}		{ pop_return TEST_DAY_YYYYDDD; }
!   TEST-FORMATTED-DATETIME/{NONWORD}	{ BEGIN(datetime_fmt); return TEST_FORMATTED_DATETIME; }
!   TEST-NUMVAL/{NONWORD}			{ pop_return TEST_NUMVAL; }
!   TEST-NUMVAL-C/{NONWORD}		{ pop_return TEST_NUMVAL_C; }
!   TEST-NUMVAL-F/{NONWORD}		{ pop_return TEST_NUMVAL_F; }
!   TRIM/{NONWORD}			{ pop_return TRIM; }
!   ULENGTH/{NONWORD}			{ pop_return ULENGTH; }
!   UPOS/{NONWORD}			{ pop_return UPOS; }
!   UPPER-CASE/{NONWORD}			{ pop_return UPPER_CASE; }
!   USUBSTR/{NONWORD}			{ pop_return USUBSTR; }
!   USUPPLEMENTARY/{NONWORD}		{ pop_return USUPPLEMENTARY; }
!   UUID4/{NONWORD}			{ pop_return UUID4; }
!   UVALID/{NONWORD}			{ pop_return UVALID; }
!   UWIDTH/{NONWORD}			{ pop_return UWIDTH; }
!   VARIANCE/{NONWORD}			{ pop_return VARIANCE; }
!   WHEN-COMPILED/{NONWORD}		{ pop_return WHEN_COMPILED; }
!   YEAR-TO-YYYY/{NONWORD}		{ pop_return YEAR_TO_YYYY; }
! 
!   /* Matches above include NONWORD because the NAME tests below are otherwise longer, */
  
    {NAME}{OSPC}/[(] { /* If /{OSPC}, "dangerous trailing context" "*/
                    auto name = null_trim(xstrdup(yytext));
diff -Nrcpad gcc-16-20250601/gcc/cobol/scan_ante.h gcc-16-20250608/gcc/cobol/scan_ante.h
*** gcc-16-20250601/gcc/cobol/scan_ante.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/scan_ante.h	Sun Jun  8 22:32:16 2025
*************** bool scanner_normal()  { return parsing.
*** 313,320 ****
  void scanner_parsing( int token, bool tf ) {
    parsing.push( cdf_status_t(token, tf) );
    if( yydebug ) {
!     yywarn("%10s: parsing now %5s, depth %zu",
!             keyword_str(token), boolalpha(parsing.on()), parsing.size());
      parsing.splat();
    }
  }
--- 313,321 ----
  void scanner_parsing( int token, bool tf ) {
    parsing.push( cdf_status_t(token, tf) );
    if( yydebug ) {
!     yywarn("%10s: parsing now %5s, depth %lu",
!             keyword_str(token), boolalpha(parsing.on()),
! 	   gb4(parsing.size()));
      parsing.splat();
    }
  }
*************** void scanner_parsing_pop() {
*** 336,343 ****
    }
    parsing.pop();
    if( yydebug ) {
!     yywarn("%10s: parsing now %5s, depth %zu",
!             keyword_str(CDF_END_IF), boolalpha(parsing.on()), parsing.size());
      parsing.splat();
    }
  }
--- 337,345 ----
    }
    parsing.pop();
    if( yydebug ) {
!     yywarn("%10s: parsing now %5s, depth %lu",
!             keyword_str(CDF_END_IF), boolalpha(parsing.on()),
! 	   gb4(parsing.size()));
      parsing.splat();
    }
  }
*************** binary_integer_usage( const char name[])
*** 577,583 ****
    std::transform(name, name + strlen(name), uname, ftoupper);
  
    dbgmsg("%s:%d: checking %s in %zu keyword_aliases",
! 	 __func__, __LINE__, uname, keyword_aliases.size() );
  
    std::string key = uname;
    auto alias = keyword_aliases.find(key);
--- 579,586 ----
    std::transform(name, name + strlen(name), uname, ftoupper);
  
    dbgmsg("%s:%d: checking %s in %zu keyword_aliases",
! 	 __func__, __LINE__, uname,
! 	 keyword_aliases.size() );
  
    std::string key = uname;
    auto alias = keyword_aliases.find(key);
diff -Nrcpad gcc-16-20250601/gcc/cobol/scan_post.h gcc-16-20250608/gcc/cobol/scan_post.h
*** gcc-16-20250601/gcc/cobol/scan_post.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/scan_post.h	Sun Jun  8 22:32:16 2025
*************** prelex() {
*** 260,272 ****
    while( is_cdf_token(token) ) {
  
      if( ! run_cdf(token) ) {
!       dbgmsg( ">>CDF parser failed" );
!       return NO_CONDITION;
      }
      // Return the CDF's discarded lookahead token, if extant.
      token = ydfchar > 0? ydfchar : next_token();
      if( token == NO_CONDITION && parsing.at_eof() ) {
!       return token = YYEOF;
      }
  
      // Reenter cdf parser only if next token could affect parsing state.
--- 260,271 ----
    while( is_cdf_token(token) ) {
  
      if( ! run_cdf(token) ) {
!       dbgmsg( ">>CDF parser failed, ydfchar %d", ydfchar );
      }
      // Return the CDF's discarded lookahead token, if extant.
      token = ydfchar > 0? ydfchar : next_token();
      if( token == NO_CONDITION && parsing.at_eof() ) {
!       return YYEOF;
      }
  
      // Reenter cdf parser only if next token could affect parsing state.
*************** yylex(void) {
*** 375,381 ****
      token = prelex();
      if( yy_flex_debug ) {
        if( parsing.in_cdf() ) {
!         dbgmsg( "%s:%d: %s routing %s to CDF parser", __func__, __LINE__,
                 start_condition_is(), keyword_str(token) );
        } else if( !parsing.on() ) {
          dbgmsg( "eating %s because conditional compilation is FALSE",
--- 374,380 ----
      token = prelex();
      if( yy_flex_debug ) {
        if( parsing.in_cdf() ) {
!         dbgmsg( "%s:%d: <%s> routing %s to CDF parser", __func__, __LINE__,
                 start_condition_is(), keyword_str(token) );
        } else if( !parsing.on() ) {
          dbgmsg( "eating %s because conditional compilation is FALSE",
diff -Nrcpad gcc-16-20250601/gcc/cobol/symbols.cc gcc-16-20250608/gcc/cobol/symbols.cc
*** gcc-16-20250601/gcc/cobol/symbols.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/symbols.cc	Sun Jun  8 22:32:16 2025
*************** class symbol_pair_t
*** 56,62 ****
  {
    const symbol_elem_t *first, *last;
  public:
!   symbol_pair_t( const symbol_elem_t * first, const symbol_elem_t * end = NULL )
      : first(first), last(end)
    {}
  
--- 56,62 ----
  {
    const symbol_elem_t *first, *last;
  public:
!   explicit symbol_pair_t( const symbol_elem_t * first, const symbol_elem_t * end = NULL )
      : first(first), last(end)
    {}
  
*************** symbol_table_extend() {
*** 160,167 ****
    off_t len = symbols.size();
  
    if( 0 != ftruncate(symbols.fd, len) ) {
!     cbl_err( "%s:%d:could not extend symbol table to %zu elements",
!         __func__, __LINE__, symbols.capacity);
    }
  
    /*
--- 160,167 ----
    off_t len = symbols.size();
  
    if( 0 != ftruncate(symbols.fd, len) ) {
!     cbl_err( "%s:%d: could not extend symbol table to %lu elements",
! 	     __func__, __LINE__, gb4(symbols.capacity));
    }
  
    /*
*************** class group_size_t {
*** 280,286 ****
  enum  { constq = constant_e | quoted_e };
  
  static symbol_elem_t
! elementize( cbl_field_t& field ) {
    symbol_elem_t sym (SymField);
    sym.elem.field = field;
    return sym;
--- 280,286 ----
  enum  { constq = constant_e | quoted_e };
  
  static symbol_elem_t
! elementize( const cbl_field_t& field ) {
    symbol_elem_t sym (SymField);
    sym.elem.field = field;
    return sym;
*************** end_of_group( const cbl_field_t *group,
*** 907,913 ****
  class eog_t {
    const cbl_field_t * group;
  public:
!   eog_t( const symbol_elem_t *e ) : group(cbl_field_of(e)) {}
  
    bool operator()( symbol_elem_t& e ) {
      return e.type == SymField && end_of_group(group, cbl_field_of(&e));
--- 907,913 ----
  class eog_t {
    const cbl_field_t * group;
  public:
!   explicit eog_t( const symbol_elem_t *e ) : group(cbl_field_of(e)) {}
  
    bool operator()( symbol_elem_t& e ) {
      return e.type == SymField && end_of_group(group, cbl_field_of(&e));
*************** immediately_follows( const cbl_field_t *
*** 1339,1357 ****
  
  bool
  is_variable_length( const cbl_field_t *field ) {
!   bool odo = false;
!   std::find_if( symbol_at(field_index(field)) + 1, symbols_end(),
!                 [&odo, field]( const auto& elem ) {
!                   if( elem.type == SymField ) {
!                     auto f = cbl_field_of(&elem);
!                     if( f->level <= field->level ) return true;
!                     if( f->occurs.depending_on ) {
!                       odo = true;
!                       return true;
!                     }
!                   }
!                   return false;
!                 } );
    return odo;
  }
  
--- 1339,1356 ----
  
  bool
  is_variable_length( const cbl_field_t *field ) {
!   // RENAMES may be included in end_of_group.
!   size_t isym = field_index(field),  esym = end_of_group(isym);
!   bool odo = std::any_of( symbol_at(isym) + 1, symbol_at_impl(esym), 
! 			  [field]( const auto& elem ) {
! 			    if( elem.type == SymField ) {
! 			      auto f = cbl_field_of(&elem);
! 			      if( field->level < f->level ) { // exclude RENAMES
! 				return 0 < f->occurs.depending_on;
! 			      }
! 			    }
! 			    return false;
! 			  } );
    return odo;
  }
  
*************** symbols_update( size_t first, bool parse
*** 1704,1710 ****
      case 1:
        pend = calculate_capacity(p);
        if( dialect_mf() && is_table(field) ) {
-         cbl_field_t *field = cbl_field_of(p);
          if( field->data.memsize < field->size() ) {
            field->data.memsize = field->size();
          }
--- 1703,1708 ----
*************** class parent_elem_set
*** 2102,2108 ****
  private:
    size_t parent_index;
  public:
!   parent_elem_set( size_t parent_index )
      : parent_index(parent_index)
    {}
    void operator()( struct symbol_elem_t& e ) {
--- 2100,2106 ----
  private:
    size_t parent_index;
  public:
!   explicit parent_elem_set( size_t parent_index )
      : parent_index(parent_index)
    {}
    void operator()( struct symbol_elem_t& e ) {
*************** symbol_file_add( size_t program, cbl_fil
*** 2419,2427 ****
    return e;
  }
  
! struct symbol_elem_t *
! symbol_alphabet_add( size_t program, struct cbl_alphabet_t *alphabet ) {
!   struct symbol_elem_t sym{ SymAlphabet, program };
    sym.elem.alphabet = *alphabet;
    return symbol_add(&sym);
  }
--- 2417,2425 ----
    return e;
  }
  
! symbol_elem_t *
! symbol_alphabet_add( size_t program, const cbl_alphabet_t *alphabet ) {
!   symbol_elem_t sym{ SymAlphabet, program };
    sym.elem.alphabet = *alphabet;
    return symbol_add(&sym);
  }
*************** parser_symbol_add2( cbl_field_t *field )
*** 3230,3236 ****
  
  static cbl_field_t *
  new_literal_add( const char initial[], uint32_t len, enum cbl_field_attr_t attr ) {
-   static char empty[2] = "\0";
    cbl_field_t *field = NULL;
    if( !(attr & quoted_e) )
      {
--- 3228,3233 ----
*************** new_literal_add( const char initial[], u
*** 3240,3245 ****
--- 3237,3243 ----
      }
    else
      {
+     static char empty[2] = "\0";
      field = new_temporary_impl(FldLiteralA);
      field->attr |= attr;
      field->data.initial = len > 0? initial : empty;
diff -Nrcpad gcc-16-20250601/gcc/cobol/symbols.h gcc-16-20250608/gcc/cobol/symbols.h
*** gcc-16-20250601/gcc/cobol/symbols.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/symbols.h	Sun Jun  8 22:32:16 2025
*************** class cbl_domain_elem_t {
*** 173,179 ****
    {
      if( value && ! is_numeric ) {
        auto s = consistent_encoding_check(loc, value);
!       if( s ) value = s;
      }
    }
    const char *name() const { return value; }
--- 173,179 ----
    {
      if( value && ! is_numeric ) {
        auto s = consistent_encoding_check(loc, value);
!       if( s ) this->value = s;
      }
    }
    const char *name() const { return value; }
*************** struct cbl_refer_t;
*** 641,647 ****
  struct cbl_span_t {
    cbl_refer_t *from, *len;
  
!   cbl_span_t( cbl_refer_t *from, cbl_refer_t *len = NULL )
      : from(from), len(len) {};
    bool is_active() const { return !( from == NULL && len == NULL ); }
  
--- 641,647 ----
  struct cbl_span_t {
    cbl_refer_t *from, *len;
  
!   explicit cbl_span_t( cbl_refer_t *from, cbl_refer_t *len = NULL )
      : from(from), len(len) {};
    bool is_active() const { return !( from == NULL && len == NULL ); }
  
*************** struct cbl_refer_t {
*** 660,671 ****
    cbl_span_t refmod;        // substring bounds
  
    cbl_refer_t()
!     : field(NULL), prog_func(NULL)
      , all(NULL), addr_of(false)
      , nsubscript(0), subscripts(NULL), refmod(NULL)
    {}
    cbl_refer_t( cbl_field_t *field, bool all = false )
!     : field(field), prog_func(NULL)
      , all(all), addr_of(false)
      , nsubscript(0), subscripts(NULL), refmod(NULL)
    {}
--- 660,671 ----
    cbl_span_t refmod;        // substring bounds
  
    cbl_refer_t()
!     : loc(), field(NULL), prog_func(NULL)
      , all(NULL), addr_of(false)
      , nsubscript(0), subscripts(NULL), refmod(NULL)
    {}
    cbl_refer_t( cbl_field_t *field, bool all = false )
!     : loc(), field(field), prog_func(NULL)
      , all(all), addr_of(false)
      , nsubscript(0), subscripts(NULL), refmod(NULL)
    {}
*************** struct cbl_refer_t {
*** 675,688 ****
      , nsubscript(0), subscripts(NULL), refmod(NULL)
    {}
    cbl_refer_t( cbl_field_t *field, cbl_span_t& refmod )
!     : field(field), prog_func(NULL)
      , all(false), addr_of(false)
      , nsubscript(0), subscripts(NULL), refmod(refmod)
    {}
    cbl_refer_t( cbl_field_t *field,
                 size_t nsubscript, cbl_refer_t *subscripts,
                 cbl_span_t refmod = cbl_span_t(NULL) )
!     : field(field), prog_func(NULL)
      , all(false), addr_of(false)
      , nsubscript(nsubscript) , subscripts( new cbl_refer_t[nsubscript] )
      , refmod(refmod)
--- 675,688 ----
      , nsubscript(0), subscripts(NULL), refmod(NULL)
    {}
    cbl_refer_t( cbl_field_t *field, cbl_span_t& refmod )
!     : loc(), field(field), prog_func(NULL)
      , all(false), addr_of(false)
      , nsubscript(0), subscripts(NULL), refmod(refmod)
    {}
    cbl_refer_t( cbl_field_t *field,
                 size_t nsubscript, cbl_refer_t *subscripts,
                 cbl_span_t refmod = cbl_span_t(NULL) )
!     : loc(), field(field), prog_func(NULL)
      , all(false), addr_of(false)
      , nsubscript(nsubscript) , subscripts( new cbl_refer_t[nsubscript] )
      , refmod(refmod)
*************** struct cbl_refer_t {
*** 690,696 ****
      std::copy(subscripts, subscripts + nsubscript, this->subscripts);
    }
    explicit cbl_refer_t( cbl_label_t *prog_func, bool addr_of = true )
!     : field(NULL), prog_func(prog_func)
      , all(false), addr_of(addr_of)
      , nsubscript(0), subscripts(NULL), refmod(cbl_span_t(NULL))
    {}
--- 690,696 ----
      std::copy(subscripts, subscripts + nsubscript, this->subscripts);
    }
    explicit cbl_refer_t( cbl_label_t *prog_func, bool addr_of = true )
!     : loc(), field(NULL), prog_func(prog_func)
      , all(false), addr_of(addr_of)
      , nsubscript(0), subscripts(NULL), refmod(cbl_span_t(NULL))
    {}
*************** struct cbl_alphabet_t {
*** 1419,1428 ****
    add_sequence( const YYLTYPE& loc, const unsigned char seq[] ) {
      if( low_index == 0 ) low_index = seq[0];
  
!     unsigned char high_value = last_index > 0? alphabet[last_index] + 1 : 0;
  
      for( const unsigned char *p = seq; !end_of_string(p); p++  ) {
!       assign(loc, *p, high_value++);
      }
    }
  
--- 1419,1428 ----
    add_sequence( const YYLTYPE& loc, const unsigned char seq[] ) {
      if( low_index == 0 ) low_index = seq[0];
  
!     unsigned char last = last_index > 0? alphabet[last_index] + 1 : 0;
  
      for( const unsigned char *p = seq; !end_of_string(p); p++  ) {
!       assign(loc, *p, last++);
      }
    }
  
*************** struct cbl_alphabet_t {
*** 1430,1439 ****
    add_interval( const YYLTYPE& loc, unsigned char low, unsigned char high ) {
      if( low_index == 0 ) low_index = low;
  
!     unsigned char high_value = alphabet[last_index];
  
      for( unsigned char ch = low; ch < high; ch++  ) {
!       assign(loc, ch, high_value++);
      }
    }
  
--- 1430,1439 ----
    add_interval( const YYLTYPE& loc, unsigned char low, unsigned char high ) {
      if( low_index == 0 ) low_index = low;
  
!     unsigned char last = alphabet[last_index];
  
      for( unsigned char ch = low; ch < high; ch++  ) {
!       assign(loc, ch, last++);
      }
    }
  
*************** struct cbl_file_key_t {
*** 1524,1538 ****
      fields[0] = field;
      memset(name, '\0', sizeof(name));
    }
-   cbl_file_key_t( const cbl_file_key_t *that )
-     : unique(that->unique)
-     , leftmost(that->leftmost)
-     , nfield(that->nfield)
-   {
-     memcpy(name, that->name, sizeof(name));
-     fields = new size_t[nfield];
-     std::copy( that->fields, that->fields + that->nfield, fields );
-   }
  
    cbl_file_key_t( cbl_name_t name,
                    const std::list<cbl_field_t *>& fields,
--- 1524,1529 ----
*************** struct symbol_elem_t {
*** 1636,1645 ****
      cbl_alphabet_t     alphabet;
      cbl_file_t         file;
      cbl_section_t      section;
!     symbol_elem_u() {
!       static const cbl_field_t empty = {};
!       field = empty;
!     }
    } elem;
    
    symbol_elem_t( symbol_type_t type = SymField, size_t program = 0 )
--- 1627,1633 ----
      cbl_alphabet_t     alphabet;
      cbl_file_t         file;
      cbl_section_t      section;
!     symbol_elem_u() : field() {}
    } elem;
    
    symbol_elem_t( symbol_type_t type = SymField, size_t program = 0 )
*************** struct cbl_until_addresses_t {
*** 1926,1932 ****
      struct cbl_label_addresses_t test;  // The test at the bottom of the body
      struct cbl_label_addresses_t testA; // Starting point of a TEST_AFTER loop
      struct cbl_label_addresses_t setup; // The actual entry point
!     size_t number_of_conditionals;
      struct cbl_label_addresses_t condover[MAXIMUM_UNTILS];  // Jumping over the conditional
      struct cbl_label_addresses_t condinto[MAXIMUM_UNTILS];  // Jumping into the conditional
      struct cbl_label_addresses_t condback[MAXIMUM_UNTILS];  // Jumping back from the conditional
--- 1914,1920 ----
      struct cbl_label_addresses_t test;  // The test at the bottom of the body
      struct cbl_label_addresses_t testA; // Starting point of a TEST_AFTER loop
      struct cbl_label_addresses_t setup; // The actual entry point
!     unsigned int number_of_conditionals;
      struct cbl_label_addresses_t condover[MAXIMUM_UNTILS];  // Jumping over the conditional
      struct cbl_label_addresses_t condinto[MAXIMUM_UNTILS];  // Jumping into the conditional
      struct cbl_label_addresses_t condback[MAXIMUM_UNTILS];  // Jumping back from the conditional
*************** struct cbl_prog_hier_t {
*** 1990,1996 ****
    struct program_label_t {
      size_t ordinal;
      cbl_label_t label;
!     program_label_t() : ordinal(0) {}
      program_label_t( const symbol_elem_t& e ) {
        ordinal = symbol_index(&e);
        label = e.elem.label;
--- 1978,1984 ----
    struct program_label_t {
      size_t ordinal;
      cbl_label_t label;
!     program_label_t() : ordinal(0), label() {}
      program_label_t( const symbol_elem_t& e ) {
        ordinal = symbol_index(&e);
        label = e.elem.label;
*************** struct cbl_prog_hier_t {
*** 2008,2020 ****
  struct cbl_perform_tgt_t {
    struct cbl_until_addresses_t addresses;
  
!   cbl_perform_tgt_t() : ifrom(0), ito(0) {}
!   cbl_perform_tgt_t( cbl_label_t * from, cbl_label_t *to = NULL )
!     : ifrom( from? symbol_index(symbol_elem_of(from)) : 0 )
      , ito( to? symbol_index(symbol_elem_of(to)) : 0 )
!   {
!     addresses = {};
!   }
  
    cbl_label_t * from( cbl_label_t * label ) {
      ifrom = symbol_index(symbol_elem_of(label));
--- 1996,2006 ----
  struct cbl_perform_tgt_t {
    struct cbl_until_addresses_t addresses;
  
!   cbl_perform_tgt_t() : addresses(), ifrom(0), ito(0) {}
!   explicit cbl_perform_tgt_t( cbl_label_t * from, cbl_label_t *to = NULL )
!     : addresses(), ifrom( from? symbol_index(symbol_elem_of(from)) : 0 )
      , ito( to? symbol_index(symbol_elem_of(to)) : 0 )
!   {}
  
    cbl_label_t * from( cbl_label_t * label ) {
      ifrom = symbol_index(symbol_elem_of(label));
*************** size_t symbols_update( size_t first, boo
*** 2252,2272 ****
  void symbol_table_init(void);
  void symbol_table_check(void);
  
! struct symbol_elem_t * symbol_typedef_add( size_t program,
!                                            struct cbl_field_t *field );
! struct symbol_elem_t * symbol_field_add( size_t program,
!                                          struct cbl_field_t *field );
! struct cbl_label_t *   symbol_label_add( size_t program,
!                                          struct cbl_label_t *label );
! struct cbl_label_t *   symbol_program_add( size_t program, cbl_label_t *input );
! struct symbol_elem_t * symbol_special_add( size_t program,
!                                          struct cbl_special_name_t *special );
! struct symbol_elem_t * symbol_alphabet_add( size_t program,
!                                          struct cbl_alphabet_t *alphabet );
! struct symbol_elem_t * symbol_file_add( size_t program,
!                                          struct cbl_file_t *file );
! struct symbol_elem_t * symbol_section_add( size_t program,
!                                          struct cbl_section_t *section );
  
  void symbol_field_location( size_t ifield, const YYLTYPE& loc );
  YYLTYPE symbol_field_location( size_t ifield );
--- 2238,2258 ----
  void symbol_table_init(void);
  void symbol_table_check(void);
  
! symbol_elem_t * symbol_typedef_add( size_t program,
!                                     cbl_field_t *field );
! symbol_elem_t * symbol_field_add( size_t program,
!                                   cbl_field_t *field );
! cbl_label_t *   symbol_label_add( size_t program,
!                                   cbl_label_t *label );
! cbl_label_t *   symbol_program_add( size_t program, cbl_label_t *input );
! symbol_elem_t * symbol_special_add( size_t program,
! 				    cbl_special_name_t *special );
! symbol_elem_t * symbol_alphabet_add( size_t program,
! 				     const cbl_alphabet_t *alphabet );
! symbol_elem_t * symbol_file_add( size_t program,
! 				 cbl_file_t *file );
! symbol_elem_t * symbol_section_add( size_t program,
! 				    cbl_section_t *section );
  
  void symbol_field_location( size_t ifield, const YYLTYPE& loc );
  YYLTYPE symbol_field_location( size_t ifield );
diff -Nrcpad gcc-16-20250601/gcc/cobol/symfind.cc gcc-16-20250608/gcc/cobol/symfind.cc
*** gcc-16-20250601/gcc/cobol/symfind.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/symfind.cc	Sun Jun  8 22:32:16 2025
*************** update_symbol_map( symbol_elem_t *e ) {
*** 275,282 ****
  class is_name {
    const char *name;
  public:
!   is_name( const char *name ) : name(name) {}
!   bool operator()( symbol_map_t::value_type& elem ) {
      const bool tf = elem.first == name;
      return tf;
    }
--- 275,282 ----
  class is_name {
    const char *name;
  public:
!   explicit is_name( const char *name ) : name(name) {}
!   bool operator()( const symbol_map_t::value_type& elem ) {
      const bool tf = elem.first == name;
      return tf;
    }
*************** class reduce_ancestry {
*** 298,304 ****
    static symbol_map_t::mapped_type
      candidates_only( const symbol_map_t::value_type& elem ) { return elem.second; }
  public:
!   reduce_ancestry( const symbol_map_t& groups )
      : candidates( groups.size() )
      {
        std::transform( groups.begin(), groups.end(), candidates.begin(),
--- 298,304 ----
    static symbol_map_t::mapped_type
      candidates_only( const symbol_map_t::value_type& elem ) { return elem.second; }
  public:
!   explicit reduce_ancestry( const symbol_map_t& groups )
      : candidates( groups.size() )
      {
        std::transform( groups.begin(), groups.end(), candidates.begin(),
*************** public:
*** 331,337 ****
  class different_program {
    size_t program;
  public:
!   different_program( size_t program ) : program(program) {}
    bool operator()( const symbol_map_t::value_type& item ) const {
      return ! item.first.same_program(program);
    }
--- 331,337 ----
  class different_program {
    size_t program;
  public:
!   explicit different_program( size_t program ) : program(program) {}
    bool operator()( const symbol_map_t::value_type& item ) const {
      return ! item.first.same_program(program);
    }
*************** class in_scope {
*** 346,352 ****
    }
  
  public:
!   in_scope( size_t program ) : program(program) {}
  
    // A symbol is in scope if it's defined by this program or by an ancestor.
    bool operator()( const symbol_map_t::value_type& item ) const {
--- 346,352 ----
    }
  
  public:
!   explicit in_scope( size_t program ) : program(program) {}
  
    // A symbol is in scope if it's defined by this program or by an ancestor.
    bool operator()( const symbol_map_t::value_type& item ) const {
*************** symbol_find( size_t program, std::list<c
*** 561,567 ****
  class in_group {
    size_t group;
  public:
!   in_group( size_t group ) : group(group) {}
  
    bool operator()( symbol_map_t::const_reference elem ) const {
      return 0 < std::count( elem.second.begin(),
--- 561,567 ----
  class in_group {
    size_t group;
  public:
!   explicit in_group( size_t group ) : group(group) {}
  
    bool operator()( symbol_map_t::const_reference elem ) const {
      return 0 < std::count( elem.second.begin(),
diff -Nrcpad gcc-16-20250601/gcc/cobol/util.cc gcc-16-20250608/gcc/cobol/util.cc
*** gcc-16-20250601/gcc/cobol/util.cc	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/util.cc	Sun Jun  8 22:32:16 2025
***************
*** 65,70 ****
--- 65,71 ----
  #include "inspect.h"
  #include "../../libgcobol/io.h"
  #include "genapi.h"
+ #include "genutil.h"
  
  #pragma GCC diagnostic ignored "-Wunused-result"
  #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
*************** get_current_dir_name ()
*** 94,99 ****
--- 95,116 ----
  }
  #endif
  
+ /*
+  * For printing messages, usually the size of the thing is some kind of string
+  * length, and doesn't really need a size_t.  For message formatting, use a
+  * simple unsigned long, and warn if that's no good.  "gb4" here stands for 
+  * "4 Gigabytes".
+  */
+ unsigned long
+ gb4( size_t input ) {
+   if( input != static_cast<unsigned long>(input) ) {
+     yywarn("size too large to print: %lx:%lx",
+ 	   (unsigned long)(input >> (4 * sizeof(unsigned long))),
+ 	   static_cast<unsigned long>(input));
+   }
+   return input;
+ }
+   
  const char *
  symbol_type_str( enum symbol_type_t type )
  {
*************** cobol_fileline_set( const char line[] )
*** 2141,2162 ****
    return file.name;
  }
  
  class cbl_timespec {
!   struct timespec now;
   public:
    cbl_timespec() {
!     clock_gettime(CLOCK_MONOTONIC, &now);
    }
    double ns() const {
!     return now.tv_sec * 1000000000 + now.tv_nsec;
    }
    friend double operator-( const cbl_timespec& now, const cbl_timespec& then );
  };
  
  double
! operator-( const cbl_timespec& then, const cbl_timespec& now ) {
    return (now.ns() - then.ns()) / 1000000000;
  }
  
  static int
  parse_file( const char filename[] )
--- 2158,2182 ----
    return file.name;
  }
  
+ //#define TIMING_PARSE
+ #ifdef TIMING_PARSE
  class cbl_timespec {
!   uint64_t now; // Nanoseconds
   public:
    cbl_timespec() {
!     now = get_time_nanoseconds();
    }
    double ns() const {
!     return now;
    }
    friend double operator-( const cbl_timespec& now, const cbl_timespec& then );
  };
  
  double
! operator-( const cbl_timespec& now, const cbl_timespec& then ) {
    return (now.ns() - then.ns()) / 1000000000;
  }
+ #endif
  
  static int
  parse_file( const char filename[] )
*************** parse_file( const char filename[] )
*** 2172,2186 ****
      return 0;
    }
  
    cbl_timespec start;
  
    int erc = yyparse();
  
    cbl_timespec finish;
    double dt  = finish - start;
    parser_leave_file();
  
-   //printf("Overall parse & generate time is %.6f seconds\n", dt);
  
    fclose (yyin);
  
--- 2192,2211 ----
      return 0;
    }
  
+ #ifdef TIMING_PARSE
    cbl_timespec start;
+ #endif
  
    int erc = yyparse();
  
+ #ifdef TIMING_PARSE
    cbl_timespec finish;
    double dt  = finish - start;
+   printf("Overall parse & generate time is %.6f seconds\n", dt);
+ #endif
+ 
    parser_leave_file();
  
  
    fclose (yyin);
  
diff -Nrcpad gcc-16-20250601/gcc/cobol/util.h gcc-16-20250608/gcc/cobol/util.h
*** gcc-16-20250601/gcc/cobol/util.h	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/cobol/util.h	Sun Jun  8 22:32:16 2025
*************** void cobol_set_pp_option(int opt);
*** 48,52 ****
--- 48,53 ----
  const char * cobol_filename_restore();
  const char * cobol_lineno_save();
  
+ unsigned long gb4( size_t input );
  
  #endif
diff -Nrcpad gcc-16-20250601/gcc/common/config/riscv/riscv-common.cc gcc-16-20250608/gcc/common/config/riscv/riscv-common.cc
*** gcc-16-20250601/gcc/common/config/riscv/riscv-common.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/common/config/riscv/riscv-common.cc	Sun Jun  8 22:32:16 2025
*************** riscv_subset_list::check_implied_ext ()
*** 1129,1136 ****
  void
  riscv_subset_list::handle_combine_ext ()
  {
!   for (const auto &[ext_name, ext_info] : riscv_ext_infos)
      {
        bool is_combined = true;
        /* Skip if this extension don't need to combine.  */
        if (!ext_info.need_combine_p ())
--- 1129,1138 ----
  void
  riscv_subset_list::handle_combine_ext ()
  {
!   for (const auto &pair : riscv_ext_infos)
      {
+       const std::string &ext_name = pair.first;
+       auto &ext_info = pair.second;
        bool is_combined = true;
        /* Skip if this extension don't need to combine.  */
        if (!ext_info.need_combine_p ())
*************** riscv_set_arch_by_subset_list (riscv_sub
*** 1558,1577 ****
    if (opts)
      {
        /* Clean up target flags before we set.  */
!       for (const auto &[ext_name, ext_info] : riscv_ext_infos)
! 	ext_info.clean_opts (opts);
  
        if (subset_list->xlen () == 32)
  	opts->x_riscv_isa_flags &= ~MASK_64BIT;
        else if (subset_list->xlen () == 64)
  	opts->x_riscv_isa_flags |= MASK_64BIT;
  
!       for (const auto &[ext_name, ext_info] : riscv_ext_infos)
! 	if (subset_list->lookup (ext_name.c_str ()))
! 	  {
! 	    /* Set the extension flag.  */
! 	    ext_info.set_opts (opts);
! 	  }
      }
  }
  
--- 1560,1586 ----
    if (opts)
      {
        /* Clean up target flags before we set.  */
!       for (const auto &pair : riscv_ext_infos)
! 	{
! 	  auto &ext_info = pair.second;
! 	  ext_info.clean_opts (opts);
! 	}
  
        if (subset_list->xlen () == 32)
  	opts->x_riscv_isa_flags &= ~MASK_64BIT;
        else if (subset_list->xlen () == 64)
  	opts->x_riscv_isa_flags |= MASK_64BIT;
  
!       for (const auto &pair : riscv_ext_infos)
! 	{
! 	  const std::string &ext_name = pair.first;
! 	  auto &ext_info = pair.second;
! 	  if (subset_list->lookup (ext_name.c_str ()))
! 	    {
! 	      /* Set the extension flag.  */
! 	      ext_info.set_opts (opts);
! 	    }
! 	}
      }
  }
  
diff -Nrcpad gcc-16-20250601/gcc/common.opt.urls gcc-16-20250608/gcc/common.opt.urls
*** gcc-16-20250601/gcc/common.opt.urls	Sun Jun  1 22:32:13 2025
--- gcc-16-20250608/gcc/common.opt.urls	Sun Jun  8 22:32:16 2025
*************** Wmissing-noreturn
*** 159,165 ****
  UrlSuffix(gcc/Warning-Options.html#index-Wmissing-noreturn)
  
  Wmusttail-local-addr
! UrlSuffix(gcc/Warning-Options.html#index-Wno-musttail-local-addr)
  
  Wmaybe-musttail-local-addr
  UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-musttail-local-addr)
--- 159,165 ----
  UrlSuffix(gcc/Warning-Options.html#index-Wmissing-noreturn)
  
  Wmusttail-local-addr
! UrlSuffix(gcc/Warning-Options.html#index-Wmusttail-local-addr)
  
  Wmaybe-musttail-local-addr
  UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-musttail-local-addr)
diff -Nrcpad gcc-16-20250601/gcc/config/aarch64/aarch64-sve-builtins.cc gcc-16-20250608/gcc/config/aarch64/aarch64-sve-builtins.cc
*** gcc-16-20250601/gcc/config/aarch64/aarch64-sve-builtins.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/aarch64/aarch64-sve-builtins.cc	Sun Jun  8 22:32:16 2025
***************
*** 47,52 ****
--- 47,54 ----
  #include "langhooks.h"
  #include "stringpool.h"
  #include "attribs.h"
+ #include "value-range.h"
+ #include "tree-ssanames.h"
  #include "aarch64-sve-builtins.h"
  #include "aarch64-sve-builtins-base.h"
  #include "aarch64-sve-builtins-sve2.h"
*************** gimple_folder::fold_pfalse ()
*** 3664,3670 ****
  /* Convert the lhs and all non-boolean vector-type operands to TYPE.
     Pass the converted variables to the callback FP, and finally convert the
     result back to the original type. Add the necessary conversion statements.
!    Return the new call.  */
  gimple *
  gimple_folder::convert_and_fold (tree type,
  				 gimple *(*fp) (gimple_folder &,
--- 3666,3673 ----
  /* Convert the lhs and all non-boolean vector-type operands to TYPE.
     Pass the converted variables to the callback FP, and finally convert the
     result back to the original type. Add the necessary conversion statements.
!    Return the new call. Note the tree argument to the callback FP, can only
!    be set once; it will always be a SSA_NAME.  */
  gimple *
  gimple_folder::convert_and_fold (tree type,
  				 gimple *(*fp) (gimple_folder &,
*************** gimple_folder::convert_and_fold (tree ty
*** 3675,3681 ****
    tree old_ty = TREE_TYPE (lhs);
    gimple_seq stmts = NULL;
    bool convert_lhs_p = !useless_type_conversion_p (type, old_ty);
!   tree lhs_conv = convert_lhs_p ? create_tmp_var (type) : lhs;
    unsigned int num_args = gimple_call_num_args (call);
    auto_vec<tree, 16> args_conv;
    args_conv.safe_grow (num_args);
--- 3678,3684 ----
    tree old_ty = TREE_TYPE (lhs);
    gimple_seq stmts = NULL;
    bool convert_lhs_p = !useless_type_conversion_p (type, old_ty);
!   tree lhs_conv = convert_lhs_p ? make_ssa_name (type) : lhs;
    unsigned int num_args = gimple_call_num_args (call);
    auto_vec<tree, 16> args_conv;
    args_conv.safe_grow (num_args);
diff -Nrcpad gcc-16-20250601/gcc/config/i386/i386.md gcc-16-20250608/gcc/config/i386/i386.md
*** gcc-16-20250601/gcc/config/i386/i386.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/i386/i386.md	Sun Jun  8 22:32:16 2025
***************
*** 8719,8724 ****
--- 8719,8752 ----
  	      (set (match_dup 1)
  		   (minus:SWI (match_dup 1) (match_dup 0)))])])
  
+ ;; Under APX NDD, 'sub reg, mem, reg' is valid.
+ ;; New format for
+ ;; mov reg0, mem1
+ ;; sub reg0, mem2, reg0
+ ;; mov mem2, reg0
+ ;; to
+ ;; mov reg0, mem1
+ ;; sub mem2, reg0
+ (define_peephole2
+   [(set (match_operand:SWI 0 "general_reg_operand")
+ 	(match_operand:SWI 1 "memory_operand"))
+    (parallel [(set (reg:CC FLAGS_REG)
+ 		   (compare:CC (match_operand:SWI 2 "memory_operand")
+ 			       (match_dup 0)))
+ 	      (set (match_dup 0)
+ 		   (minus:SWI (match_dup 2) (match_dup 0)))])
+    (set (match_dup 2) (match_dup 0))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && peep2_reg_dead_p (3, operands[0])
+    && !reg_overlap_mentioned_p (operands[0], operands[1])
+    && !reg_overlap_mentioned_p (operands[0], operands[2])"
+   [(set (match_dup 0) (match_dup 1))
+    (parallel [(set (reg:CC FLAGS_REG)
+ 		   (compare:CC (match_dup 2) (match_dup 0)))
+ 	      (set (match_dup 2)
+ 		   (minus:SWI (match_dup 2) (match_dup 0)))])])
+ 
  ;; decl %eax; cmpl $-1, %eax; jne .Lxx; can be optimized into
  ;; subl $1, %eax; jnc .Lxx;
  (define_peephole2
***************
*** 9166,9171 ****
--- 9194,9311 ----
  					   (match_dup 1))
  			       (match_dup 0)))])])
  
+ ;; Under APX NDD, 'adc reg, mem, reg' is valid.
+ ;;
+ ;; New format for
+ ;; mov reg0, mem1
+ ;; adc reg0, mem2, reg0
+ ;; mov mem1, reg0
+ ;; to
+ ;; mov reg0, mem2
+ ;; adc mem1, reg0
+ (define_peephole2
+   [(set (match_operand:SWI48 0 "general_reg_operand")
+ 	(match_operand:SWI48 1 "memory_operand"))
+    (parallel [(set (reg:CCC FLAGS_REG)
+ 		   (compare:CCC
+ 		     (zero_extend:<DWI>
+ 		       (plus:SWI48
+ 			 (plus:SWI48
+ 			   (match_operator:SWI48 5 "ix86_carry_flag_operator"
+ 			     [(match_operand 3 "flags_reg_operand")
+ 			      (const_int 0)])
+ 			   (match_operand:SWI48 2 "memory_operand"))
+ 			 (match_dup 0)))
+ 		     (plus:<DWI>
+ 		       (match_operator:<DWI> 4 "ix86_carry_flag_operator"
+ 			 [(match_dup 3) (const_int 0)])
+ 		       (zero_extend:<DWI> (match_dup 0)))))
+ 	      (set (match_dup 0)
+ 		   (plus:SWI48 (plus:SWI48 (match_op_dup 5
+ 					     [(match_dup 3) (const_int 0)])
+ 					   (match_dup 2))
+ 			       (match_dup 0)))])
+    (set (match_dup 1) (match_dup 0))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && peep2_reg_dead_p (3, operands[0])
+    && !reg_overlap_mentioned_p (operands[0], operands[1])
+    && !reg_overlap_mentioned_p (operands[0], operands[2])"
+   [(set (match_dup 0) (match_dup 2))
+    (parallel [(set (reg:CCC FLAGS_REG)
+ 		   (compare:CCC
+ 		     (zero_extend:<DWI>
+ 		       (plus:SWI48
+ 			 (plus:SWI48
+ 			   (match_op_dup 5
+ 			     [(match_dup 3) (const_int 0)])
+ 			   (match_dup 1))
+ 			 (match_dup 0)))
+ 		     (plus:<DWI>
+ 		       (match_op_dup 4
+ 			 [(match_dup 3) (const_int 0)])
+ 		       (zero_extend:<DWI> (match_dup 0)))))
+ 	      (set (match_dup 1)
+ 		   (plus:SWI48 (plus:SWI48 (match_op_dup 5
+ 					     [(match_dup 3) (const_int 0)])
+ 					   (match_dup 1))
+ 			       (match_dup 0)))])])
+ 
+ ;; New format for
+ ;; mov reg0, mem1
+ ;; adc reg0, mem2, reg0
+ ;; mov mem2, reg0
+ ;; to
+ ;; mov reg0, mem1
+ ;; adc mem2, reg0
+ (define_peephole2
+   [(set (match_operand:SWI48 0 "general_reg_operand")
+ 	(match_operand:SWI48 1 "memory_operand"))
+    (parallel [(set (reg:CCC FLAGS_REG)
+ 		   (compare:CCC
+ 		     (zero_extend:<DWI>
+ 		       (plus:SWI48
+ 			 (plus:SWI48
+ 			   (match_operator:SWI48 5 "ix86_carry_flag_operator"
+ 			     [(match_operand 3 "flags_reg_operand")
+ 			      (const_int 0)])
+ 			   (match_operand:SWI48 2 "memory_operand"))
+ 			 (match_dup 0)))
+ 		     (plus:<DWI>
+ 		       (match_operator:<DWI> 4 "ix86_carry_flag_operator"
+ 			 [(match_dup 3) (const_int 0)])
+ 		       (zero_extend:<DWI> (match_dup 0)))))
+ 	      (set (match_dup 0)
+ 		   (plus:SWI48 (plus:SWI48 (match_op_dup 5
+ 					     [(match_dup 3) (const_int 0)])
+ 					   (match_dup 2))
+ 			       (match_dup 0)))])
+    (set (match_dup 2) (match_dup 0))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && peep2_reg_dead_p (3, operands[0])
+    && !reg_overlap_mentioned_p (operands[0], operands[1])
+    && !reg_overlap_mentioned_p (operands[0], operands[2])"
+   [(set (match_dup 0) (match_dup 1))
+    (parallel [(set (reg:CCC FLAGS_REG)
+ 		   (compare:CCC
+ 		     (zero_extend:<DWI>
+ 		       (plus:SWI48
+ 			 (plus:SWI48
+ 			   (match_op_dup 5
+ 			     [(match_dup 3) (const_int 0)])
+ 			   (match_dup 2))
+ 			 (match_dup 0)))
+ 		     (plus:<DWI>
+ 		       (match_op_dup 4
+ 			 [(match_dup 3) (const_int 0)])
+ 		       (zero_extend:<DWI> (match_dup 0)))))
+ 	      (set (match_dup 2)
+ 		   (plus:SWI48 (plus:SWI48 (match_op_dup 5
+ 					     [(match_dup 3) (const_int 0)])
+ 					   (match_dup 2))
+ 			       (match_dup 0)))])])
+ 
  (define_peephole2
    [(parallel [(set (reg:CCC FLAGS_REG)
  		   (compare:CCC
***************
*** 9646,9651 ****
--- 9786,9837 ----
  					       [(match_dup 3) (const_int 0)]))
  				(match_dup 0)))])])
  
+ ;; Under APX NDD, 'sbb reg, mem, reg' is valid.
+ ;;
+ ;; New format for
+ ;; mov reg0, mem1
+ ;; sbb reg0, mem2, reg0
+ ;; mov mem2, reg0
+ ;; to
+ ;; mov reg0, mem1
+ ;; sbb mem2, reg0
+ (define_peephole2
+   [(set (match_operand:SWI48 0 "general_reg_operand")
+ 	(match_operand:SWI48 1 "memory_operand"))
+    (parallel [(set (reg:CCC FLAGS_REG)
+ 		   (compare:CCC
+ 		     (zero_extend:<DWI> (match_operand:SWI48 2 "memory_operand"))
+ 		     (plus:<DWI>
+ 		       (match_operator:<DWI> 4 "ix86_carry_flag_operator"
+ 			 [(match_operand 3 "flags_reg_operand") (const_int 0)])
+ 		       (zero_extend:<DWI>
+ 			 (match_dup 0)))))
+ 	      (set (match_dup 0)
+ 		   (minus:SWI48
+ 		     (minus:SWI48
+ 		       (match_dup 2)
+ 		       (match_operator:SWI48 5 "ix86_carry_flag_operator"
+ 			 [(match_dup 3) (const_int 0)]))
+ 		     (match_dup 0)))])
+    (set (match_dup 2) (match_dup 0))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && peep2_reg_dead_p (3, operands[0])
+    && !reg_overlap_mentioned_p (operands[0], operands[1])
+    && !reg_overlap_mentioned_p (operands[0], operands[2])"
+   [(set (match_dup 0) (match_dup 1))
+    (parallel [(set (reg:CCC FLAGS_REG)
+ 		   (compare:CCC
+ 		     (zero_extend:<DWI> (match_dup 2))
+ 		     (plus:<DWI> (match_op_dup 4
+ 				   [(match_dup 3) (const_int 0)])
+ 				 (zero_extend:<DWI> (match_dup 0)))))
+ 	      (set (match_dup 2)
+ 		   (minus:SWI48 (minus:SWI48 (match_dup 2)
+ 					     (match_op_dup 5
+ 					       [(match_dup 3) (const_int 0)]))
+ 				(match_dup 0)))])])
+ 
  (define_peephole2
    [(set (match_operand:SWI48 6 "general_reg_operand")
  	(match_operand:SWI48 7 "memory_operand"))
***************
*** 26292,26299 ****
  (define_expand "mov<mode>cc"
    [(set (match_operand:SWIM 0 "register_operand")
  	(if_then_else:SWIM (match_operand 1 "comparison_operator")
! 			   (match_operand:SWIM 2 "<general_operand>")
! 			   (match_operand:SWIM 3 "<general_operand>")))]
    ""
    "if (ix86_expand_int_movcc (operands)) DONE; else FAIL;")
  
--- 26478,26485 ----
  (define_expand "mov<mode>cc"
    [(set (match_operand:SWIM 0 "register_operand")
  	(if_then_else:SWIM (match_operand 1 "comparison_operator")
! 			   (match_operand:SWIM 2 "general_operand")
! 			   (match_operand:SWIM 3 "general_operand")))]
    ""
    "if (ix86_expand_int_movcc (operands)) DONE; else FAIL;")
  
***************
*** 28212,28217 ****
--- 28398,28438 ----
  		       const0_rtx);
  })
  
+ ;; For APX NDD PLUS/MINUS/LOGIC
+ ;; Like cmpelim optimized pattern.
+ ;; Reduce an extra mov instruction like
+ ;; decl (%rdi), %eax
+ ;; mov %eax, (%rdi)
+ ;; to
+ ;; decl (%rdi)
+ (define_peephole2
+   [(parallel [(set (reg FLAGS_REG)
+ 		   (compare (match_operator:SWI 2 "plusminuslogic_operator"
+ 			      [(match_operand:SWI 0 "memory_operand")
+ 			       (match_operand:SWI 1 "<nonmemory_operand>")])
+ 			    (const_int 0)))
+ 	      (set (match_operand:SWI 3 "register_operand") (match_dup 2))])
+    (set (match_dup 0) (match_dup 3))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && peep2_reg_dead_p (2, operands[3])
+    && !reg_overlap_mentioned_p (operands[3], operands[0])
+    && ix86_match_ccmode (peep2_next_insn (0),
+ 			 (GET_CODE (operands[2]) == PLUS
+ 			  || GET_CODE (operands[2]) == MINUS)
+ 			 ? CCGOCmode : CCNOmode)"
+   [(parallel [(set (match_dup 4) (match_dup 6))
+ 	      (set (match_dup 0) (match_dup 5))])]
+ {
+   operands[4] = SET_DEST (XVECEXP (PATTERN (peep2_next_insn (0)), 0, 0));
+   operands[5]
+     = gen_rtx_fmt_ee (GET_CODE (operands[2]), GET_MODE (operands[2]),
+ 		      copy_rtx (operands[0]), operands[1]);
+   operands[6]
+     = gen_rtx_COMPARE (GET_MODE (operands[4]), copy_rtx (operands[5]),
+ 		       const0_rtx);
+ })
+ 
  ;; Likewise for instances where we have a lea pattern.
  (define_peephole2
    [(set (match_operand:SWI 0 "register_operand")
***************
*** 28305,28310 ****
--- 28526,28579 ----
  		       const0_rtx);
  })
  
+ ;; For APX NDD XOR
+ ;; Reduce 2 mov and 1 cmp instruction.
+ ;; from
+ ;; movq (%rdi), %rax
+ ;; xorq %rsi, %rax, %rdx
+ ;; movb %rdx, (%rdi)
+ ;; cmpb %rsi, %rax
+ ;; jne
+ ;; to
+ ;; xorb %rsi, (%rdi)
+ ;; jne
+ (define_peephole2
+   [(set (match_operand:SWI 0 "register_operand")
+ 	(match_operand:SWI 1 "memory_operand"))
+    (parallel [(set (match_operand:SWI 4 "register_operand")
+ 		   (xor:SWI (match_operand:SWI 3 "register_operand")
+ 			    (match_operand:SWI 2 "<nonmemory_operand>")))
+ 	      (clobber (reg:CC FLAGS_REG))])
+    (set (match_dup 1) (match_dup 4))
+    (set (reg:CCZ FLAGS_REG)
+ 	(compare:CCZ (match_operand:SWI 5 "register_operand")
+ 		     (match_operand:SWI 6 "<nonmemory_operand>")))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && REGNO (operands[3]) == REGNO (operands[0])
+    && (rtx_equal_p (operands[0], operands[5])
+        ? rtx_equal_p (operands[2], operands[6])
+        : rtx_equal_p (operands[2], operands[5])
+ 	 && rtx_equal_p (operands[0], operands[6]))
+    && peep2_reg_dead_p (3, operands[4])
+    && peep2_reg_dead_p (4, operands[0])
+    && !reg_overlap_mentioned_p (operands[0], operands[1])
+    && !reg_overlap_mentioned_p (operands[0], operands[2])
+    && (<MODE>mode != QImode
+        || immediate_operand (operands[2], QImode)
+        || any_QIreg_operand (operands[2], QImode))"
+   [(parallel [(set (match_dup 7) (match_dup 9))
+ 	      (set (match_dup 1) (match_dup 8))])]
+ {
+   operands[7] = SET_DEST (PATTERN (peep2_next_insn (3)));
+   operands[8] = gen_rtx_XOR (<MODE>mode, copy_rtx (operands[1]),
+ 			     operands[2]);
+   operands[9]
+     = gen_rtx_COMPARE (GET_MODE (operands[7]),
+ 		       copy_rtx (operands[8]),
+ 		       const0_rtx);
+ })
+ 
  (define_peephole2
    [(set (match_operand:SWI12 0 "register_operand")
  	(match_operand:SWI12 1 "memory_operand"))
***************
*** 28543,28548 ****
--- 28812,28869 ----
    operands[9] = gen_rtx_XOR (<MODE>mode, copy_rtx (operands[1]),
  			     gen_lowpart (<MODE>mode, operands[2]));
    operands[10]
+     = gen_rtx_COMPARE (GET_MODE (operands[8]),
+ 		       copy_rtx (operands[9]),
+ 		       const0_rtx);
+ })
+ 
+ ;; For APX NDD XOR
+ ;; Reduce 2 mov and 1 cmp instruction.
+ ;; from
+ ;; movb (%rdi), %al
+ ;; xorl %esi, %eax, %edx
+ ;; movb %dl, (%rdi)
+ ;; cmpb %sil, %al
+ ;; jne
+ ;; to
+ ;; xorl %sil, (%rdi)
+ ;; jne
+ (define_peephole2
+   [(set (match_operand:SWI12 0 "register_operand")
+ 	(match_operand:SWI12 1 "memory_operand"))
+    (parallel [(set (match_operand:SI 4 "register_operand")
+ 		   (xor:SI (match_operand:SI 3 "register_operand")
+ 			   (match_operand:SI 2 "<nonmemory_operand>")))
+ 	      (clobber (reg:CC FLAGS_REG))])
+    (set (match_dup 1) (match_operand:SWI12 5 "register_operand"))
+    (set (reg:CCZ FLAGS_REG)
+ 	(compare:CCZ (match_operand:SWI12 6 "register_operand")
+ 		     (match_operand:SWI12 7 "<nonmemory_operand>")))]
+   "TARGET_APX_NDD
+    && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
+    && REGNO (operands[3]) == REGNO (operands[0])
+    && REGNO (operands[5]) == REGNO (operands[4])
+    && (rtx_equal_p (operands[0], operands[6])
+        ? (REG_P (operands[2])
+ 	  ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
+ 	  : rtx_equal_p (operands[2], operands[7]))
+        : (rtx_equal_p (operands[0], operands[7])
+ 	  && REG_P (operands[2])
+ 	  && REGNO (operands[2]) == REGNO (operands[6])))
+    && peep2_reg_dead_p (3, operands[5])
+    && peep2_reg_dead_p (4, operands[0])
+    && !reg_overlap_mentioned_p (operands[0], operands[1])
+    && !reg_overlap_mentioned_p (operands[0], operands[2])
+    && (<MODE>mode != QImode
+        || immediate_operand (operands[2], SImode)
+        || any_QIreg_operand (operands[2], SImode))"
+   [(parallel [(set (match_dup 8) (match_dup 10))
+ 	      (set (match_dup 1) (match_dup 9))])]
+ {
+   operands[8] = SET_DEST (PATTERN (peep2_next_insn (3)));
+   operands[9] = gen_rtx_XOR (<MODE>mode, copy_rtx (operands[1]),
+ 			     gen_lowpart (<MODE>mode, operands[2]));
+   operands[10]
      = gen_rtx_COMPARE (GET_MODE (operands[8]),
  		       copy_rtx (operands[9]),
  		       const0_rtx);
diff -Nrcpad gcc-16-20250601/gcc/config/i386/sse.md gcc-16-20250608/gcc/config/i386/sse.md
*** gcc-16-20250601/gcc/config/i386/sse.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/i386/sse.md	Sun Jun  8 22:32:16 2025
***************
*** 13418,13424 ****
  		     (const_int 6) (const_int 14)])))]
    "TARGET_AVX512F"
    "vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
!   [(set_attr "type" "sselog1")
     (set_attr "prefix" "evex")
     (set_attr "mode" "V8DF")])
  
--- 13418,13424 ----
  		     (const_int 6) (const_int 14)])))]
    "TARGET_AVX512F"
    "vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
!   [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "V8DF")])
  
***************
*** 13449,13455 ****
  		     (const_int 2) (const_int 6)])))]
    "TARGET_AVX && <mask_avx512vl_condition>"
    "vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
!   [(set_attr "type" "sselog1")
     (set_attr "prefix" "<mask_prefix>")
     (set_attr "mode" "V4DF")])
  
--- 13449,13455 ----
  		     (const_int 2) (const_int 6)])))]
    "TARGET_AVX && <mask_avx512vl_condition>"
    "vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
!   [(set_attr "type" "ssemov")
     (set_attr "prefix" "<mask_prefix>")
     (set_attr "mode" "V4DF")])
  
***************
*** 27839,27845 ****
     %vmovddup\t{%1, %0|%0, %1}
     movlhps\t%0, %0"
    [(set_attr "isa" "sse2_noavx,avx,avx512f,sse3,noavx")
!    (set_attr "type" "sselog1,sselog1,ssemov,sselog1,ssemov")
     (set_attr "prefix" "orig,maybe_evex,evex,maybe_vex,orig")
     (set (attr "mode")
  	(cond [(and (eq_attr "alternative" "2")
--- 27839,27845 ----
     %vmovddup\t{%1, %0|%0, %1}
     movlhps\t%0, %0"
    [(set_attr "isa" "sse2_noavx,avx,avx512f,sse3,noavx")
!    (set_attr "type" "sselog1,sselog1,ssemov,ssemov,ssemov")
     (set_attr "prefix" "orig,maybe_evex,evex,maybe_vex,orig")
     (set (attr "mode")
  	(cond [(and (eq_attr "alternative" "2")
diff -Nrcpad gcc-16-20250601/gcc/config/nvptx/mkoffload.cc gcc-16-20250608/gcc/config/nvptx/mkoffload.cc
*** gcc-16-20250601/gcc/config/nvptx/mkoffload.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/nvptx/mkoffload.cc	Sun Jun  8 22:32:16 2025
*************** process (FILE *in, FILE *out, uint32_t o
*** 260,267 ****
    unsigned ix;
    const char *sm_ver = NULL, *version = NULL;
    const char *sm_ver2 = NULL, *version2 = NULL;
!   size_t file_cnt = 0;
!   size_t *file_idx = XALLOCAVEC (size_t, len);
  
    fprintf (out, "#include <stdint.h>\n\n");
  
--- 260,269 ----
    unsigned ix;
    const char *sm_ver = NULL, *version = NULL;
    const char *sm_ver2 = NULL, *version2 = NULL;
!   /* To reduce the number of reallocations for 'file_idx', guess 'file_cnt'
!      (very roughly...), based on 'len'.  */
!   const size_t file_cnt_guessed = 13 + len / 27720;
!   auto_vec<size_t> file_idx (file_cnt_guessed);
  
    fprintf (out, "#include <stdint.h>\n\n");
  
*************** process (FILE *in, FILE *out, uint32_t o
*** 269,277 ****
       terminated by a NUL.  */
    for (size_t i = 0; i != len;)
      {
        char c;
        bool output_fn_ptr = false;
-       file_idx[file_cnt++] = i;
  
        fprintf (out, "static const char ptx_code_%u[] =\n\t\"", obj_count++);
        while ((c = input[i++]))
--- 271,280 ----
       terminated by a NUL.  */
    for (size_t i = 0; i != len;)
      {
+       file_idx.safe_push (i);
+ 
        char c;
        bool output_fn_ptr = false;
  
        fprintf (out, "static const char ptx_code_%u[] =\n\t\"", obj_count++);
        while ((c = input[i++]))
*************** process (FILE *in, FILE *out, uint32_t o
*** 349,354 ****
--- 352,360 ----
  	}
      }
  
+   const size_t file_cnt = file_idx.length ();
+   gcc_checking_assert (file_cnt == obj_count);
+ 
    /* Create function-pointer array, required for reverse
       offload function-pointer lookup.  */
  
diff -Nrcpad gcc-16-20250601/gcc/config/or1k/or1k.opt gcc-16-20250608/gcc/config/or1k/or1k.opt
*** gcc-16-20250601/gcc/config/or1k/or1k.opt	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/or1k/or1k.opt	Sun Jun  8 22:32:16 2025
*************** are used to perform unordered floating p
*** 69,76 ****
  mcmodel=
  Target RejectNegative Joined Enum(or1k_cmodel_type) Var(or1k_code_model) Init(CMODEL_SMALL)
  Specify the code model used for accessing memory addresses.  Specifying large
! enables generating binaries with large global offset tables.  By default the
! value is small.
  
  Enum
  Name(or1k_cmodel_type) Type(enum or1k_cmodel_type)
--- 69,76 ----
  mcmodel=
  Target RejectNegative Joined Enum(or1k_cmodel_type) Var(or1k_code_model) Init(CMODEL_SMALL)
  Specify the code model used for accessing memory addresses.  Specifying large
! enables generating binaries with large global offset tables and calling
! functions anywhere in an executable.  By default the value is small.
  
  Enum
  Name(or1k_cmodel_type) Type(enum or1k_cmodel_type)
diff -Nrcpad gcc-16-20250601/gcc/config/or1k/predicates.md gcc-16-20250608/gcc/config/or1k/predicates.md
*** gcc-16-20250601/gcc/config/or1k/predicates.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/or1k/predicates.md	Sun Jun  8 22:32:16 2025
***************
*** 61,67 ****
  	 (match_test "TARGET_ROR"))))
  
  (define_predicate "call_insn_operand"
!   (ior (match_code "symbol_ref")
         (match_operand 0 "register_operand")))
  
  (define_predicate "high_operand"
--- 61,68 ----
  	 (match_test "TARGET_ROR"))))
  
  (define_predicate "call_insn_operand"
!   (ior (and (match_code "symbol_ref")
! 	    (match_test "!TARGET_CMODEL_LARGE"))
         (match_operand 0 "register_operand")))
  
  (define_predicate "high_operand"
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/autovec-opt.md gcc-16-20250608/gcc/config/riscv/autovec-opt.md
*** gcc-16-20250601/gcc/config/riscv/autovec-opt.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/autovec-opt.md	Sun Jun  8 22:32:16 2025
***************
*** 1682,1688 ****
  ;; =============================================================================
  (define_insn_and_split "*<optab>_vx_<mode>"
   [(set (match_operand:V_VLSI    0 "register_operand")
!        (any_int_binop_no_shift_vx:V_VLSI
  	 (vec_duplicate:V_VLSI
  	   (match_operand:<VEL> 1 "register_operand"))
  	 (match_operand:V_VLSI  2 "<binop_rhs2_predicate>")))]
--- 1682,1688 ----
  ;; =============================================================================
  (define_insn_and_split "*<optab>_vx_<mode>"
   [(set (match_operand:V_VLSI    0 "register_operand")
!        (any_int_binop_no_shift_vdup_v:V_VLSI
  	 (vec_duplicate:V_VLSI
  	   (match_operand:<VEL> 1 "register_operand"))
  	 (match_operand:V_VLSI  2 "<binop_rhs2_predicate>")))]
***************
*** 1699,1705 ****
  
  (define_insn_and_split "*<optab>_vx_<mode>"
   [(set (match_operand:V_VLSI    0 "register_operand")
!        (any_int_binop_no_shift_vx:V_VLSI
  	 (match_operand:V_VLSI  1 "<binop_rhs2_predicate>")
  	 (vec_duplicate:V_VLSI
  	   (match_operand:<VEL> 2 "register_operand"))))]
--- 1699,1705 ----
  
  (define_insn_and_split "*<optab>_vx_<mode>"
   [(set (match_operand:V_VLSI    0 "register_operand")
!        (any_int_binop_no_shift_v_vdup:V_VLSI
  	 (match_operand:V_VLSI  1 "<binop_rhs2_predicate>")
  	 (vec_duplicate:V_VLSI
  	   (match_operand:<VEL> 2 "register_operand"))))]
***************
*** 1713,1715 ****
--- 1713,1767 ----
  						<MODE>mode);
    }
    [(set_attr "type" "vialu")])
+ 
+ ;; =============================================================================
+ ;; Combine vec_duplicate + op.vv to op.vf
+ ;; Include
+ ;; - vfmadd.vf
+ ;; - vfmsub.vf
+ ;; =============================================================================
+ 
+ 
+ (define_insn_and_split "*<optab>_vf_<mode>"
+   [(set (match_operand:V_VLSF 0 "register_operand"		"=vd")
+     (plus_minus:V_VLSF
+ 	    (mult:V_VLSF
+ 	      (vec_duplicate:V_VLSF
+ 		(match_operand:<VEL> 1 "register_operand"	"  f"))
+ 	      (match_operand:V_VLSF 2 "register_operand"	"  0"))
+ 	    (match_operand:V_VLSF 3 "register_operand"		" vr")))]
+   "TARGET_VECTOR && can_create_pseudo_p ()"
+   "#"
+   "&& 1"
+   [(const_int 0)]
+   {
+     rtx ops[] = {operands[0], operands[1], operands[2], operands[3],
+ 		 operands[2]};
+     riscv_vector::emit_vlmax_insn (code_for_pred_mul_scalar (<CODE>, <MODE>mode),
+ 				   riscv_vector::TERNARY_OP_FRM_DYN, ops);
+     DONE;
+   }
+   [(set_attr "type" "vfmuladd")]
+ )
+ 
+ (define_insn_and_split "*<optab>_vf_<mode>"
+   [(set (match_operand:V_VLSF 0 "register_operand"		"=vd")
+     (plus_minus:V_VLSF
+ 	    (match_operand:V_VLSF 3 "register_operand"		" vr")
+ 	    (mult:V_VLSF
+ 	      (vec_duplicate:V_VLSF
+ 		(match_operand:<VEL> 1 "register_operand"	"  f"))
+ 	      (match_operand:V_VLSF 2 "register_operand"	"  0"))))]
+   "TARGET_VECTOR && can_create_pseudo_p ()"
+   "#"
+   "&& 1"
+   [(const_int 0)]
+   {
+     rtx ops[] = {operands[0], operands[1], operands[2], operands[3],
+ 		 operands[2]};
+     riscv_vector::emit_vlmax_insn (code_for_pred_mul_scalar (<CODE>, <MODE>mode),
+ 				   riscv_vector::TERNARY_OP_FRM_DYN, ops);
+     DONE;
+   }
+   [(set_attr "type" "vfmuladd")]
+ )
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-c.cc gcc-16-20250608/gcc/config/riscv/riscv-c.cc
*** gcc-16-20250601/gcc/config/riscv/riscv-c.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-c.cc	Sun Jun  8 22:32:17 2025
*************** riscv_cpu_cpp_builtins (cpp_reader *pfil
*** 239,264 ****
    size_t max_ext_len = 0;
  
    /* Figure out the max length of extension name for reserving buffer.   */
!   for (const riscv_subset_t *subset = subset_list->begin ();
!        subset != subset_list->end ();
!        subset = subset->next)
!     max_ext_len = MAX (max_ext_len, subset->name.length ());
  
    char *buf = (char *)alloca (max_ext_len + 10 /* For __riscv_ and '\0'.  */);
  
!   for (const riscv_subset_t *subset = subset_list->begin ();
!        subset != subset_list->end ();
!        subset = subset->next)
      {
!       int version_value = riscv_ext_version_value (subset->major_version,
! 						   subset->minor_version);
        /* Special rule for zicsr and zifencei, it's used for ISA spec 2.2 or
  	 earlier.  */
!       if ((subset->name == "zicsr" || subset->name == "zifencei")
  	  && version_value == 0)
  	version_value = riscv_ext_version_value (2, 0);
  
!       sprintf (buf, "__riscv_%s", subset->name.c_str ());
        builtin_define_with_int_value (buf, version_value);
      }
  }
--- 239,260 ----
    size_t max_ext_len = 0;
  
    /* Figure out the max length of extension name for reserving buffer.   */
!   for (auto &subset : *subset_list)
!     max_ext_len = MAX (max_ext_len, subset.name.length ());
  
    char *buf = (char *)alloca (max_ext_len + 10 /* For __riscv_ and '\0'.  */);
  
!   for (auto &subset : *subset_list)
      {
!       int version_value = riscv_ext_version_value (subset.major_version,
! 						   subset.minor_version);
        /* Special rule for zicsr and zifencei, it's used for ISA spec 2.2 or
  	 earlier.  */
!       if ((subset.name == "zicsr" || subset.name == "zifencei")
  	  && version_value == 0)
  	version_value = riscv_ext_version_value (2, 0);
  
!       sprintf (buf, "__riscv_%s", subset.name.c_str ());
        builtin_define_with_int_value (buf, version_value);
      }
  }
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-cores.def gcc-16-20250608/gcc/config/riscv/riscv-cores.def
*** gcc-16-20250601/gcc/config/riscv/riscv-cores.def	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-cores.def	Sun Jun  8 22:32:17 2025
*************** RISCV_TUNE("xt-c910v2", generic, generic
*** 48,53 ****
--- 48,54 ----
  RISCV_TUNE("xt-c920", generic, generic_ooo_tune_info)
  RISCV_TUNE("xt-c920v2", generic, generic_ooo_tune_info)
  RISCV_TUNE("xiangshan-nanhu", xiangshan, xiangshan_nanhu_tune_info)
+ RISCV_TUNE("xiangshan-kunminghu", xiangshan, generic_ooo_tune_info)
  RISCV_TUNE("generic-ooo", generic_ooo, generic_ooo_tune_info)
  RISCV_TUNE("size", generic, optimize_size_tune_info)
  RISCV_TUNE("mips-p8700", mips_p8700, mips_p8700_tune_info)
*************** RISCV_CORE("xiangshan-nanhu",      "rv64
*** 154,159 ****
--- 155,173 ----
  			      "svinval_zicbom_zicboz",
  			      "xiangshan-nanhu")
  
+ RISCV_CORE("xiangshan-kunminghu",   "rv64imafdcbvh_sdtrig_sha_shcounterenw_"
+ 			      "shgatpa_shlcofideleg_shtvala_shvsatpa_shvstvala_shvstvecd_"
+ 			      "smaia_smcsrind_smdbltrp_smmpm_smnpm_smrnmi_smstateen_"
+ 			      "ssaia_ssccptr_sscofpmf_sscounterenw_sscsrind_ssdbltrp_"
+ 			      "ssnpm_sspm_ssstateen_ssstrict_sstc_sstvala_sstvecd_"
+ 			      "ssu64xl_supm_svade_svbare_svinval_svnapot_svpbmt_za64rs_"
+ 			      "zacas_zawrs_zba_zbb_zbc_zbkb_zbkc_zbkx_zbs_zcb_zcmop_"
+ 			      "zfa_zfh_zfhmin_zic64b_zicbom_zicbop_zicboz_ziccif_"
+ 			      "zicclsm_ziccrse_zicntr_zicond_zicsr_zifencei_zihintpause_"
+ 			      "zihpm_zimop_zkn_zknd_zkne_zknh_zksed_zksh_zkt_zvbb_zvfh_"
+ 			      "zvfhmin_zvkt_zvl128b_zvl32b_zvl64b",
+ 			      "xiangshan-kunminghu")
+ 
  RISCV_CORE("mips-p8700",     	"rv64imafd_zicsr_zmmul_"
  			      "zaamo_zalrsc_zba_zbb",
  			      "mips-p8700")
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-ext.def gcc-16-20250608/gcc/config/riscv/riscv-ext.def
*** gcc-16-20250601/gcc/config/riscv/riscv-ext.def	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-ext.def	Sun Jun  8 22:32:17 2025
*************** Format of DEFINE_RISCV_EXT:
*** 73,79 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ e,
!   /* UPPERCAE_NAME */ RVE,
    /* FULL_NAME */ "Reduced base integer extension",
    /* DESC */ "",
    /* URL */ ,
--- 73,79 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ e,
!   /* UPPERCASE_NAME */ RVE,
    /* FULL_NAME */ "Reduced base integer extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 86,92 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ i,
!   /* UPPERCAE_NAME */ RVI,
    /* FULL_NAME */ "Base integer extension",
    /* DESC */ "",
    /* URL */ ,
--- 86,92 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ i,
!   /* UPPERCASE_NAME */ RVI,
    /* FULL_NAME */ "Base integer extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 101,107 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ m,
!   /* UPPERCAE_NAME */ MUL,
    /* FULL_NAME */ "Integer multiplication and division extension",
    /* DESC */ "",
    /* URL */ ,
--- 101,107 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ m,
!   /* UPPERCASE_NAME */ MUL,
    /* FULL_NAME */ "Integer multiplication and division extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 114,120 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ a,
!   /* UPPERCAE_NAME */ ATOMIC,
    /* FULL_NAME */ "Atomic extension",
    /* DESC */ "",
    /* URL */ ,
--- 114,120 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ a,
!   /* UPPERCASE_NAME */ ATOMIC,
    /* FULL_NAME */ "Atomic extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 129,135 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ f,
!   /* UPPERCAE_NAME */ HARD_FLOAT,
    /* FULL_NAME */ "Single-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 129,135 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ f,
!   /* UPPERCASE_NAME */ HARD_FLOAT,
    /* FULL_NAME */ "Single-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 144,150 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ d,
!   /* UPPERCAE_NAME */ DOUBLE_FLOAT,
    /* FULL_NAME */ "Double-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 144,150 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ d,
!   /* UPPERCASE_NAME */ DOUBLE_FLOAT,
    /* FULL_NAME */ "Double-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 159,165 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ c,
!   /* UPPERCAE_NAME */ RVC,
    /* FULL_NAME */ "Compressed extension",
    /* DESC */ "",
    /* URL */ ,
--- 159,165 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ c,
!   /* UPPERCASE_NAME */ RVC,
    /* FULL_NAME */ "Compressed extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 183,189 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ b,
!   /* UPPERCAE_NAME */ RVB,
    /* FULL_NAME */ "b extension",
    /* DESC */ "",
    /* URL */ ,
--- 183,189 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ b,
!   /* UPPERCASE_NAME */ RVB,
    /* FULL_NAME */ "b extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 196,202 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ v,
!   /* UPPERCAE_NAME */ RVV,
    /* FULL_NAME */ "Vector extension",
    /* DESC */ "",
    /* URL */ ,
--- 196,202 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ v,
!   /* UPPERCASE_NAME */ RVV,
    /* FULL_NAME */ "Vector extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 209,215 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ h,
!   /* UPPERCAE_NAME */ RVH,
    /* FULL_NAME */ "Hypervisor extension",
    /* DESC */ "",
    /* URL */ ,
--- 209,215 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ h,
!   /* UPPERCASE_NAME */ RVH,
    /* FULL_NAME */ "Hypervisor extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 222,228 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zic64b,
!   /* UPPERCAE_NAME */ ZIC64B,
    /* FULL_NAME */ "Cache block size isf 64 bytes",
    /* DESC */ "",
    /* URL */ ,
--- 222,228 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zic64b,
!   /* UPPERCASE_NAME */ ZIC64B,
    /* FULL_NAME */ "Cache block size isf 64 bytes",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 235,241 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicbom,
!   /* UPPERCAE_NAME */ ZICBOM,
    /* FULL_NAME */ "Cache-block management extension",
    /* DESC */ "",
    /* URL */ ,
--- 235,241 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicbom,
!   /* UPPERCASE_NAME */ ZICBOM,
    /* FULL_NAME */ "Cache-block management extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 248,254 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicbop,
!   /* UPPERCAE_NAME */ ZICBOP,
    /* FULL_NAME */ "Cache-block prefetch extension",
    /* DESC */ "",
    /* URL */ ,
--- 248,254 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicbop,
!   /* UPPERCASE_NAME */ ZICBOP,
    /* FULL_NAME */ "Cache-block prefetch extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 261,267 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicboz,
!   /* UPPERCAE_NAME */ ZICBOZ,
    /* FULL_NAME */ "Cache-block zero extension",
    /* DESC */ "",
    /* URL */ ,
--- 261,267 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicboz,
!   /* UPPERCASE_NAME */ ZICBOZ,
    /* FULL_NAME */ "Cache-block zero extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 274,280 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ziccamoa,
!   /* UPPERCAE_NAME */ ZICCAMOA,
    /* FULL_NAME */ "Main memory supports all atomics in A",
    /* DESC */ "",
    /* URL */ ,
--- 274,280 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ziccamoa,
!   /* UPPERCASE_NAME */ ZICCAMOA,
    /* FULL_NAME */ "Main memory supports all atomics in A",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 287,293 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ziccif,
!   /* UPPERCAE_NAME */ ZICCIF,
    /* FULL_NAME */ "Main memory supports instruction fetch with atomicity requirement",
    /* DESC */ "",
    /* URL */ ,
--- 287,293 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ziccif,
!   /* UPPERCASE_NAME */ ZICCIF,
    /* FULL_NAME */ "Main memory supports instruction fetch with atomicity requirement",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 300,306 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicclsm,
!   /* UPPERCAE_NAME */ ZICCLSM,
    /* FULL_NAME */ "Main memory supports misaligned loads/stores",
    /* DESC */ "",
    /* URL */ ,
--- 300,306 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicclsm,
!   /* UPPERCASE_NAME */ ZICCLSM,
    /* FULL_NAME */ "Main memory supports misaligned loads/stores",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 313,319 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ziccrse,
!   /* UPPERCAE_NAME */ ZICCRSE,
    /* FULL_NAME */ "Main memory supports forward progress on LR/SC sequences",
    /* DESC */ "",
    /* URL */ ,
--- 313,319 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ziccrse,
!   /* UPPERCASE_NAME */ ZICCRSE,
    /* FULL_NAME */ "Main memory supports forward progress on LR/SC sequences",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 326,332 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicfilp,
!   /* UPPERCAE_NAME */ ZICFILP,
    /* FULL_NAME */ "zicfilp extension",
    /* DESC */ "",
    /* URL */ ,
--- 326,332 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicfilp,
!   /* UPPERCASE_NAME */ ZICFILP,
    /* FULL_NAME */ "zicfilp extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 339,345 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicfiss,
!   /* UPPERCAE_NAME */ ZICFISS,
    /* FULL_NAME */ "zicfiss extension",
    /* DESC */ "",
    /* URL */ ,
--- 339,345 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicfiss,
!   /* UPPERCASE_NAME */ ZICFISS,
    /* FULL_NAME */ "zicfiss extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 352,358 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicntr,
!   /* UPPERCAE_NAME */ ZICNTR,
    /* FULL_NAME */ "Standard extension for base counters and timers",
    /* DESC */ "",
    /* URL */ ,
--- 352,358 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicntr,
!   /* UPPERCASE_NAME */ ZICNTR,
    /* FULL_NAME */ "Standard extension for base counters and timers",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 365,371 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicond,
!   /* UPPERCAE_NAME */ ZICOND,
    /* FULL_NAME */ "Integer conditional operations extension",
    /* DESC */ "",
    /* URL */ ,
--- 365,371 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicond,
!   /* UPPERCASE_NAME */ ZICOND,
    /* FULL_NAME */ "Integer conditional operations extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 378,384 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicsr,
!   /* UPPERCAE_NAME */ ZICSR,
    /* FULL_NAME */ "Control and status register access extension",
    /* DESC */ "",
    /* URL */ ,
--- 378,384 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zicsr,
!   /* UPPERCASE_NAME */ ZICSR,
    /* FULL_NAME */ "Control and status register access extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 391,397 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zifencei,
!   /* UPPERCAE_NAME */ ZIFENCEI,
    /* FULL_NAME */ "Instruction-fetch fence extension",
    /* DESC */ "",
    /* URL */ ,
--- 391,397 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zifencei,
!   /* UPPERCASE_NAME */ ZIFENCEI,
    /* FULL_NAME */ "Instruction-fetch fence extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 404,410 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zihintntl,
!   /* UPPERCAE_NAME */ ZIHINTNTL,
    /* FULL_NAME */ "Non-temporal locality hints extension",
    /* DESC */ "",
    /* URL */ ,
--- 404,410 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zihintntl,
!   /* UPPERCASE_NAME */ ZIHINTNTL,
    /* FULL_NAME */ "Non-temporal locality hints extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 417,423 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zihintpause,
!   /* UPPERCAE_NAME */ ZIHINTPAUSE,
    /* FULL_NAME */ "Pause hint extension",
    /* DESC */ "",
    /* URL */ ,
--- 417,423 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zihintpause,
!   /* UPPERCASE_NAME */ ZIHINTPAUSE,
    /* FULL_NAME */ "Pause hint extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 430,436 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zihpm,
!   /* UPPERCAE_NAME */ ZIHPM,
    /* FULL_NAME */ "Standard extension for hardware performance counters",
    /* DESC */ "",
    /* URL */ ,
--- 430,436 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zihpm,
!   /* UPPERCASE_NAME */ ZIHPM,
    /* FULL_NAME */ "Standard extension for hardware performance counters",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 443,449 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zimop,
!   /* UPPERCAE_NAME */ ZIMOP,
    /* FULL_NAME */ "zimop extension",
    /* DESC */ "",
    /* URL */ ,
--- 443,449 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zimop,
!   /* UPPERCASE_NAME */ ZIMOP,
    /* FULL_NAME */ "zimop extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 456,462 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zilsd,
!   /* UPPERCAE_NAME */ ZILSD,
    /* FULL_NAME */ "Load/Store pair instructions extension",
    /* DESC */ "",
    /* URL */ ,
--- 456,462 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zilsd,
!   /* UPPERCASE_NAME */ ZILSD,
    /* FULL_NAME */ "Load/Store pair instructions extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 469,475 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zmmul,
!   /* UPPERCAE_NAME */ ZMMUL,
    /* FULL_NAME */ "Integer multiplication extension",
    /* DESC */ "",
    /* URL */ ,
--- 469,475 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zmmul,
!   /* UPPERCASE_NAME */ ZMMUL,
    /* FULL_NAME */ "Integer multiplication extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 482,488 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ za128rs,
!   /* UPPERCAE_NAME */ ZA128RS,
    /* FULL_NAME */ "Reservation set size of 128 bytes",
    /* DESC */ "",
    /* URL */ ,
--- 482,488 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ za128rs,
!   /* UPPERCASE_NAME */ ZA128RS,
    /* FULL_NAME */ "Reservation set size of 128 bytes",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 495,501 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ za64rs,
!   /* UPPERCAE_NAME */ ZA64RS,
    /* FULL_NAME */ "Reservation set size of 64 bytes",
    /* DESC */ "",
    /* URL */ ,
--- 495,501 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ za64rs,
!   /* UPPERCASE_NAME */ ZA64RS,
    /* FULL_NAME */ "Reservation set size of 64 bytes",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 508,514 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zaamo,
!   /* UPPERCAE_NAME */ ZAAMO,
    /* FULL_NAME */ "zaamo extension",
    /* DESC */ "",
    /* URL */ ,
--- 508,514 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zaamo,
!   /* UPPERCASE_NAME */ ZAAMO,
    /* FULL_NAME */ "zaamo extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 521,527 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zabha,
!   /* UPPERCAE_NAME */ ZABHA,
    /* FULL_NAME */ "zabha extension",
    /* DESC */ "",
    /* URL */ ,
--- 521,527 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zabha,
!   /* UPPERCASE_NAME */ ZABHA,
    /* FULL_NAME */ "zabha extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 534,540 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zacas,
!   /* UPPERCAE_NAME */ ZACAS,
    /* FULL_NAME */ "zacas extension",
    /* DESC */ "",
    /* URL */ ,
--- 534,540 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zacas,
!   /* UPPERCASE_NAME */ ZACAS,
    /* FULL_NAME */ "zacas extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 547,553 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zalrsc,
!   /* UPPERCAE_NAME */ ZALRSC,
    /* FULL_NAME */ "zalrsc extension",
    /* DESC */ "",
    /* URL */ ,
--- 547,553 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zalrsc,
!   /* UPPERCASE_NAME */ ZALRSC,
    /* FULL_NAME */ "zalrsc extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 560,566 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zawrs,
!   /* UPPERCAE_NAME */ ZAWRS,
    /* FULL_NAME */ "Wait-on-reservation-set extension",
    /* DESC */ "",
    /* URL */ ,
--- 560,566 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zawrs,
!   /* UPPERCASE_NAME */ ZAWRS,
    /* FULL_NAME */ "Wait-on-reservation-set extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 573,579 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zama16b,
!   /* UPPERCAE_NAME */ ZAMA16B,
    /* FULL_NAME */ "Zama16b extension",
    /* DESC */ "Misaligned loads, stores, and AMOs to main memory regions that do"
  	     " not cross a naturally aligned 16-byte boundary are atomic.",
--- 573,579 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zama16b,
!   /* UPPERCASE_NAME */ ZAMA16B,
    /* FULL_NAME */ "Zama16b extension",
    /* DESC */ "Misaligned loads, stores, and AMOs to main memory regions that do"
  	     " not cross a naturally aligned 16-byte boundary are atomic.",
*************** DEFINE_RISCV_EXT(
*** 587,593 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfa,
!   /* UPPERCAE_NAME */ ZFA,
    /* FULL_NAME */ "Additional floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 587,593 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfa,
!   /* UPPERCASE_NAME */ ZFA,
    /* FULL_NAME */ "Additional floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 600,606 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfbfmin,
!   /* UPPERCAE_NAME */ ZFBFMIN,
    /* FULL_NAME */ "zfbfmin extension",
    /* DESC */ "",
    /* URL */ ,
--- 600,606 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfbfmin,
!   /* UPPERCASE_NAME */ ZFBFMIN,
    /* FULL_NAME */ "zfbfmin extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 613,619 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfh,
!   /* UPPERCAE_NAME */ ZFH,
    /* FULL_NAME */ "Half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 613,619 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfh,
!   /* UPPERCASE_NAME */ ZFH,
    /* FULL_NAME */ "Half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 626,632 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfhmin,
!   /* UPPERCAE_NAME */ ZFHMIN,
    /* FULL_NAME */ "Minimal half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 626,632 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfhmin,
!   /* UPPERCASE_NAME */ ZFHMIN,
    /* FULL_NAME */ "Minimal half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 639,645 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfinx,
!   /* UPPERCAE_NAME */ ZFINX,
    /* FULL_NAME */ "Single-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
--- 639,645 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zfinx,
!   /* UPPERCASE_NAME */ ZFINX,
    /* FULL_NAME */ "Single-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 652,658 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zdinx,
!   /* UPPERCAE_NAME */ ZDINX,
    /* FULL_NAME */ "Double-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
--- 652,658 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zdinx,
!   /* UPPERCASE_NAME */ ZDINX,
    /* FULL_NAME */ "Double-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 665,671 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zca,
!   /* UPPERCAE_NAME */ ZCA,
    /* FULL_NAME */ "Integer compressed instruction extension",
    /* DESC */ "",
    /* URL */ ,
--- 665,671 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zca,
!   /* UPPERCASE_NAME */ ZCA,
    /* FULL_NAME */ "Integer compressed instruction extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 709,715 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcb,
!   /* UPPERCAE_NAME */ ZCB,
    /* FULL_NAME */ "Simple compressed instruction extension",
    /* DESC */ "",
    /* URL */ ,
--- 709,715 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcb,
!   /* UPPERCASE_NAME */ ZCB,
    /* FULL_NAME */ "Simple compressed instruction extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 722,728 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcd,
!   /* UPPERCAE_NAME */ ZCD,
    /* FULL_NAME */ "Compressed double-precision floating point loads and stores extension",
    /* DESC */ "",
    /* URL */ ,
--- 722,728 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcd,
!   /* UPPERCASE_NAME */ ZCD,
    /* FULL_NAME */ "Compressed double-precision floating point loads and stores extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 735,741 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zce,
!   /* UPPERCAE_NAME */ ZCE,
    /* FULL_NAME */ "Compressed instruction extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
--- 735,741 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zce,
!   /* UPPERCASE_NAME */ ZCE,
    /* FULL_NAME */ "Compressed instruction extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 754,760 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcf,
!   /* UPPERCAE_NAME */ ZCF,
    /* FULL_NAME */ "Compressed single-precision floating point loads and stores extension",
    /* DESC */ "",
    /* URL */ ,
--- 754,760 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcf,
!   /* UPPERCASE_NAME */ ZCF,
    /* FULL_NAME */ "Compressed single-precision floating point loads and stores extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 767,773 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcmop,
!   /* UPPERCAE_NAME */ ZCMOP,
    /* FULL_NAME */ "zcmop extension",
    /* DESC */ "",
    /* URL */ ,
--- 767,773 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcmop,
!   /* UPPERCASE_NAME */ ZCMOP,
    /* FULL_NAME */ "zcmop extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 780,786 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcmp,
!   /* UPPERCAE_NAME */ ZCMP,
    /* FULL_NAME */ "Compressed push pop extension",
    /* DESC */ "",
    /* URL */ ,
--- 780,786 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcmp,
!   /* UPPERCASE_NAME */ ZCMP,
    /* FULL_NAME */ "Compressed push pop extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 793,799 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcmt,
!   /* UPPERCAE_NAME */ ZCMT,
    /* FULL_NAME */ "Table jump instruction extension",
    /* DESC */ "",
    /* URL */ ,
--- 793,799 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zcmt,
!   /* UPPERCASE_NAME */ ZCMT,
    /* FULL_NAME */ "Table jump instruction extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 806,812 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zclsd,
!   /* UPPERCAE_NAME */ ZCLSD,
    /* FULL_NAME */ "Compressed load/store pair instructions extension",
    /* DESC */ "",
    /* URL */ ,
--- 806,812 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zclsd,
!   /* UPPERCASE_NAME */ ZCLSD,
    /* FULL_NAME */ "Compressed load/store pair instructions extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 819,825 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zba,
!   /* UPPERCAE_NAME */ ZBA,
    /* FULL_NAME */ "Address calculation extension",
    /* DESC */ "",
    /* URL */ ,
--- 819,825 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zba,
!   /* UPPERCASE_NAME */ ZBA,
    /* FULL_NAME */ "Address calculation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 832,838 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbb,
!   /* UPPERCAE_NAME */ ZBB,
    /* FULL_NAME */ "Basic bit manipulation extension",
    /* DESC */ "",
    /* URL */ ,
--- 832,838 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbb,
!   /* UPPERCASE_NAME */ ZBB,
    /* FULL_NAME */ "Basic bit manipulation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 845,851 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbc,
!   /* UPPERCAE_NAME */ ZBC,
    /* FULL_NAME */ "Carry-less multiplication extension",
    /* DESC */ "",
    /* URL */ ,
--- 845,851 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbc,
!   /* UPPERCASE_NAME */ ZBC,
    /* FULL_NAME */ "Carry-less multiplication extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 858,864 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbkb,
!   /* UPPERCAE_NAME */ ZBKB,
    /* FULL_NAME */ "Cryptography bit-manipulation extension",
    /* DESC */ "",
    /* URL */ ,
--- 858,864 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbkb,
!   /* UPPERCASE_NAME */ ZBKB,
    /* FULL_NAME */ "Cryptography bit-manipulation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 871,877 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbkc,
!   /* UPPERCAE_NAME */ ZBKC,
    /* FULL_NAME */ "Cryptography carry-less multiply extension",
    /* DESC */ "",
    /* URL */ ,
--- 871,877 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbkc,
!   /* UPPERCASE_NAME */ ZBKC,
    /* FULL_NAME */ "Cryptography carry-less multiply extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 884,890 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbkx,
!   /* UPPERCAE_NAME */ ZBKX,
    /* FULL_NAME */ "Cryptography crossbar permutation extension",
    /* DESC */ "",
    /* URL */ ,
--- 884,890 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbkx,
!   /* UPPERCASE_NAME */ ZBKX,
    /* FULL_NAME */ "Cryptography crossbar permutation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 897,903 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbs,
!   /* UPPERCAE_NAME */ ZBS,
    /* FULL_NAME */ "Single-bit operation extension",
    /* DESC */ "",
    /* URL */ ,
--- 897,903 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zbs,
!   /* UPPERCASE_NAME */ ZBS,
    /* FULL_NAME */ "Single-bit operation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 910,916 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zk,
!   /* UPPERCAE_NAME */ ZK,
    /* FULL_NAME */ "Standard scalar cryptography extension",
    /* DESC */ "",
    /* URL */ ,
--- 910,916 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zk,
!   /* UPPERCASE_NAME */ ZK,
    /* FULL_NAME */ "Standard scalar cryptography extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 923,929 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkn,
!   /* UPPERCAE_NAME */ ZKN,
    /* FULL_NAME */ "NIST algorithm suite extension",
    /* DESC */ "",
    /* URL */ ,
--- 923,929 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkn,
!   /* UPPERCASE_NAME */ ZKN,
    /* FULL_NAME */ "NIST algorithm suite extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 936,942 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zknd,
!   /* UPPERCAE_NAME */ ZKND,
    /* FULL_NAME */ "AES Decryption extension",
    /* DESC */ "",
    /* URL */ ,
--- 936,942 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zknd,
!   /* UPPERCASE_NAME */ ZKND,
    /* FULL_NAME */ "AES Decryption extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 949,955 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkne,
!   /* UPPERCAE_NAME */ ZKNE,
    /* FULL_NAME */ "AES Encryption extension",
    /* DESC */ "",
    /* URL */ ,
--- 949,955 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkne,
!   /* UPPERCASE_NAME */ ZKNE,
    /* FULL_NAME */ "AES Encryption extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 962,968 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zknh,
!   /* UPPERCAE_NAME */ ZKNH,
    /* FULL_NAME */ "Hash function extension",
    /* DESC */ "",
    /* URL */ ,
--- 962,968 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zknh,
!   /* UPPERCASE_NAME */ ZKNH,
    /* FULL_NAME */ "Hash function extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 975,981 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkr,
!   /* UPPERCAE_NAME */ ZKR,
    /* FULL_NAME */ "Entropy source extension",
    /* DESC */ "",
    /* URL */ ,
--- 975,981 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkr,
!   /* UPPERCASE_NAME */ ZKR,
    /* FULL_NAME */ "Entropy source extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 988,994 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zks,
!   /* UPPERCAE_NAME */ ZKS,
    /* FULL_NAME */ "ShangMi algorithm suite extension",
    /* DESC */ "",
    /* URL */ ,
--- 988,994 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zks,
!   /* UPPERCASE_NAME */ ZKS,
    /* FULL_NAME */ "ShangMi algorithm suite extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1001,1007 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zksed,
!   /* UPPERCAE_NAME */ ZKSED,
    /* FULL_NAME */ "SM4 block cipher extension",
    /* DESC */ "",
    /* URL */ ,
--- 1001,1007 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zksed,
!   /* UPPERCASE_NAME */ ZKSED,
    /* FULL_NAME */ "SM4 block cipher extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1014,1020 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zksh,
!   /* UPPERCAE_NAME */ ZKSH,
    /* FULL_NAME */ "SM3 hash function extension",
    /* DESC */ "",
    /* URL */ ,
--- 1014,1020 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zksh,
!   /* UPPERCASE_NAME */ ZKSH,
    /* FULL_NAME */ "SM3 hash function extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1027,1033 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkt,
!   /* UPPERCAE_NAME */ ZKT,
    /* FULL_NAME */ "Data independent execution latency extension",
    /* DESC */ "",
    /* URL */ ,
--- 1027,1033 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zkt,
!   /* UPPERCASE_NAME */ ZKT,
    /* FULL_NAME */ "Data independent execution latency extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1040,1046 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ztso,
!   /* UPPERCAE_NAME */ ZTSO,
    /* FULL_NAME */ "Total store ordering extension",
    /* DESC */ "",
    /* URL */ ,
--- 1040,1046 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ztso,
!   /* UPPERCASE_NAME */ ZTSO,
    /* FULL_NAME */ "Total store ordering extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1053,1059 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvbb,
!   /* UPPERCAE_NAME */ ZVBB,
    /* FULL_NAME */ "Vector basic bit-manipulation extension",
    /* DESC */ "",
    /* URL */ ,
--- 1053,1059 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvbb,
!   /* UPPERCASE_NAME */ ZVBB,
    /* FULL_NAME */ "Vector basic bit-manipulation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1066,1072 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvbc,
!   /* UPPERCAE_NAME */ ZVBC,
    /* FULL_NAME */ "Vector carryless multiplication extension",
    /* DESC */ "",
    /* URL */ ,
--- 1066,1072 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvbc,
!   /* UPPERCASE_NAME */ ZVBC,
    /* FULL_NAME */ "Vector carryless multiplication extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1079,1085 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve32f,
!   /* UPPERCAE_NAME */ ZVE32F,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
--- 1079,1085 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve32f,
!   /* UPPERCASE_NAME */ ZVE32F,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1092,1098 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve32x,
!   /* UPPERCAE_NAME */ ZVE32X,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
--- 1092,1098 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve32x,
!   /* UPPERCASE_NAME */ ZVE32X,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1105,1111 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve64d,
!   /* UPPERCAE_NAME */ ZVE64D,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
--- 1105,1111 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve64d,
!   /* UPPERCASE_NAME */ ZVE64D,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1118,1124 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve64f,
!   /* UPPERCAE_NAME */ ZVE64F,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
--- 1118,1124 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve64f,
!   /* UPPERCASE_NAME */ ZVE64F,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1131,1137 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve64x,
!   /* UPPERCAE_NAME */ ZVE64X,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
--- 1131,1137 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zve64x,
!   /* UPPERCASE_NAME */ ZVE64X,
    /* FULL_NAME */ "Vector extensions for embedded processors",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1144,1150 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfbfmin,
!   /* UPPERCAE_NAME */ ZVFBFMIN,
    /* FULL_NAME */ "Vector BF16 converts extension",
    /* DESC */ "",
    /* URL */ ,
--- 1144,1150 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfbfmin,
!   /* UPPERCASE_NAME */ ZVFBFMIN,
    /* FULL_NAME */ "Vector BF16 converts extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1157,1163 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfbfwma,
!   /* UPPERCAE_NAME */ ZVFBFWMA,
    /* FULL_NAME */ "zvfbfwma extension",
    /* DESC */ "",
    /* URL */ ,
--- 1157,1163 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfbfwma,
!   /* UPPERCASE_NAME */ ZVFBFWMA,
    /* FULL_NAME */ "zvfbfwma extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1170,1176 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfh,
!   /* UPPERCAE_NAME */ ZVFH,
    /* FULL_NAME */ "Vector half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 1170,1176 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfh,
!   /* UPPERCASE_NAME */ ZVFH,
    /* FULL_NAME */ "Vector half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1183,1189 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfhmin,
!   /* UPPERCAE_NAME */ ZVFHMIN,
    /* FULL_NAME */ "Vector minimal half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
--- 1183,1189 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvfhmin,
!   /* UPPERCASE_NAME */ ZVFHMIN,
    /* FULL_NAME */ "Vector minimal half-precision floating-point extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1196,1202 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkb,
!   /* UPPERCAE_NAME */ ZVKB,
    /* FULL_NAME */ "Vector cryptography bit-manipulation extension",
    /* DESC */ "",
    /* URL */ ,
--- 1196,1202 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkb,
!   /* UPPERCASE_NAME */ ZVKB,
    /* FULL_NAME */ "Vector cryptography bit-manipulation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1209,1215 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkg,
!   /* UPPERCAE_NAME */ ZVKG,
    /* FULL_NAME */ "Vector GCM/GMAC extension",
    /* DESC */ "",
    /* URL */ ,
--- 1209,1215 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkg,
!   /* UPPERCASE_NAME */ ZVKG,
    /* FULL_NAME */ "Vector GCM/GMAC extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1222,1228 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkn,
!   /* UPPERCAE_NAME */ ZVKN,
    /* FULL_NAME */ "Vector NIST Algorithm Suite extension",
    /* DESC */ "@samp{zvkn} will expand to",
    /* URL */ ,
--- 1222,1228 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkn,
!   /* UPPERCASE_NAME */ ZVKN,
    /* FULL_NAME */ "Vector NIST Algorithm Suite extension",
    /* DESC */ "@samp{zvkn} will expand to",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1235,1241 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvknc,
!   /* UPPERCAE_NAME */ ZVKNC,
    /* FULL_NAME */ "Vector NIST Algorithm Suite with carryless multiply extension, @samp{zvknc}",
    /* DESC */ "",
    /* URL */ ,
--- 1235,1241 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvknc,
!   /* UPPERCASE_NAME */ ZVKNC,
    /* FULL_NAME */ "Vector NIST Algorithm Suite with carryless multiply extension, @samp{zvknc}",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1248,1254 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkned,
!   /* UPPERCAE_NAME */ ZVKNED,
    /* FULL_NAME */ "Vector AES block cipher extension",
    /* DESC */ "",
    /* URL */ ,
--- 1248,1254 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkned,
!   /* UPPERCASE_NAME */ ZVKNED,
    /* FULL_NAME */ "Vector AES block cipher extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1261,1267 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkng,
!   /* UPPERCAE_NAME */ ZVKNG,
    /* FULL_NAME */ "Vector NIST Algorithm Suite with GCM extension, @samp{zvkng} will expand",
    /* DESC */ "",
    /* URL */ ,
--- 1261,1267 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkng,
!   /* UPPERCASE_NAME */ ZVKNG,
    /* FULL_NAME */ "Vector NIST Algorithm Suite with GCM extension, @samp{zvkng} will expand",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1274,1280 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvknha,
!   /* UPPERCAE_NAME */ ZVKNHA,
    /* FULL_NAME */ "Vector SHA-2 secure hash extension",
    /* DESC */ "",
    /* URL */ ,
--- 1274,1280 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvknha,
!   /* UPPERCASE_NAME */ ZVKNHA,
    /* FULL_NAME */ "Vector SHA-2 secure hash extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1287,1293 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvknhb,
!   /* UPPERCAE_NAME */ ZVKNHB,
    /* FULL_NAME */ "Vector SHA-2 secure hash extension",
    /* DESC */ "",
    /* URL */ ,
--- 1287,1293 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvknhb,
!   /* UPPERCASE_NAME */ ZVKNHB,
    /* FULL_NAME */ "Vector SHA-2 secure hash extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1300,1306 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvks,
!   /* UPPERCAE_NAME */ ZVKS,
    /* FULL_NAME */ "Vector ShangMi algorithm suite extension, @samp{zvks} will expand",
    /* DESC */ "",
    /* URL */ ,
--- 1300,1306 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvks,
!   /* UPPERCASE_NAME */ ZVKS,
    /* FULL_NAME */ "Vector ShangMi algorithm suite extension, @samp{zvks} will expand",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1313,1319 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksc,
!   /* UPPERCAE_NAME */ ZVKSC,
    /* FULL_NAME */ "Vector ShangMi algorithm suite with carryless multiplication extension,",
    /* DESC */ "",
    /* URL */ ,
--- 1313,1319 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksc,
!   /* UPPERCASE_NAME */ ZVKSC,
    /* FULL_NAME */ "Vector ShangMi algorithm suite with carryless multiplication extension,",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1326,1332 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksed,
!   /* UPPERCAE_NAME */ ZVKSED,
    /* FULL_NAME */ "Vector SM4 Block Cipher extension",
    /* DESC */ "",
    /* URL */ ,
--- 1326,1332 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksed,
!   /* UPPERCASE_NAME */ ZVKSED,
    /* FULL_NAME */ "Vector SM4 Block Cipher extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1339,1345 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksg,
!   /* UPPERCAE_NAME */ ZVKSG,
    /* FULL_NAME */ "Vector ShangMi algorithm suite with GCM extension, @samp{zvksg} will expand",
    /* DESC */ "",
    /* URL */ ,
--- 1339,1345 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksg,
!   /* UPPERCASE_NAME */ ZVKSG,
    /* FULL_NAME */ "Vector ShangMi algorithm suite with GCM extension, @samp{zvksg} will expand",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1352,1358 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksh,
!   /* UPPERCAE_NAME */ ZVKSH,
    /* FULL_NAME */ "Vector SM3 Secure Hash extension",
    /* DESC */ "",
    /* URL */ ,
--- 1352,1358 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvksh,
!   /* UPPERCASE_NAME */ ZVKSH,
    /* FULL_NAME */ "Vector SM3 Secure Hash extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1365,1371 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkt,
!   /* UPPERCAE_NAME */ ZVKT,
    /* FULL_NAME */ "Vector data independent execution latency extension",
    /* DESC */ "",
    /* URL */ ,
--- 1365,1371 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvkt,
!   /* UPPERCASE_NAME */ ZVKT,
    /* FULL_NAME */ "Vector data independent execution latency extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1378,1384 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl1024b,
!   /* UPPERCAE_NAME */ ZVL1024B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1378,1384 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl1024b,
!   /* UPPERCASE_NAME */ ZVL1024B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1391,1397 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl128b,
!   /* UPPERCAE_NAME */ ZVL128B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1391,1397 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl128b,
!   /* UPPERCASE_NAME */ ZVL128B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1404,1410 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl16384b,
!   /* UPPERCAE_NAME */ ZVL16384B,
    /* FULL_NAME */ "zvl16384b extension",
    /* DESC */ "",
    /* URL */ ,
--- 1404,1410 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl16384b,
!   /* UPPERCASE_NAME */ ZVL16384B,
    /* FULL_NAME */ "zvl16384b extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1417,1423 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl2048b,
!   /* UPPERCAE_NAME */ ZVL2048B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1417,1423 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl2048b,
!   /* UPPERCASE_NAME */ ZVL2048B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1430,1436 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl256b,
!   /* UPPERCAE_NAME */ ZVL256B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1430,1436 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl256b,
!   /* UPPERCASE_NAME */ ZVL256B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1443,1449 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl32768b,
!   /* UPPERCAE_NAME */ ZVL32768B,
    /* FULL_NAME */ "zvl32768b extension",
    /* DESC */ "",
    /* URL */ ,
--- 1443,1449 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl32768b,
!   /* UPPERCASE_NAME */ ZVL32768B,
    /* FULL_NAME */ "zvl32768b extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1456,1462 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl32b,
!   /* UPPERCAE_NAME */ ZVL32B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1456,1462 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl32b,
!   /* UPPERCASE_NAME */ ZVL32B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1469,1475 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl4096b,
!   /* UPPERCAE_NAME */ ZVL4096B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1469,1475 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl4096b,
!   /* UPPERCASE_NAME */ ZVL4096B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1482,1488 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl512b,
!   /* UPPERCAE_NAME */ ZVL512B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1482,1488 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl512b,
!   /* UPPERCASE_NAME */ ZVL512B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1495,1501 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl64b,
!   /* UPPERCAE_NAME */ ZVL64B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1495,1501 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl64b,
!   /* UPPERCASE_NAME */ ZVL64B,
    /* FULL_NAME */ "Minimum vector length standard extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1508,1514 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl65536b,
!   /* UPPERCAE_NAME */ ZVL65536B,
    /* FULL_NAME */ "zvl65536b extension",
    /* DESC */ "",
    /* URL */ ,
--- 1508,1514 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl65536b,
!   /* UPPERCASE_NAME */ ZVL65536B,
    /* FULL_NAME */ "zvl65536b extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1521,1527 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl8192b,
!   /* UPPERCAE_NAME */ ZVL8192B,
    /* FULL_NAME */ "zvl8192b extension",
    /* DESC */ "",
    /* URL */ ,
--- 1521,1527 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zvl8192b,
!   /* UPPERCASE_NAME */ ZVL8192B,
    /* FULL_NAME */ "zvl8192b extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1534,1540 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zhinx,
!   /* UPPERCAE_NAME */ ZHINX,
    /* FULL_NAME */ "Half-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
--- 1534,1540 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zhinx,
!   /* UPPERCASE_NAME */ ZHINX,
    /* FULL_NAME */ "Half-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1547,1553 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ zhinxmin,
!   /* UPPERCAE_NAME */ ZHINXMIN,
    /* FULL_NAME */ "Minimal half-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
--- 1547,1553 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ zhinxmin,
!   /* UPPERCASE_NAME */ ZHINXMIN,
    /* FULL_NAME */ "Minimal half-precision floating-point in integer registers extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1560,1566 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ sdtrig,
!   /* UPPERCAE_NAME */ SDTRIG,
    /* FULL_NAME */ "sdtrig extension",
    /* DESC */ "",
    /* URL */ ,
--- 1560,1566 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ sdtrig,
!   /* UPPERCASE_NAME */ SDTRIG,
    /* FULL_NAME */ "sdtrig extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1573,1579 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ sha,
!   /* UPPERCAE_NAME */ SHA,
    /* FULL_NAME */ "The augmented hypervisor extension",
    /* DESC */ "",
    /* URL */ ,
--- 1573,1579 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ sha,
!   /* UPPERCASE_NAME */ SHA,
    /* FULL_NAME */ "The augmented hypervisor extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1586,1592 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ shcounterenw,
!   /* UPPERCAE_NAME */ SHCOUNTERENW,
    /* FULL_NAME */ "Support writeable enables for any supported counter",
    /* DESC */ "",
    /* URL */ ,
--- 1586,1592 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ shcounterenw,
!   /* UPPERCASE_NAME */ SHCOUNTERENW,
    /* FULL_NAME */ "Support writeable enables for any supported counter",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1599,1605 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ shgatpa,
!   /* UPPERCAE_NAME */ SHGATPA,
    /* FULL_NAME */ "SvNNx4 mode supported for all modes supported by satp",
    /* DESC */ "",
    /* URL */ ,
--- 1599,1605 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ shgatpa,
!   /* UPPERCASE_NAME */ SHGATPA,
    /* FULL_NAME */ "SvNNx4 mode supported for all modes supported by satp",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1611,1618 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ shtvala,
!   /* UPPERCAE_NAME */ SHTVALA,
    /* FULL_NAME */ "The htval register provides all needed values",
    /* DESC */ "",
    /* URL */ ,
--- 1611,1631 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ shlcofideleg,
+   /* UPPERCASE_NAME */ SHLCOFIDELEG,
+   /* FULL_NAME */ "Delegating LCOFI interrupts to VS-mode",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"h"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sh,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ shtvala,
!   /* UPPERCASE_NAME */ SHTVALA,
    /* FULL_NAME */ "The htval register provides all needed values",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1625,1631 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ shvstvala,
!   /* UPPERCAE_NAME */ SHVSTVALA,
    /* FULL_NAME */ "The vstval register provides all needed values",
    /* DESC */ "",
    /* URL */ ,
--- 1638,1644 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ shvstvala,
!   /* UPPERCASE_NAME */ SHVSTVALA,
    /* FULL_NAME */ "The vstval register provides all needed values",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1638,1644 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ shvstvecd,
!   /* UPPERCAE_NAME */ SHVSTVECD,
    /* FULL_NAME */ "The vstvec register supports Direct mode",
    /* DESC */ "",
    /* URL */ ,
--- 1651,1657 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ shvstvecd,
!   /* UPPERCASE_NAME */ SHVSTVECD,
    /* FULL_NAME */ "The vstvec register supports Direct mode",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1651,1657 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ shvsatpa,
!   /* UPPERCAE_NAME */ SHVSATPA,
    /* FULL_NAME */ "The vsatp register supports all modes supported by satp",
    /* DESC */ "",
    /* URL */ ,
--- 1664,1670 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ shvsatpa,
!   /* UPPERCASE_NAME */ SHVSATPA,
    /* FULL_NAME */ "The vsatp register supports all modes supported by satp",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1664,1670 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ smaia,
!   /* UPPERCAE_NAME */ SMAIA,
    /* FULL_NAME */ "Advanced interrupt architecture extension",
    /* DESC */ "",
    /* URL */ ,
--- 1677,1683 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ smaia,
!   /* UPPERCASE_NAME */ SMAIA,
    /* FULL_NAME */ "Advanced interrupt architecture extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1676,1683 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ smepmp,
!   /* UPPERCAE_NAME */ SMEPMP,
    /* FULL_NAME */ "PMP Enhancements for memory access and execution prevention on Machine mode",
    /* DESC */ "",
    /* URL */ ,
--- 1689,1722 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ smcntrpmf,
+   /* UPPERCASE_NAME */ SMCNTRPMF,
+   /* FULL_NAME */ "Cycle and instret privilege mode filtering",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sm,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
+   /* NAME */ smcsrind,
+   /* UPPERCASE_NAME */ SMCSRIND,
+   /* FULL_NAME */ "Machine-Level Indirect CSR Access",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr", "sscsrind"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sm,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ smepmp,
!   /* UPPERCASE_NAME */ SMEPMP,
    /* FULL_NAME */ "PMP Enhancements for memory access and execution prevention on Machine mode",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1690,1696 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ smmpm,
!   /* UPPERCAE_NAME */ SMMPM,
    /* FULL_NAME */ "smmpm extension",
    /* DESC */ "",
    /* URL */ ,
--- 1729,1735 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ smmpm,
!   /* UPPERCASE_NAME */ SMMPM,
    /* FULL_NAME */ "smmpm extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1703,1709 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ smnpm,
!   /* UPPERCAE_NAME */ SMNPM,
    /* FULL_NAME */ "smnpm extension",
    /* DESC */ "",
    /* URL */ ,
--- 1742,1748 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ smnpm,
!   /* UPPERCASE_NAME */ SMNPM,
    /* FULL_NAME */ "smnpm extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1715,1722 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ smstateen,
!   /* UPPERCAE_NAME */ SMSTATEEN,
    /* FULL_NAME */ "State enable extension",
    /* DESC */ "",
    /* URL */ ,
--- 1754,1774 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ smrnmi,
+   /* UPPERCASE_NAME */ SMRNMI,
+   /* FULL_NAME */ "Resumable non-maskable interrupts",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sm,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ smstateen,
!   /* UPPERCASE_NAME */ SMSTATEEN,
    /* FULL_NAME */ "State enable extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1729,1735 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ smdbltrp,
!   /* UPPERCAE_NAME */ SMDBLTRP,
    /* FULL_NAME */ "Double Trap Extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1781,1787 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ smdbltrp,
!   /* UPPERCASE_NAME */ SMDBLTRP,
    /* FULL_NAME */ "Double Trap Extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1742,1748 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssaia,
!   /* UPPERCAE_NAME */ SSAIA,
    /* FULL_NAME */ "Advanced interrupt architecture extension for supervisor-mode",
    /* DESC */ "",
    /* URL */ ,
--- 1794,1800 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssaia,
!   /* UPPERCASE_NAME */ SSAIA,
    /* FULL_NAME */ "Advanced interrupt architecture extension for supervisor-mode",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1754,1761 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ sscofpmf,
!   /* UPPERCAE_NAME */ SSCOFPMF,
    /* FULL_NAME */ "Count overflow & filtering extension",
    /* DESC */ "",
    /* URL */ ,
--- 1806,1826 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ ssccptr,
+   /* UPPERCASE_NAME */ SSCCPTR,
+   /* FULL_NAME */ "Main memory supports page table reads",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ sscofpmf,
!   /* UPPERCASE_NAME */ SSCOFPMF,
    /* FULL_NAME */ "Count overflow & filtering extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1767,1774 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssnpm,
!   /* UPPERCAE_NAME */ SSNPM,
    /* FULL_NAME */ "ssnpm extension",
    /* DESC */ "",
    /* URL */ ,
--- 1832,1865 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ sscounterenw,
+   /* UPPERCASE_NAME */ SSCOUNTERENW,
+   /* FULL_NAME */ "Support writeable enables for any supported counter",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
+   /* NAME */ sscsrind,
+   /* UPPERCASE_NAME */ SSCSRIND,
+   /* FULL_NAME */ "Supervisor-Level Indirect CSR Access",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ ssnpm,
!   /* UPPERCASE_NAME */ SSNPM,
    /* FULL_NAME */ "ssnpm extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1781,1787 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ sspm,
!   /* UPPERCAE_NAME */ SSPM,
    /* FULL_NAME */ "sspm extension",
    /* DESC */ "",
    /* URL */ ,
--- 1872,1878 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ sspm,
!   /* UPPERCASE_NAME */ SSPM,
    /* FULL_NAME */ "sspm extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1794,1800 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssstateen,
!   /* UPPERCAE_NAME */ SSSTATEEN,
    /* FULL_NAME */ "State-enable extension for supervisor-mode",
    /* DESC */ "",
    /* URL */ ,
--- 1885,1891 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssstateen,
!   /* UPPERCASE_NAME */ SSSTATEEN,
    /* FULL_NAME */ "State-enable extension for supervisor-mode",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1807,1813 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ sstc,
!   /* UPPERCAE_NAME */ SSTC,
    /* FULL_NAME */ "Supervisor-mode timer interrupts extension",
    /* DESC */ "",
    /* URL */ ,
--- 1898,1904 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ sstc,
!   /* UPPERCASE_NAME */ SSTC,
    /* FULL_NAME */ "Supervisor-mode timer interrupts extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1819,1826 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssstrict,
!   /* UPPERCAE_NAME */ SSSTRICT,
    /* FULL_NAME */ "ssstrict extension",
    /* DESC */ "",
    /* URL */ ,
--- 1910,1943 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ sstvala,
+   /* UPPERCASE_NAME */ SSTVALA,
+   /* FULL_NAME */ "Stval provides all needed values",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
+   /* NAME */ sstvecd,
+   /* UPPERCASE_NAME */ SSTVECD,
+   /* FULL_NAME */ "Stvec supports Direct mode",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ ssstrict,
!   /* UPPERCASE_NAME */ SSSTRICT,
    /* FULL_NAME */ "ssstrict extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1833,1839 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssdbltrp,
!   /* UPPERCAE_NAME */ SSDBLTRP,
    /* FULL_NAME */ "Double Trap Extensions",
    /* DESC */ "",
    /* URL */ ,
--- 1950,1956 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ ssdbltrp,
!   /* UPPERCASE_NAME */ SSDBLTRP,
    /* FULL_NAME */ "Double Trap Extensions",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1845,1852 ****
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
    /* NAME */ supm,
!   /* UPPERCAE_NAME */ SUPM,
    /* FULL_NAME */ "supm extension",
    /* DESC */ "",
    /* URL */ ,
--- 1962,1982 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ ssu64xl,
+   /* UPPERCASE_NAME */ SSU64XL,
+   /* FULL_NAME */ "UXLEN=64 must be supported",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ supm,
!   /* UPPERCASE_NAME */ SUPM,
    /* FULL_NAME */ "supm extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1859,1865 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ svinval,
!   /* UPPERCAE_NAME */ SVINVAL,
    /* FULL_NAME */ "Fine-grained address-translation cache invalidation extension",
    /* DESC */ "",
    /* URL */ ,
--- 1989,1995 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ svinval,
!   /* UPPERCASE_NAME */ SVINVAL,
    /* FULL_NAME */ "Fine-grained address-translation cache invalidation extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1872,1878 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ svnapot,
!   /* UPPERCAE_NAME */ SVNAPOT,
    /* FULL_NAME */ "NAPOT translation contiguity extension",
    /* DESC */ "",
    /* URL */ ,
--- 2002,2008 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ svnapot,
!   /* UPPERCASE_NAME */ SVNAPOT,
    /* FULL_NAME */ "NAPOT translation contiguity extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1885,1891 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ svpbmt,
!   /* UPPERCAE_NAME */ SVPBMT,
    /* FULL_NAME */ "Page-based memory types extension",
    /* DESC */ "",
    /* URL */ ,
--- 2015,2021 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ svpbmt,
!   /* UPPERCASE_NAME */ SVPBMT,
    /* FULL_NAME */ "Page-based memory types extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1898,1904 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ svvptc,
!   /* UPPERCAE_NAME */ SVVPTC,
    /* FULL_NAME */ "svvptc extension",
    /* DESC */ "",
    /* URL */ ,
--- 2028,2034 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ svvptc,
!   /* UPPERCASE_NAME */ SVVPTC,
    /* FULL_NAME */ "svvptc extension",
    /* DESC */ "",
    /* URL */ ,
*************** DEFINE_RISCV_EXT(
*** 1911,1921 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ svadu,
!   /* UPPERCAE_NAME */ SVADU,
    /* FULL_NAME */ "Hardware Updating of A/D Bits extension",
    /* DESC */ "",
    /* URL */ ,
!   /* DEP_EXTS */ ({}),
    /* SUPPORTED_VERSIONS */ ({{1, 0}}),
    /* FLAG_GROUP */ sv,
    /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
--- 2041,2051 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ svadu,
!   /* UPPERCASE_NAME */ SVADU,
    /* FULL_NAME */ "Hardware Updating of A/D Bits extension",
    /* DESC */ "",
    /* URL */ ,
!   /* DEP_EXTS */ ({"zicsr"}),
    /* SUPPORTED_VERSIONS */ ({{1, 0}}),
    /* FLAG_GROUP */ sv,
    /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
*************** DEFINE_RISCV_EXT(
*** 1924,1934 ****
  
  DEFINE_RISCV_EXT(
    /* NAME */ svade,
!   /* UPPERCAE_NAME */ SVADE,
    /* FULL_NAME */ "Cause exception when hardware updating of A/D bits is disabled",
    /* DESC */ "",
    /* URL */ ,
!   /* DEP_EXTS */ ({}),
    /* SUPPORTED_VERSIONS */ ({{1, 0}}),
    /* FLAG_GROUP */ sv,
    /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
--- 2054,2077 ----
  
  DEFINE_RISCV_EXT(
    /* NAME */ svade,
!   /* UPPERCASE_NAME */ SVADE,
    /* FULL_NAME */ "Cause exception when hardware updating of A/D bits is disabled",
    /* DESC */ "",
    /* URL */ ,
!   /* DEP_EXTS */ ({"zicsr"}),
!   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
!   /* FLAG_GROUP */ sv,
!   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
!   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
!   /* EXTRA_EXTENSION_FLAGS */ 0)
! 
! DEFINE_RISCV_EXT(
!   /* NAME */ svbare,
!   /* UPPERCASE_NAME */ SVBARE,
!   /* FULL_NAME */ "Satp mode bare is supported",
!   /* DESC */ "",
!   /* URL */ ,
!   /* DEP_EXTS */ ({"zicsr"}),
    /* SUPPORTED_VERSIONS */ ({{1, 0}}),
    /* FLAG_GROUP */ sv,
    /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-ext.opt gcc-16-20250608/gcc/config/riscv/riscv-ext.opt
*** gcc-16-20250601/gcc/config/riscv/riscv-ext.opt	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-ext.opt	Sun Jun  8 22:32:17 2025
*************** Mask(SHCOUNTERENW) Var(riscv_sh_subext)
*** 325,330 ****
--- 325,332 ----
  
  Mask(SHGATPA) Var(riscv_sh_subext)
  
+ Mask(SHLCOFIDELEG) Var(riscv_sh_subext)
+ 
  Mask(SHTVALA) Var(riscv_sh_subext)
  
  Mask(SHVSTVALA) Var(riscv_sh_subext)
*************** Mask(SHVSATPA) Var(riscv_sh_subext)
*** 335,354 ****
--- 337,368 ----
  
  Mask(SMAIA) Var(riscv_sm_subext)
  
+ Mask(SMCNTRPMF) Var(riscv_sm_subext)
+ 
+ Mask(SMCSRIND) Var(riscv_sm_subext)
+ 
  Mask(SMEPMP) Var(riscv_sm_subext)
  
  Mask(SMMPM) Var(riscv_sm_subext)
  
  Mask(SMNPM) Var(riscv_sm_subext)
  
+ Mask(SMRNMI) Var(riscv_sm_subext)
+ 
  Mask(SMSTATEEN) Var(riscv_sm_subext)
  
  Mask(SMDBLTRP) Var(riscv_sm_subext)
  
  Mask(SSAIA) Var(riscv_ss_subext)
  
+ Mask(SSCCPTR) Var(riscv_ss_subext)
+ 
  Mask(SSCOFPMF) Var(riscv_ss_subext)
  
+ Mask(SSCOUNTERENW) Var(riscv_ss_subext)
+ 
+ Mask(SSCSRIND) Var(riscv_ss_subext)
+ 
  Mask(SSNPM) Var(riscv_ss_subext)
  
  Mask(SSPM) Var(riscv_ss_subext)
*************** Mask(SSSTATEEN) Var(riscv_ss_subext)
*** 357,366 ****
--- 371,386 ----
  
  Mask(SSTC) Var(riscv_ss_subext)
  
+ Mask(SSTVALA) Var(riscv_ss_subext)
+ 
+ Mask(SSTVECD) Var(riscv_ss_subext)
+ 
  Mask(SSSTRICT) Var(riscv_ss_subext)
  
  Mask(SSDBLTRP) Var(riscv_ss_subext)
  
+ Mask(SSU64XL) Var(riscv_ss_subext)
+ 
  Mask(SUPM) Var(riscv_su_subext)
  
  Mask(SVINVAL) Var(riscv_sv_subext)
*************** Mask(SVADU) Var(riscv_sv_subext)
*** 375,380 ****
--- 395,402 ----
  
  Mask(SVADE) Var(riscv_sv_subext)
  
+ Mask(SVBARE) Var(riscv_sv_subext)
+ 
  Mask(XCVALU) Var(riscv_xcv_subext)
  
  Mask(XCVBI) Var(riscv_xcv_subext)
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-opts.h gcc-16-20250608/gcc/config/riscv/riscv-opts.h
*** gcc-16-20250601/gcc/config/riscv/riscv-opts.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-opts.h	Sun Jun  8 22:32:17 2025
*************** enum riscv_tls_type {
*** 164,169 ****
--- 164,170 ----
    (TARGET_VECTOR && riscv_mautovec_segment)
  
  #define GPR2VR_COST_UNPROVIDED -1
+ #define FPR2VR_COST_UNPROVIDED -1
  
  /* Extra extension flags, used for carry extra info for a RISC-V extension.  */
  enum
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-protos.h gcc-16-20250608/gcc/config/riscv/riscv-protos.h
*** gcc-16-20250601/gcc/config/riscv/riscv-protos.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-protos.h	Sun Jun  8 22:32:17 2025
*************** const struct riscv_tune_info *
*** 841,846 ****
--- 841,847 ----
  riscv_parse_tune (const char *, bool);
  const cpu_vector_cost *get_vector_costs ();
  int get_gr2vr_cost ();
+ int get_fr2vr_cost ();
  
  enum
  {
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-subset.h gcc-16-20250608/gcc/config/riscv/riscv-subset.h
*** gcc-16-20250601/gcc/config/riscv/riscv-subset.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-subset.h	Sun Jun  8 22:32:17 2025
*************** public:
*** 109,117 ****
    static riscv_subset_list *parse (const char *, location_t);
    const char *parse_single_ext (const char *, bool exact_single_p = true);
  
-   const riscv_subset_t *begin () const {return m_head;};
-   const riscv_subset_t *end () const {return NULL;};
- 
    int match_score (riscv_subset_list *) const;
  
    void set_loc (location_t);
--- 109,114 ----
*************** public:
*** 119,124 ****
--- 116,180 ----
    void set_allow_adding_dup (bool v) { m_allow_adding_dup = v; }
  
    void finalize ();
+ 
+   class iterator
+   {
+   public:
+     explicit iterator(riscv_subset_t *node) : m_node(node) {}
+ 
+     riscv_subset_t &operator*() const { return *m_node; }
+     riscv_subset_t *operator->() const { return m_node; }
+ 
+     iterator &operator++()
+     {
+       if (m_node)
+ 	m_node = m_node->next;
+       return *this;
+     }
+ 
+     bool operator!=(const iterator &other) const
+     {
+       return m_node != other.m_node;
+     }
+ 
+     bool operator==(const iterator &other) const
+     {
+       return m_node == other.m_node;
+     }
+ 
+   private:
+     riscv_subset_t *m_node;
+   };
+ 
+   iterator begin() { return iterator(m_head); }
+   iterator end()   { return iterator(nullptr); }
+ 
+   class const_iterator
+   {
+   public:
+     explicit const_iterator(const riscv_subset_t *node) : m_node(node) {}
+ 
+     const riscv_subset_t &operator*() const { return *m_node; }
+     const riscv_subset_t *operator->() const { return m_node; }
+ 
+     const_iterator &operator++()
+     {
+       if (m_node)
+ 	m_node = m_node->next;
+       return *this;
+     }
+ 
+     bool operator!=(const const_iterator &other) const
+     {
+       return m_node != other.m_node;
+     }
+ 
+   private:
+     const riscv_subset_t *m_node;
+   };
+ 
+   const_iterator begin() const { return const_iterator(m_head); }
+   const_iterator end() const   { return const_iterator(nullptr); }
  };
  
  extern const riscv_subset_list *riscv_cmdline_subset_list (void);
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-v.cc gcc-16-20250608/gcc/config/riscv/riscv-v.cc
*** gcc-16-20250601/gcc/config/riscv/riscv-v.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-v.cc	Sun Jun  8 22:32:17 2025
*************** expand_vx_binary_vec_vec_dup (rtx op_0,
*** 5567,5572 ****
--- 5567,5574 ----
      case IOR:
      case XOR:
      case MULT:
+     case DIV:
+     case UDIV:
        icode = code_for_pred_scalar (code, mode);
        break;
      default:
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv-vector-costs.cc gcc-16-20250608/gcc/config/riscv/riscv-vector-costs.cc
*** gcc-16-20250601/gcc/config/riscv/riscv-vector-costs.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv-vector-costs.cc	Sun Jun  8 22:32:17 2025
*************** costs::adjust_stmt_cost (enum vect_cost_
*** 1099,1106 ****
    switch (kind)
      {
      case scalar_to_vec:
!       stmt_cost += (FLOAT_TYPE_P (vectype) ? costs->regmove->FR2VR
! 		    : get_gr2vr_cost ());
        break;
      case vec_to_scalar:
        stmt_cost += (FLOAT_TYPE_P (vectype) ? costs->regmove->VR2FR
--- 1099,1106 ----
    switch (kind)
      {
      case scalar_to_vec:
!       stmt_cost
! 	+= (FLOAT_TYPE_P (vectype) ? get_fr2vr_cost () : get_gr2vr_cost ());
        break;
      case vec_to_scalar:
        stmt_cost += (FLOAT_TYPE_P (vectype) ? costs->regmove->VR2FR
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv.cc gcc-16-20250608/gcc/config/riscv/riscv.cc
*** gcc-16-20250601/gcc/config/riscv/riscv.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv.cc	Sun Jun  8 22:32:17 2025
*************** along with GCC; see the file COPYING3.
*** 107,112 ****
--- 107,114 ----
  /* True the mode switching has static frm, or false.  */
  #define STATIC_FRM_P(c) ((c)->machine->mode_sw_info.static_frm_p)
  
+ #define CFUN_IN_CALL(c) ((c)->machine->mode_sw_info.cfun_call)
+ 
  /* True if we can use the instructions in the XTheadInt extension
     to handle interrupts, or false.  */
  #define TH_INT_INTERRUPT(c)						\
*************** struct GTY(()) mode_switching_info {
*** 176,185 ****
--- 178,190 ----
       mode instruction in the function or not.  */
    bool static_frm_p;
  
+   bool cfun_call;
+ 
    mode_switching_info ()
      {
        dynamic_frm = NULL_RTX;
        static_frm_p = false;
+       cfun_call = false;
      }
  };
  
*************** riscv_extend_cost (rtx op, bool unsigned
*** 3891,3896 ****
--- 3896,3920 ----
    return COSTS_N_INSNS (2);
  }
  
+ /* Return the cost of the vector binary rtx like add, minus, mult.
+    The cost of scalar2vr_cost will be appended if there one of the
+    op comes from the VEC_DUPLICATE.  */
+ 
+ static int
+ get_vector_binary_rtx_cost (rtx x, int scalar2vr_cost)
+ {
+   gcc_assert (riscv_v_ext_mode_p (GET_MODE (x)));
+ 
+   rtx op_0 = XEXP (x, 0);
+   rtx op_1 = XEXP (x, 1);
+ 
+   if (GET_CODE (op_0) == VEC_DUPLICATE
+       || GET_CODE (op_1) == VEC_DUPLICATE)
+     return (scalar2vr_cost + 1) * COSTS_N_INSNS (1);
+   else
+     return COSTS_N_INSNS (1);
+ }
+ 
  /* Implement TARGET_RTX_COSTS.  */
  
  #define SINGLE_SHIFT_COST 1
*************** riscv_rtx_costs (rtx x, machine_mode mod
*** 3904,3909 ****
--- 3928,3936 ----
    if (riscv_v_ext_mode_p (mode))
      {
        int gr2vr_cost = get_gr2vr_cost ();
+       int fr2vr_cost = get_fr2vr_cost ();
+       int scalar2vr_cost = FLOAT_MODE_P (GET_MODE_INNER (mode))
+ 	? fr2vr_cost : gr2vr_cost;
  
        switch (outer_code)
  	{
*************** riscv_rtx_costs (rtx x, machine_mode mod
*** 3914,3919 ****
--- 3941,3962 ----
  	      case VEC_DUPLICATE:
  		*total = gr2vr_cost * COSTS_N_INSNS (1);
  		break;
+ 	      case IF_THEN_ELSE:
+ 		{
+ 		  rtx op = XEXP (x, 1);
+ 
+ 		  switch (GET_CODE (op))
+ 		    {
+ 		    case DIV:
+ 		    case UDIV:
+ 		      *total = get_vector_binary_rtx_cost (op, scalar2vr_cost);
+ 		      break;
+ 		    default:
+ 		      *total = COSTS_N_INSNS (1);
+ 		      break;
+ 		    }
+ 		}
+ 		break;
  	      case PLUS:
  	      case MINUS:
  	      case AND:
*************** riscv_rtx_costs (rtx x, machine_mode mod
*** 3921,3934 ****
  	      case XOR:
  	      case MULT:
  		{
  		  rtx op_0 = XEXP (x, 0);
  		  rtx op_1 = XEXP (x, 1);
  
! 		  if (GET_CODE (op_0) == VEC_DUPLICATE
! 		      || GET_CODE (op_1) == VEC_DUPLICATE)
! 		    *total = (gr2vr_cost + 1) * COSTS_N_INSNS (1);
  		  else
! 		    *total = COSTS_N_INSNS (1);
  		}
  		break;
  	      default:
--- 3964,3978 ----
  	      case XOR:
  	      case MULT:
  		{
+ 		  rtx op;
  		  rtx op_0 = XEXP (x, 0);
  		  rtx op_1 = XEXP (x, 1);
  
! 		  if (GET_CODE (op = op_0) == MULT
! 		      || GET_CODE (op = op_1) == MULT)
! 		    *total = get_vector_binary_rtx_cost (op, scalar2vr_cost);
  		  else
! 		    *total = get_vector_binary_rtx_cost (x, scalar2vr_cost);
  		}
  		break;
  	      default:
*************** riscv_expand_conditional_branch (rtx lab
*** 5350,5383 ****
  bool
  riscv_expand_conditional_move (rtx dest, rtx op, rtx cons, rtx alt)
  {
!   machine_mode mode = GET_MODE (dest);
    rtx_code code = GET_CODE (op);
    rtx op0 = XEXP (op, 0);
    rtx op1 = XEXP (op, 1);
  
    if (((TARGET_ZICOND_LIKE
! 	|| (arith_operand (cons, mode) && arith_operand (alt, mode)))
!        && (GET_MODE_CLASS (mode) == MODE_INT))
        || TARGET_SFB_ALU || TARGET_XTHEADCONDMOV)
      {
        machine_mode mode0 = GET_MODE (op0);
        machine_mode mode1 = GET_MODE (op1);
  
!       /* An integer comparison must be comparing WORD_MODE objects.  We
! 	 must enforce that so that we don't strip away a sign_extension
! 	 thinking it is unnecessary.  We might consider using
! 	 riscv_extend_operands if they are not already properly extended.  */
        if ((INTEGRAL_MODE_P (mode0) && mode0 != word_mode)
  	  || (INTEGRAL_MODE_P (mode1) && mode1 != word_mode))
! 	return false;
  
!       /* In the fallback generic case use MODE rather than WORD_MODE for
! 	 the output of the SCC instruction, to match the mode of the NEG
  	 operation below.  The output of SCC is 0 or 1 boolean, so it is
  	 valid for input in any scalar integer mode.  */
        rtx tmp = gen_reg_rtx ((TARGET_ZICOND_LIKE
  			      || TARGET_SFB_ALU || TARGET_XTHEADCONDMOV)
! 			     ? word_mode : mode);
        bool invert = false;
  
        /* Canonicalize the comparison.  It must be an equality comparison
--- 5394,5474 ----
  bool
  riscv_expand_conditional_move (rtx dest, rtx op, rtx cons, rtx alt)
  {
!   machine_mode dst_mode = GET_MODE (dest);
!   machine_mode cond_mode = GET_MODE (dest);
    rtx_code code = GET_CODE (op);
    rtx op0 = XEXP (op, 0);
    rtx op1 = XEXP (op, 1);
  
+   /* General note.  This is called from the conditional move
+      expander.  That simplifies the cases we need to worry about
+      as we know the destination will have the same mode as the
+      true/false arms.  Furthermore we know that mode will be
+      DI/SI for rv64 or SI for rv32.  */
+ 
+   /* For some tests, we can easily construct a 0, -1 value
+      which can then be used to synthesize more efficient
+      sequences that don't use zicond.  */
+   if ((code == LT || code == GE)
+       && (REG_P (op0) || SUBREG_P (op0))
+       && op1 == CONST0_RTX (GET_MODE (op0)))
+     {
+       /* The code to expand signed division by a power of 2 uses a
+ 	 conditional add by 2^n-1 idiom.  It can be more efficiently
+ 	 synthesized without zicond using srai+srli+add.
+ 
+ 	 But we don't see the constants here.  Just a conditional move
+ 	 with registers as the true/false values.  So this is a little
+ 	 over-aggressive and can result in a few missed if-conversions.  */
+       if ((REG_P (cons) || SUBREG_P (cons))
+ 	  && (REG_P (alt) || SUBREG_P (alt)))
+ 	return false;
+ 
+       /* If one value is a nonzero constant and the other value is
+ 	 not a constant, then avoid zicond as more efficient sequences
+ 	 using the splatted sign bit are often possible.  */
+       if (CONST_INT_P (alt)
+ 	  && alt != CONST0_RTX (dst_mode)
+ 	  && !CONST_INT_P (cons))
+ 	return false;
+ 
+       if (CONST_INT_P (cons)
+ 	  && cons != CONST0_RTX (dst_mode)
+ 	  && !CONST_INT_P (alt))
+ 	return false;
+ 
+       /* If we need more special cases, add them here.  */
+     }
+ 
    if (((TARGET_ZICOND_LIKE
! 	|| (arith_operand (cons, dst_mode) && arith_operand (alt, dst_mode)))
!        && GET_MODE_CLASS (dst_mode) == MODE_INT
!        && GET_MODE_CLASS (cond_mode) == MODE_INT)
        || TARGET_SFB_ALU || TARGET_XTHEADCONDMOV)
      {
        machine_mode mode0 = GET_MODE (op0);
        machine_mode mode1 = GET_MODE (op1);
  
!       /* An integer comparison must be comparing WORD_MODE objects.
! 	 Extend the comparison arguments as necessary.  */
        if ((INTEGRAL_MODE_P (mode0) && mode0 != word_mode)
  	  || (INTEGRAL_MODE_P (mode1) && mode1 != word_mode))
! 	riscv_extend_comparands (code, &op0, &op1);
  
!       /* We might have been handed back a SUBREG.  Just to make things
! 	 easy, force it into a REG.  */
!       if (!REG_P (op0) && !CONST_INT_P (op0))
! 	op0 = force_reg (word_mode, op0);
!       if (!REG_P (op1) && !CONST_INT_P (op1))
! 	op1 = force_reg (word_mode, op1);
! 
!       /* In the fallback generic case use DST_MODE rather than WORD_MODE
! 	 for the output of the SCC instruction, to match the mode of the NEG
  	 operation below.  The output of SCC is 0 or 1 boolean, so it is
  	 valid for input in any scalar integer mode.  */
        rtx tmp = gen_reg_rtx ((TARGET_ZICOND_LIKE
  			      || TARGET_SFB_ALU || TARGET_XTHEADCONDMOV)
! 			     ? word_mode : dst_mode);
        bool invert = false;
  
        /* Canonicalize the comparison.  It must be an equality comparison
*************** riscv_expand_conditional_move (rtx dest,
*** 5406,5412 ****
  	  else
  	    return false;
  
! 	  op = gen_rtx_fmt_ee (invert ? EQ : NE, mode, tmp, const0_rtx);
  
  	  /* We've generated a new comparison.  Update the local variables.  */
  	  code = GET_CODE (op);
--- 5497,5503 ----
  	  else
  	    return false;
  
! 	  op = gen_rtx_fmt_ee (invert ? EQ : NE, cond_mode, tmp, const0_rtx);
  
  	  /* We've generated a new comparison.  Update the local variables.  */
  	  code = GET_CODE (op);
*************** riscv_expand_conditional_move (rtx dest,
*** 5425,5434 ****
  	     arm of the conditional move.  That allows us to support more
  	     cases for extensions which are more general than SFB.  But
  	     does mean we need to force CONS into a register at this point.  */
! 	  cons = force_reg (mode, cons);
  	  /* With XTheadCondMov we need to force ALT into a register too.  */
! 	  alt = force_reg (mode, alt);
! 	  emit_insn (gen_rtx_SET (dest, gen_rtx_IF_THEN_ELSE (mode, cond,
  							      cons, alt)));
  	  return true;
  	}
--- 5516,5525 ----
  	     arm of the conditional move.  That allows us to support more
  	     cases for extensions which are more general than SFB.  But
  	     does mean we need to force CONS into a register at this point.  */
! 	  cons = force_reg (dst_mode, cons);
  	  /* With XTheadCondMov we need to force ALT into a register too.  */
! 	  alt = force_reg (dst_mode, alt);
! 	  emit_insn (gen_rtx_SET (dest, gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							      cons, alt)));
  	  return true;
  	}
*************** riscv_expand_conditional_move (rtx dest,
*** 5437,5446 ****
  	  if (invert)
  	    std::swap (cons, alt);
  
! 	  rtx reg1 = gen_reg_rtx (mode);
! 	  rtx reg2 = gen_reg_rtx (mode);
! 	  rtx reg3 = gen_reg_rtx (mode);
! 	  rtx reg4 = gen_reg_rtx (mode);
  
  	  riscv_emit_unary (NEG, reg1, tmp);
  	  riscv_emit_binary (AND, reg2, reg1, cons);
--- 5528,5537 ----
  	  if (invert)
  	    std::swap (cons, alt);
  
! 	  rtx reg1 = gen_reg_rtx (dst_mode);
! 	  rtx reg2 = gen_reg_rtx (dst_mode);
! 	  rtx reg3 = gen_reg_rtx (dst_mode);
! 	  rtx reg4 = gen_reg_rtx (dst_mode);
  
  	  riscv_emit_unary (NEG, reg1, tmp);
  	  riscv_emit_binary (AND, reg2, reg1, cons);
*************** riscv_expand_conditional_move (rtx dest,
*** 5450,5497 ****
  	  return true;
  	}
        /* 0, reg or 0, imm */
!       else if (cons == CONST0_RTX (mode)
! 	       && (REG_P (alt)
! 		   || (CONST_INT_P (alt) && alt != CONST0_RTX (mode))))
  	{
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	  alt = force_reg (mode, alt);
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (mode, cond,
  							cons, alt)));
  	  return true;
  	}
        /* imm, imm */
!       else if (CONST_INT_P (cons) && cons != CONST0_RTX (mode)
! 	       && CONST_INT_P (alt) && alt != CONST0_RTX (mode))
  	{
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  	  HOST_WIDE_INT t = INTVAL (alt) - INTVAL (cons);
! 	  alt = force_reg (mode, gen_int_mode (t, mode));
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (mode, cond,
! 							CONST0_RTX (mode),
  							alt)));
  	  /* CONS might not fit into a signed 12 bit immediate suitable
  	     for an addi instruction.  If that's the case, force it
  	     into a register.  */
  	  if (!SMALL_OPERAND (INTVAL (cons)))
! 	    cons = force_reg (mode, cons);
  	  riscv_emit_binary (PLUS, dest, dest, cons);
  	  return true;
  	}
        /* imm, reg  */
!       else if (CONST_INT_P (cons) && cons != CONST0_RTX (mode) && REG_P (alt))
  	{
  	  /* Optimize for register value of 0.  */
! 	  if (code == NE && rtx_equal_p (op0, alt) && op1 == CONST0_RTX (mode))
  	    {
  	      rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	      cons = force_reg (mode, cons);
  	      emit_insn (gen_rtx_SET (dest,
! 				      gen_rtx_IF_THEN_ELSE (mode, cond,
  							    cons, alt)));
  	      return true;
  	    }
--- 5541,5592 ----
  	  return true;
  	}
        /* 0, reg or 0, imm */
!       else if (cons == CONST0_RTX (dst_mode)
! 	       && ((REG_P (alt) || SUBREG_P (alt))
! 		   || (CONST_INT_P (alt) && alt != CONST0_RTX (dst_mode))))
  	{
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	  alt = force_reg (dst_mode, alt);
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							cons, alt)));
  	  return true;
  	}
        /* imm, imm */
!       else if (CONST_INT_P (cons) && cons != CONST0_RTX (dst_mode)
! 	       && CONST_INT_P (alt) && alt != CONST0_RTX (dst_mode))
  	{
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  	  HOST_WIDE_INT t = INTVAL (alt) - INTVAL (cons);
! 	  alt = force_reg (dst_mode, gen_int_mode (t, dst_mode));
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (dst_mode, cond,
! 							CONST0_RTX (dst_mode),
  							alt)));
  	  /* CONS might not fit into a signed 12 bit immediate suitable
  	     for an addi instruction.  If that's the case, force it
  	     into a register.  */
  	  if (!SMALL_OPERAND (INTVAL (cons)))
! 	    cons = force_reg (dst_mode, cons);
  	  riscv_emit_binary (PLUS, dest, dest, cons);
  	  return true;
  	}
        /* imm, reg  */
!       else if (CONST_INT_P (cons)
! 	       && cons != CONST0_RTX (dst_mode)
! 	       && (REG_P (alt) || SUBREG_P (alt)))
  	{
  	  /* Optimize for register value of 0.  */
! 	  if (code == NE
! 	      && rtx_equal_p (op0, alt)
! 	      && op1 == CONST0_RTX (dst_mode))
  	    {
  	      rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	      cons = force_reg (dst_mode, cons);
  	      emit_insn (gen_rtx_SET (dest,
! 				      gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							    cons, alt)));
  	      return true;
  	    }
*************** riscv_expand_conditional_move (rtx dest,
*** 5499,5545 ****
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  
! 	  rtx temp1 = gen_reg_rtx (mode);
! 	  rtx temp2 = gen_int_mode (-1 * INTVAL (cons), mode);
  
  	  /* TEMP2 and/or CONS might not fit into a signed 12 bit immediate
  	     suitable for an addi instruction.  If that's the case, force it
  	     into a register.  */
  	  if (!SMALL_OPERAND (INTVAL (temp2)))
! 	    temp2 = force_reg (mode, temp2);
  	  if (!SMALL_OPERAND (INTVAL (cons)))
! 	    cons = force_reg (mode, cons);
  
  	  riscv_emit_binary (PLUS, temp1, alt, temp2);
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (mode, cond,
! 							CONST0_RTX (mode),
  							temp1)));
  	  riscv_emit_binary (PLUS, dest, dest, cons);
  	  return true;
  	}
        /* reg, 0 or imm, 0  */
!       else if ((REG_P (cons)
! 		|| (CONST_INT_P (cons) && cons != CONST0_RTX (mode)))
! 	       && alt == CONST0_RTX (mode))
  	{
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	  cons = force_reg (mode, cons);
! 	  emit_insn (gen_rtx_SET (dest, gen_rtx_IF_THEN_ELSE (mode, cond,
  							      cons, alt)));
  	  return true;
  	}
        /* reg, imm  */
!       else if (REG_P (cons) && CONST_INT_P (alt) && alt != CONST0_RTX (mode))
  	{
  	  /* Optimize for register value of 0.  */
! 	  if (code == EQ && rtx_equal_p (op0, cons) && op1 == CONST0_RTX (mode))
  	    {
  	      rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	      alt = force_reg (mode, alt);
  	      emit_insn (gen_rtx_SET (dest,
! 				      gen_rtx_IF_THEN_ELSE (mode, cond,
  							    cons, alt)));
  	      return true;
  	    }
--- 5594,5644 ----
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  
! 	  rtx temp1 = gen_reg_rtx (dst_mode);
! 	  rtx temp2 = gen_int_mode (-1 * INTVAL (cons), dst_mode);
  
  	  /* TEMP2 and/or CONS might not fit into a signed 12 bit immediate
  	     suitable for an addi instruction.  If that's the case, force it
  	     into a register.  */
  	  if (!SMALL_OPERAND (INTVAL (temp2)))
! 	    temp2 = force_reg (dst_mode, temp2);
  	  if (!SMALL_OPERAND (INTVAL (cons)))
! 	    cons = force_reg (dst_mode, cons);
  
  	  riscv_emit_binary (PLUS, temp1, alt, temp2);
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (dst_mode, cond,
! 							CONST0_RTX (dst_mode),
  							temp1)));
  	  riscv_emit_binary (PLUS, dest, dest, cons);
  	  return true;
  	}
        /* reg, 0 or imm, 0  */
!       else if (((REG_P (cons) || SUBREG_P (cons))
! 		|| (CONST_INT_P (cons) && cons != CONST0_RTX (dst_mode)))
! 	       && alt == CONST0_RTX (dst_mode))
  	{
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	  cons = force_reg (dst_mode, cons);
! 	  emit_insn (gen_rtx_SET (dest, gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							      cons, alt)));
  	  return true;
  	}
        /* reg, imm  */
!       else if ((REG_P (cons) || (SUBREG_P (cons)))
! 	       && CONST_INT_P (alt)
! 	       && alt != CONST0_RTX (dst_mode))
  	{
  	  /* Optimize for register value of 0.  */
! 	  if (code == EQ
! 	      && rtx_equal_p (op0, cons)
! 	      && op1 == CONST0_RTX (dst_mode))
  	    {
  	      rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	      alt = force_reg (dst_mode, alt);
  	      emit_insn (gen_rtx_SET (dest,
! 				      gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							    cons, alt)));
  	      return true;
  	    }
*************** riscv_expand_conditional_move (rtx dest,
*** 5547,5599 ****
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  
! 	  rtx temp1 = gen_reg_rtx (mode);
! 	  rtx temp2 = gen_int_mode (-1 * INTVAL (alt), mode);
  
  	  /* TEMP2 and/or ALT might not fit into a signed 12 bit immediate
  	     suitable for an addi instruction.  If that's the case, force it
  	     into a register.  */
  	  if (!SMALL_OPERAND (INTVAL (temp2)))
! 	    temp2 = force_reg (mode, temp2);
  	  if (!SMALL_OPERAND (INTVAL (alt)))
! 	    alt = force_reg (mode, alt);
  
  	  riscv_emit_binary (PLUS, temp1, cons, temp2);
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (mode, cond,
  							temp1,
! 							CONST0_RTX (mode))));
  	  riscv_emit_binary (PLUS, dest, dest, alt);
  	  return true;
  	}
        /* reg, reg  */
!       else if (REG_P (cons) && REG_P (alt))
  	{
  	  if (((code == EQ && rtx_equal_p (cons, op0))
  	       || (code == NE && rtx_equal_p (alt, op0)))
! 	      && op1 == CONST0_RTX (mode))
  	    {
  	      rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	      alt = force_reg (mode, alt);
  	      emit_insn (gen_rtx_SET (dest,
! 				      gen_rtx_IF_THEN_ELSE (mode, cond,
  							    cons, alt)));
  	      return true;
  	    }
  
! 	  rtx reg1 = gen_reg_rtx (mode);
! 	  rtx reg2 = gen_reg_rtx (mode);
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond1 = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  	  rtx cond2 = gen_rtx_fmt_ee (code == NE ? EQ : NE,
  				      GET_MODE (op0), op0, op1);
  	  emit_insn (gen_rtx_SET (reg2,
! 				  gen_rtx_IF_THEN_ELSE (mode, cond2,
! 							CONST0_RTX (mode),
  							cons)));
  	  emit_insn (gen_rtx_SET (reg1,
! 				  gen_rtx_IF_THEN_ELSE (mode, cond1,
! 							CONST0_RTX (mode),
  							alt)));
  	  riscv_emit_binary (PLUS, dest, reg1, reg2);
  	  return true;
--- 5646,5699 ----
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  
! 	  rtx temp1 = gen_reg_rtx (dst_mode);
! 	  rtx temp2 = gen_int_mode (-1 * INTVAL (alt), dst_mode);
  
  	  /* TEMP2 and/or ALT might not fit into a signed 12 bit immediate
  	     suitable for an addi instruction.  If that's the case, force it
  	     into a register.  */
  	  if (!SMALL_OPERAND (INTVAL (temp2)))
! 	    temp2 = force_reg (dst_mode, temp2);
  	  if (!SMALL_OPERAND (INTVAL (alt)))
! 	    alt = force_reg (dst_mode, alt);
  
  	  riscv_emit_binary (PLUS, temp1, cons, temp2);
  	  emit_insn (gen_rtx_SET (dest,
! 				  gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							temp1,
! 							CONST0_RTX (dst_mode))));
  	  riscv_emit_binary (PLUS, dest, dest, alt);
  	  return true;
  	}
        /* reg, reg  */
!       else if ((REG_P (cons) || SUBREG_P (cons))
! 	       && (REG_P (alt) || SUBREG_P (alt)))
  	{
  	  if (((code == EQ && rtx_equal_p (cons, op0))
  	       || (code == NE && rtx_equal_p (alt, op0)))
! 	      && op1 == CONST0_RTX (dst_mode))
  	    {
  	      rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
! 	      alt = force_reg (dst_mode, alt);
  	      emit_insn (gen_rtx_SET (dest,
! 				      gen_rtx_IF_THEN_ELSE (dst_mode, cond,
  							    cons, alt)));
  	      return true;
  	    }
  
! 	  rtx reg1 = gen_reg_rtx (dst_mode);
! 	  rtx reg2 = gen_reg_rtx (dst_mode);
  	  riscv_emit_int_compare (&code, &op0, &op1, true);
  	  rtx cond1 = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1);
  	  rtx cond2 = gen_rtx_fmt_ee (code == NE ? EQ : NE,
  				      GET_MODE (op0), op0, op1);
  	  emit_insn (gen_rtx_SET (reg2,
! 				  gen_rtx_IF_THEN_ELSE (dst_mode, cond2,
! 							CONST0_RTX (dst_mode),
  							cons)));
  	  emit_insn (gen_rtx_SET (reg1,
! 				  gen_rtx_IF_THEN_ELSE (dst_mode, cond1,
! 							CONST0_RTX (dst_mode),
  							alt)));
  	  riscv_emit_binary (PLUS, dest, reg1, reg2);
  	  return true;
*************** riscv_register_move_cost (machine_mode m
*** 9781,9787 ****
        if (from_is_gpr)
  	return get_gr2vr_cost ();
        else if (from_is_fpr)
! 	return get_vector_costs ()->regmove->FR2VR;
      }
  
    return riscv_secondary_memory_needed (mode, from, to) ? 8 : 2;
--- 9881,9887 ----
        if (from_is_gpr)
  	return get_gr2vr_cost ();
        else if (from_is_fpr)
! 	return get_fr2vr_cost ();
      }
  
    return riscv_secondary_memory_needed (mode, from, to) ? 8 : 2;
*************** riscv_emit_frm_mode_set (int mode, int p
*** 12182,12188 ****
  	  && prev_mode != riscv_vector::FRM_DYN
  	  && prev_mode != riscv_vector::FRM_DYN_CALL)
        /* Restore frm value when switch to DYN mode.  */
!       || (mode == riscv_vector::FRM_DYN
  	  && prev_mode != riscv_vector::FRM_DYN_CALL);
  
    if (restore_p)
--- 12282,12288 ----
  	  && prev_mode != riscv_vector::FRM_DYN
  	  && prev_mode != riscv_vector::FRM_DYN_CALL)
        /* Restore frm value when switch to DYN mode.  */
!       || (STATIC_FRM_P (cfun) && mode == riscv_vector::FRM_DYN
  	  && prev_mode != riscv_vector::FRM_DYN_CALL);
  
    if (restore_p)
*************** riscv_emit_mode_set (int entity, int mod
*** 12209,12265 ****
      }
  }
  
- /* Adjust the FRM_NONE insn after a call to FRM_DYN for the
-    underlying emit.  */
- 
- static int
- riscv_frm_adjust_mode_after_call (rtx_insn *cur_insn, int mode)
- {
-   rtx_insn *insn = prev_nonnote_nondebug_insn_bb (cur_insn);
- 
-   if (insn && CALL_P (insn))
-     return riscv_vector::FRM_DYN;
- 
-   return mode;
- }
- 
- /* Insert the backup frm insn to the end of the bb if and only if the call
-    is the last insn of this bb.  */
- 
- static void
- riscv_frm_emit_after_bb_end (rtx_insn *cur_insn)
- {
-   edge eg;
-   bool abnormal_edge_p = false;
-   edge_iterator eg_iterator;
-   basic_block bb = BLOCK_FOR_INSN (cur_insn);
- 
-   FOR_EACH_EDGE (eg, eg_iterator, bb->succs)
-     {
-       if (eg->flags & EDGE_ABNORMAL)
- 	abnormal_edge_p = true;
-       else
- 	{
- 	  start_sequence ();
- 	  emit_insn (gen_frrmsi (DYNAMIC_FRM_RTL (cfun)));
- 	  rtx_insn *backup_insn = end_sequence ();
- 
- 	  insert_insn_on_edge (backup_insn, eg);
- 	}
-     }
- 
-   if (abnormal_edge_p)
-     {
-       start_sequence ();
-       emit_insn (gen_frrmsi (DYNAMIC_FRM_RTL (cfun)));
-       rtx_insn *backup_insn = end_sequence ();
- 
-       insert_insn_end_basic_block (backup_insn, bb);
-     }
- 
-   commit_edge_insertions ();
- }
- 
  /* Return mode that frm must be switched into
     prior to the execution of insn.  */
  
--- 12309,12314 ----
*************** riscv_frm_mode_needed (rtx_insn *cur_ins
*** 12271,12303 ****
        /* The dynamic frm will be initialized only onece during cfun.  */
        DYNAMIC_FRM_RTL (cfun) = gen_reg_rtx (SImode);
        emit_insn_at_entry (gen_frrmsi (DYNAMIC_FRM_RTL (cfun)));
      }
  
    if (CALL_P (cur_insn))
      {
!       rtx_insn *insn = next_nonnote_nondebug_insn_bb (cur_insn);
! 
!       if (!insn)
! 	riscv_frm_emit_after_bb_end (cur_insn);
! 
        return riscv_vector::FRM_DYN_CALL;
      }
  
    int mode = code >= 0 ? get_attr_frm_mode (cur_insn) : riscv_vector::FRM_NONE;
  
    if (mode == riscv_vector::FRM_NONE)
!       /* After meet a call, we need to backup the frm because it may be
! 	 updated during the call. Here, for each insn, we will check if
! 	 the previous insn is a call or not. When previous insn is call,
! 	 there will be 2 cases for the emit mode set.
! 
! 	 1. Current insn is not MODE_NONE, then the mode switch framework
! 	    will do the mode switch from MODE_CALL to MODE_NONE natively.
! 	 2. Current insn is MODE_NONE, we need to adjust the MODE_NONE to
! 	    the MODE_DYN, and leave the mode switch itself to perform
! 	    the emit mode set.
!        */
!     mode = riscv_frm_adjust_mode_after_call (cur_insn, mode);
  
    return mode;
  }
--- 12320,12344 ----
        /* The dynamic frm will be initialized only onece during cfun.  */
        DYNAMIC_FRM_RTL (cfun) = gen_reg_rtx (SImode);
        emit_insn_at_entry (gen_frrmsi (DYNAMIC_FRM_RTL (cfun)));
+       CFUN_IN_CALL (cfun) = false;
      }
  
    if (CALL_P (cur_insn))
      {
!       CFUN_IN_CALL (cfun) = true;
        return riscv_vector::FRM_DYN_CALL;
      }
  
    int mode = code >= 0 ? get_attr_frm_mode (cur_insn) : riscv_vector::FRM_NONE;
  
    if (mode == riscv_vector::FRM_NONE)
!     {
!       if (CFUN_IN_CALL (cfun))
! 	{
! 	  CFUN_IN_CALL (cfun) = false;
! 	  return riscv_vector::FRM_DYN;
! 	}
!     }
  
    return mode;
  }
*************** riscv_mode_needed (int entity, rtx_insn
*** 12390,12430 ****
      }
  }
  
- /* Return TRUE if the rouding mode is dynamic.  */
- 
- static bool
- riscv_dynamic_frm_mode_p (int mode)
- {
-   return mode == riscv_vector::FRM_DYN
- 	 || mode == riscv_vector::FRM_DYN_CALL
- 	 || mode == riscv_vector::FRM_DYN_EXIT;
- }
- 
- /* Implement TARGET_MODE_CONFLUENCE.  */
- 
- static int
- riscv_mode_confluence (int entity, int mode1, int mode2)
- {
-   switch (entity)
-     {
-     case RISCV_VXRM:
-       return VXRM_MODE_NONE;
-     case RISCV_FRM:
-       {
- 	/* FRM_DYN, FRM_DYN_CALL and FRM_DYN_EXIT are all compatible.
- 	   Although we already try to set the mode needed to FRM_DYN after a
- 	   function call, there are still some corner cases where both FRM_DYN
- 	   and FRM_DYN_CALL may appear on incoming edges.  */
- 	if (riscv_dynamic_frm_mode_p (mode1)
- 	    && riscv_dynamic_frm_mode_p (mode2))
- 	  return riscv_vector::FRM_DYN;
- 	return riscv_vector::FRM_NONE;
-       }
-     default:
-       gcc_unreachable ();
-     }
- }
- 
  /* Return TRUE that an insn is asm.  */
  
  static bool
--- 12431,12436 ----
*************** get_gr2vr_cost ()
*** 12647,12652 ****
--- 12653,12673 ----
    return cost;
  }
  
+ /* Return the cost of moving data from floating-point to vector register.
+    It will take the value of --param=fpr2vr-cost if it is provided.
+    Otherwise the default regmove->FR2VR will be returned.  */
+ 
+ int
+ get_fr2vr_cost ()
+ {
+   int cost = get_vector_costs ()->regmove->FR2VR;
+ 
+   if (fpr2vr_cost != FPR2VR_COST_UNPROVIDED)
+     cost = fpr2vr_cost;
+ 
+   return cost;
+ }
+ 
  /* Implement targetm.vectorize.builtin_vectorization_cost.  */
  
  static int
*************** riscv_builtin_vectorization_cost (enum v
*** 12712,12719 ****
      case vec_construct:
  	{
  	  /* TODO: This is too pessimistic in case we can splat.  */
! 	  int regmove_cost = fp ? costs->regmove->FR2VR
! 	    : get_gr2vr_cost ();
  	  return (regmove_cost + common_costs->scalar_to_vec_cost)
  	    * estimated_poly_value (TYPE_VECTOR_SUBPARTS (vectype));
  	}
--- 12733,12739 ----
      case vec_construct:
  	{
  	  /* TODO: This is too pessimistic in case we can splat.  */
! 	  int regmove_cost = fp ? get_fr2vr_cost () : get_gr2vr_cost ();
  	  return (regmove_cost + common_costs->scalar_to_vec_cost)
  	    * estimated_poly_value (TYPE_VECTOR_SUBPARTS (vectype));
  	}
*************** synthesize_and (rtx operands[3])
*** 15014,15021 ****
  #define TARGET_MODE_EMIT riscv_emit_mode_set
  #undef TARGET_MODE_NEEDED
  #define TARGET_MODE_NEEDED riscv_mode_needed
- #undef TARGET_MODE_CONFLUENCE
- #define TARGET_MODE_CONFLUENCE riscv_mode_confluence
  #undef TARGET_MODE_AFTER
  #define TARGET_MODE_AFTER riscv_mode_after
  #undef TARGET_MODE_ENTRY
--- 15034,15039 ----
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv.md gcc-16-20250608/gcc/config/riscv/riscv.md
*** gcc-16-20250601/gcc/config/riscv/riscv.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv.md	Sun Jun  8 22:32:17 2025
***************
*** 4834,4839 ****
--- 4834,4857 ----
    [(set_attr "type" "move")
     (set_attr "mode" "<MODE>")])
  
+ ;; If we're trying to create 0 or 2^n-1 based on the result of
+ ;; a test such as (lt (reg) (const_int 0)), we'll see a splat of
+ ;; the sign bit across a GPR using srai, then a logical and to
+ ;; mask off high bits.  We can replace the logical and with
+ ;; a logical right shift which works without constant synthesis
+ ;; for larger constants.
+ (define_split
+   [(set (match_operand:X 0 "register_operand")
+ 	(and:X (ashiftrt:X (match_operand:X 1 "register_operand")
+ 			   (match_operand 2 "const_int_operand"))
+ 	       (match_operand 3 "const_int_operand")))]
+   "(INTVAL (operands[2]) == BITS_PER_WORD - 1
+     && exact_log2 (INTVAL (operands[3]) + 1) >= 0)"
+   [(set (match_dup 0) (ashiftrt:X (match_dup 1) (match_dup 2)))
+    (set (match_dup 0) (lshiftrt:X (match_dup 0) (match_dup 3)))]
+   { operands[3] = GEN_INT (BITS_PER_WORD
+ 			   - exact_log2 (INTVAL (operands[3]) + 1)); })
+ 
  (include "bitmanip.md")
  (include "crypto.md")
  (include "sync.md")
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/riscv.opt gcc-16-20250608/gcc/config/riscv/riscv.opt
*** gcc-16-20250601/gcc/config/riscv/riscv.opt	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/riscv.opt	Sun Jun  8 22:32:17 2025
*************** Max number of bytes to compare as part o
*** 286,291 ****
--- 286,295 ----
  Target RejectNegative Joined UInteger Var(gpr2vr_cost) Init(GPR2VR_COST_UNPROVIDED)
  Set the cost value of the rvv instruction when operate from GPR to VR.
  
+ -param=fpr2vr-cost=
+ Target RejectNegative Joined UInteger Var(fpr2vr_cost) Init(FPR2VR_COST_UNPROVIDED)
+ Set the cost value of the rvv instruction when operate from FPR to VR.
+ 
  -param=riscv-autovec-mode=
  Target Undocumented RejectNegative Joined Var(riscv_autovec_mode) Save
  Set the only autovec mode to try.
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/t-riscv gcc-16-20250608/gcc/config/riscv/t-riscv
*** gcc-16-20250601/gcc/config/riscv/t-riscv	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/t-riscv	Sun Jun  8 22:32:17 2025
*************** RISCV_EXT_DEFS = \
*** 198,216 ****
  
  $(srcdir)/config/riscv/riscv-ext.opt: $(RISCV_EXT_DEFS)
  
! build/gen-riscv-ext-opt$(build_exeext): $(srcdir)/config/riscv/gen-riscv-ext-opt.cc \
  	$(RISCV_EXT_DEFS)
! 	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $< -o $@
  
  s-riscv-ext.opt: build/gen-riscv-ext-opt$(build_exeext)
  	$(RUN_GEN) build/gen-riscv-ext-opt$(build_exeext) > tmp-riscv-ext.opt
  	$(SHELL) $(srcdir)/../move-if-change tmp-riscv-ext.opt $(srcdir)/config/riscv/riscv-ext.opt
  	$(STAMP) s-riscv-ext.opt
  
! build/gen-riscv-ext-texi$(build_exeext): $(srcdir)/config/riscv/gen-riscv-ext-texi.cc \
  	$(RISCV_EXT_DEFS)
! 	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $< -o $@
  
  
  $(srcdir)/doc/riscv-ext.texi: $(RISCV_EXT_DEFS)
  $(srcdir)/doc/riscv-ext.texi: s-riscv-ext.texi ; @true
--- 198,221 ----
  
  $(srcdir)/config/riscv/riscv-ext.opt: $(RISCV_EXT_DEFS)
  
! build/gen-riscv-ext-opt.o: $(srcdir)/config/riscv/gen-riscv-ext-opt.cc \
  	$(RISCV_EXT_DEFS)
! 	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) -c $< -o $@
! 
! build/gen-riscv-ext-opt$(build_exeext): build/gen-riscv-ext-opt.o
! 	$(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ $<
  
  s-riscv-ext.opt: build/gen-riscv-ext-opt$(build_exeext)
  	$(RUN_GEN) build/gen-riscv-ext-opt$(build_exeext) > tmp-riscv-ext.opt
  	$(SHELL) $(srcdir)/../move-if-change tmp-riscv-ext.opt $(srcdir)/config/riscv/riscv-ext.opt
  	$(STAMP) s-riscv-ext.opt
  
! build/gen-riscv-ext-texi.o: $(srcdir)/config/riscv/gen-riscv-ext-texi.cc \
  	$(RISCV_EXT_DEFS)
! 	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) -c $< -o $@
  
+ build/gen-riscv-ext-texi$(build_exeext): build/gen-riscv-ext-texi.o
+ 	$(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ $<
  
  $(srcdir)/doc/riscv-ext.texi: $(RISCV_EXT_DEFS)
  $(srcdir)/doc/riscv-ext.texi: s-riscv-ext.texi ; @true
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/vector-iterators.md gcc-16-20250608/gcc/config/riscv/vector-iterators.md
*** gcc-16-20250601/gcc/config/riscv/vector-iterators.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/vector-iterators.md	Sun Jun  8 22:32:17 2025
***************
*** 4041,4047 ****
    smax umax smin umin mult div udiv mod umod
  ])
  
! (define_code_iterator any_int_binop_no_shift_vx [
    plus minus and ior xor mult
  ])
  
--- 4041,4051 ----
    smax umax smin umin mult div udiv mod umod
  ])
  
! (define_code_iterator any_int_binop_no_shift_v_vdup [
!   plus minus and ior xor mult div udiv
! ])
! 
! (define_code_iterator any_int_binop_no_shift_vdup_v [
    plus minus and ior xor mult
  ])
  
diff -Nrcpad gcc-16-20250601/gcc/config/riscv/zicond.md gcc-16-20250608/gcc/config/riscv/zicond.md
*** gcc-16-20250601/gcc/config/riscv/zicond.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/riscv/zicond.md	Sun Jun  8 22:32:17 2025
***************
*** 234,238 ****
  				      (const_int 0)
  				      (match_dup 4)))])
  
  
! 
--- 234,272 ----
  				      (const_int 0)
  				      (match_dup 4)))])
  
+ ;; We can splat the sign bit across a GPR with a arithmetic right shift
+ ;; which gives us a 0, -1 result.  We then turn on bit #0 unconditionally
+ ;; which results in 1, -1.  There's probably other cases that could be
+ ;; handled, this seems particularly important though.
+ (define_split
+   [(set (match_operand:X 0 "register_operand")
+ 	(plus:X (if_then_else:X (ge:X (match_operand:X 1 "register_operand")
+ 				      (const_int 0))
+ 				(match_operand 2 "const_int_operand")
+ 				(match_operand 3 "const_int_operand"))
+ 		(match_operand 4 "const_int_operand")))]
+   "((TARGET_ZICOND_LIKE || TARGET_XTHEADCONDMOV)
+     && INTVAL (operands[2]) + INTVAL (operands[4]) == 1
+     && INTVAL (operands[3]) + INTVAL (operands[4]) == -1)"
+   [(set (match_dup 0) (ashiftrt:X (match_dup 1) (match_dup 2)))
+    (set (match_dup 0) (ior:X (match_dup 0) (const_int 1)))]
+   { operands[2] = GEN_INT (GET_MODE_BITSIZE (word_mode) - 1); })
  
! ;; Similarly, but the condition and true/false values are reversed
! ;;
! ;; Note the case where the condition is reversed, but not the true/false
! ;; values.  Or vice-versa is not handled because we don't support 4->3
! ;; splits.
! (define_split
!   [(set (match_operand:X 0 "register_operand")
! 	(plus:X (if_then_else:X (lt:X (match_operand:X 1 "register_operand")
! 				      (const_int 0))
! 				(match_operand 2 "const_int_operand")
! 				(match_operand 3 "const_int_operand"))
! 		(match_operand 4 "const_int_operand")))]
!   "((TARGET_ZICOND_LIKE || TARGET_XTHEADCONDMOV)
!     && INTVAL (operands[2]) + INTVAL (operands[4]) == -1
!     && INTVAL (operands[3]) + INTVAL (operands[4]) == 1)"
!   [(set (match_dup 0) (ashiftrt:X (match_dup 1) (match_dup 2)))
!    (set (match_dup 0) (ior:X (match_dup 0) (const_int 1)))]
!   { operands[2] = GEN_INT (GET_MODE_BITSIZE (word_mode) - 1); })
diff -Nrcpad gcc-16-20250601/gcc/config/rs6000/rs6000-builtin.cc gcc-16-20250608/gcc/config/rs6000/rs6000-builtin.cc
*** gcc-16-20250601/gcc/config/rs6000/rs6000-builtin.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/rs6000/rs6000-builtin.cc	Sun Jun  8 22:32:17 2025
*************** fold_build_vec_cmp (tree_code code, tree
*** 915,921 ****
    tree cmp_type = truth_type_for (type);
    tree zero_vec = build_zero_cst (type);
    tree minus_one_vec = build_minus_one_cst (type);
!   tree temp = create_tmp_reg_or_ssa_name (cmp_type);
    gimple *g = gimple_build_assign (temp, code, arg0, arg1);
    gsi_insert_before (gsi, g, GSI_SAME_STMT);
    return fold_build3 (VEC_COND_EXPR, type, temp, minus_one_vec, zero_vec);
--- 915,921 ----
    tree cmp_type = truth_type_for (type);
    tree zero_vec = build_zero_cst (type);
    tree minus_one_vec = build_minus_one_cst (type);
!   tree temp = make_ssa_name (cmp_type);
    gimple *g = gimple_build_assign (temp, code, arg0, arg1);
    gsi_insert_before (gsi, g, GSI_SAME_STMT);
    return fold_build3 (VEC_COND_EXPR, type, temp, minus_one_vec, zero_vec);
*************** rs6000_gimple_fold_mma_builtin (gimple_s
*** 1106,1112 ****
        if (TREE_TYPE (src_ptr) != src_type)
  	src_ptr = build1 (NOP_EXPR, src_type, src_ptr);
  
!       tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type));
        gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq);
  
        /* If we are not disassembling an accumulator/pair or our destination is
--- 1106,1112 ----
        if (TREE_TYPE (src_ptr) != src_type)
  	src_ptr = build1 (NOP_EXPR, src_type, src_ptr);
  
!       tree src = make_ssa_name (TREE_TYPE (src_type));
        gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq);
  
        /* If we are not disassembling an accumulator/pair or our destination is
*************** rs6000_gimple_fold_mma_builtin (gimple_s
*** 1130,1136 ****
  	{
  	  new_decl = rs6000_builtin_decls[RS6000_BIF_XXMFACC_INTERNAL];
  	  new_call = gimple_build_call (new_decl, 1, src);
! 	  src = create_tmp_reg_or_ssa_name (vector_quad_type_node);
  	  gimple_call_set_lhs (new_call, src);
  	  gimple_seq_add_stmt (&new_seq, new_call);
  	}
--- 1130,1136 ----
  	{
  	  new_decl = rs6000_builtin_decls[RS6000_BIF_XXMFACC_INTERNAL];
  	  new_call = gimple_build_call (new_decl, 1, src);
! 	  src = make_ssa_name (vector_quad_type_node);
  	  gimple_call_set_lhs (new_call, src);
  	  gimple_seq_add_stmt (&new_seq, new_call);
  	}
*************** rs6000_gimple_fold_mma_builtin (gimple_s
*** 1146,1152 ****
  	  unsigned index = WORDS_BIG_ENDIAN ? i : nvec - 1 - i;
  	  tree dst = build2 (MEM_REF, unsigned_V16QI_type_node, dst_base,
  			     build_int_cst (dst_type, index * 16));
! 	  tree dstssa = create_tmp_reg_or_ssa_name (unsigned_V16QI_type_node);
  	  new_call = gimple_build_call (new_decl, 2, src,
  					build_int_cstu (uint16_type_node, i));
  	  gimple_call_set_lhs (new_call, dstssa);
--- 1146,1152 ----
  	  unsigned index = WORDS_BIG_ENDIAN ? i : nvec - 1 - i;
  	  tree dst = build2 (MEM_REF, unsigned_V16QI_type_node, dst_base,
  			     build_int_cst (dst_type, index * 16));
! 	  tree dstssa = make_ssa_name (unsigned_V16QI_type_node);
  	  new_call = gimple_build_call (new_decl, 2, src,
  					build_int_cstu (uint16_type_node, i));
  	  gimple_call_set_lhs (new_call, dstssa);
*************** rs6000_gimple_fold_mma_builtin (gimple_s
*** 1204,1210 ****
      {
        /* This built-in has a pass-by-reference accumulator input, so load it
  	 into a temporary accumulator for use as a pass-by-value input.  */
!       op[0] = create_tmp_reg_or_ssa_name (vector_quad_type_node);
        for (unsigned i = 1; i < nopnds; i++)
  	op[i] = gimple_call_arg (stmt, i);
        gimplify_assign (op[0], build_simple_mem_ref (acc), &new_seq);
--- 1204,1210 ----
      {
        /* This built-in has a pass-by-reference accumulator input, so load it
  	 into a temporary accumulator for use as a pass-by-value input.  */
!       op[0] = make_ssa_name (vector_quad_type_node);
        for (unsigned i = 1; i < nopnds; i++)
  	op[i] = gimple_call_arg (stmt, i);
        gimplify_assign (op[0], build_simple_mem_ref (acc), &new_seq);
*************** rs6000_gimple_fold_mma_builtin (gimple_s
*** 1252,1260 ****
      }
  
    if (fncode == RS6000_BIF_BUILD_PAIR || fncode == RS6000_BIF_ASSEMBLE_PAIR_V)
!     lhs = create_tmp_reg_or_ssa_name (vector_pair_type_node);
    else
!     lhs = create_tmp_reg_or_ssa_name (vector_quad_type_node);
    gimple_call_set_lhs (new_call, lhs);
    gimple_seq_add_stmt (&new_seq, new_call);
    gimplify_assign (build_simple_mem_ref (acc), lhs, &new_seq);
--- 1252,1260 ----
      }
  
    if (fncode == RS6000_BIF_BUILD_PAIR || fncode == RS6000_BIF_ASSEMBLE_PAIR_V)
!     lhs = make_ssa_name (vector_pair_type_node);
    else
!     lhs = make_ssa_name (vector_quad_type_node);
    gimple_call_set_lhs (new_call, lhs);
    gimple_seq_add_stmt (&new_seq, new_call);
    gimplify_assign (build_simple_mem_ref (acc), lhs, &new_seq);
*************** rs6000_gimple_fold_builtin (gimple_stmt_
*** 1450,1456 ****
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = create_tmp_reg_or_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_NOT_EXPR, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
--- 1450,1456 ----
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = make_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_NOT_EXPR, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
*************** rs6000_gimple_fold_builtin (gimple_stmt_
*** 1472,1478 ****
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = create_tmp_reg_or_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_AND_EXPR, arg0, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
--- 1472,1478 ----
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = make_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_AND_EXPR, arg0, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
*************** rs6000_gimple_fold_builtin (gimple_stmt_
*** 1512,1518 ****
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = create_tmp_reg_or_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_NOT_EXPR, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
--- 1512,1518 ----
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = make_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_NOT_EXPR, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
*************** rs6000_gimple_fold_builtin (gimple_stmt_
*** 1552,1558 ****
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = create_tmp_reg_or_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_IOR_EXPR, arg0, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
--- 1552,1558 ----
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = make_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_IOR_EXPR, arg0, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
*************** rs6000_gimple_fold_builtin (gimple_stmt_
*** 1643,1649 ****
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = create_tmp_reg_or_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_XOR_EXPR, arg0, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
--- 1643,1649 ----
        arg0 = gimple_call_arg (stmt, 0);
        arg1 = gimple_call_arg (stmt, 1);
        lhs = gimple_call_lhs (stmt);
!       temp = make_ssa_name (TREE_TYPE (arg1));
        g = gimple_build_assign (temp, BIT_XOR_EXPR, arg0, arg1);
        gimple_set_location (g, gimple_location (stmt));
        gsi_insert_before (gsi, g, GSI_SAME_STMT);
diff -Nrcpad gcc-16-20250601/gcc/config/xtensa/xtensa.cc gcc-16-20250608/gcc/config/xtensa/xtensa.cc
*** gcc-16-20250601/gcc/config/xtensa/xtensa.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/xtensa/xtensa.cc	Sun Jun  8 22:32:17 2025
*************** xtensa_modes_tieable_p (machine_mode mod
*** 3047,3052 ****
--- 3047,3054 ----
     'K'  CONST_INT, print number of bits in mask for EXTUI
     'R'  CONST_INT, print (X & 0x1f)
     'L'  CONST_INT, print ((32 - X) & 0x1f)
+    'U', CONST_DOUBLE:SF, print (REAL_EXP (rval) - 1)
+    'V', CONST_DOUBLE:SF, print (1 - REAL_EXP (rval))
     'D'  REG, print second register of double-word register operand
     'N'  MEM, print address of next word following a memory operand
     'v'  MEM, if memory reference is volatile, output a MEMW before it
*************** print_operand (FILE *file, rtx x, int le
*** 3143,3148 ****
--- 3145,3164 ----
  	output_operand_lossage ("invalid %%R value");
        break;
  
+     case 'U':
+       if (CONST_DOUBLE_P (x) && GET_MODE (x) == SFmode)
+ 	fprintf (file, "%d", REAL_EXP (CONST_DOUBLE_REAL_VALUE (x)) - 1);
+       else
+ 	output_operand_lossage ("invalid %%U value");
+       break;
+ 
+     case 'V':
+       if (CONST_DOUBLE_P (x) && GET_MODE (x) == SFmode)
+ 	fprintf (file, "%d", 1 - REAL_EXP (CONST_DOUBLE_REAL_VALUE (x)));
+       else
+ 	output_operand_lossage ("invalid %%V value");
+       break;
+ 
      case 'x':
        if (CONST_INT_P (x))
  	printx (file, INTVAL (x));
diff -Nrcpad gcc-16-20250601/gcc/config/xtensa/xtensa.md gcc-16-20250608/gcc/config/xtensa/xtensa.md
*** gcc-16-20250601/gcc/config/xtensa/xtensa.md	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config/xtensa/xtensa.md	Sun Jun  8 22:32:17 2025
***************
*** 41,46 ****
--- 41,48 ----
    UNSPEC_LSETUP_START
    UNSPEC_LSETUP_END
    UNSPEC_FRAME_BLOCKAGE
+   UNSPEC_CEIL
+   UNSPEC_FLOOR
  ])
  
  (define_c_enum "unspecv" [
***************
*** 103,108 ****
--- 105,115 ----
  (define_code_attr m_float [(float "float") (unsigned_float "ufloat")])
  (define_code_attr s_float [(float "") (unsigned_float "uns")])
  
+ ;; This iterator and attribute allow FP-to-integer rounding of two types
+ ;; to be generated from one template.
+ (define_int_iterator ANY_ROUND [UNSPEC_CEIL UNSPEC_FLOOR])
+ (define_int_attr m_round [(UNSPEC_CEIL "ceil") (UNSPEC_FLOOR "floor")])
+ 
  
  ;; Attributes.
  
***************
*** 1168,1179 ****
  	(any_fix:SI (mult:SF (match_operand:SF 1 "register_operand" "f")
  			     (match_operand:SF 2 "fix_scaling_operand" "F"))))]
    "TARGET_HARD_FLOAT"
! {
!   static char result[64];
!   sprintf (result, "<m_fix>.s\t%%0, %%1, %d",
! 	   REAL_EXP (CONST_DOUBLE_REAL_VALUE (operands[2])) - 1);
!   return result;
! }
    [(set_attr "type"	"fconv")
     (set_attr "mode"	"SF")
     (set_attr "length"	"3")])
--- 1175,1181 ----
  	(any_fix:SI (mult:SF (match_operand:SF 1 "register_operand" "f")
  			     (match_operand:SF 2 "fix_scaling_operand" "F"))))]
    "TARGET_HARD_FLOAT"
!   "<m_fix>.s\t%0, %1, %U2"
    [(set_attr "type"	"fconv")
     (set_attr "mode"	"SF")
     (set_attr "length"	"3")])
***************
*** 1192,1203 ****
  	(mult:SF (any_float:SF (match_operand:SI 1 "register_operand" "a"))
  		 (match_operand:SF 2 "float_scaling_operand" "F")))]
    "TARGET_HARD_FLOAT"
! {
!   static char result[64];
!   sprintf (result, "<m_float>.s\t%%0, %%1, %d",
! 	   1 - REAL_EXP (CONST_DOUBLE_REAL_VALUE (operands[2])));
!   return result;
! }
    [(set_attr "type"	"fconv")
     (set_attr "mode"	"SF")
     (set_attr "length"	"3")])
--- 1194,1229 ----
  	(mult:SF (any_float:SF (match_operand:SI 1 "register_operand" "a"))
  		 (match_operand:SF 2 "float_scaling_operand" "F")))]
    "TARGET_HARD_FLOAT"
!   "<m_float>.s\t%0, %1, %V2"
!   [(set_attr "type"	"fconv")
!    (set_attr "mode"	"SF")
!    (set_attr "length"	"3")])
! 
! (define_insn "l<m_round>sfsi2"
!   [(set (match_operand:SI 0 "register_operand" "=a")
! 	(unspec:SI [(match_operand:SF 1 "register_operand" "f")] ANY_ROUND))]
!   "TARGET_HARD_FLOAT"
!   "<m_round>.s\t%0, %1, 0"
!   [(set_attr "type"	"fconv")
!    (set_attr "mode"	"SF")
!    (set_attr "length"	"3")])
! 
! (define_insn "*l<m_round>sfsi2_2x"
!   [(set (match_operand:SI 0 "register_operand" "=a")
! 	(unspec:SI [(plus:SF (match_operand:SF 1 "register_operand" "f")
! 			     (match_dup 1))] ANY_ROUND))]
!   "TARGET_HARD_FLOAT"
!   "<m_round>.s\t%0, %1, 1"
!   [(set_attr "type"	"fconv")
!    (set_attr "mode"	"SF")
!    (set_attr "length"	"3")])
! 
! (define_insn "*l<m_round>sfsi2_scaled"
!   [(set (match_operand:SI 0 "register_operand" "=a")
! 	(unspec:SI [(mult:SF (match_operand:SF 1 "register_operand" "f")
! 			     (match_operand:SF 2 "fix_scaling_operand" "F"))] ANY_ROUND))]
!   "TARGET_HARD_FLOAT"
!   "<m_round>.s\t%0, %1, %U2"
    [(set_attr "type"	"fconv")
     (set_attr "mode"	"SF")
     (set_attr "length"	"3")])
diff -Nrcpad gcc-16-20250601/gcc/config.gcc gcc-16-20250608/gcc/config.gcc
*** gcc-16-20250601/gcc/config.gcc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/config.gcc	Sun Jun  8 22:32:16 2025
*************** case "${target}" in
*** 4611,4625 ****
  
  		for which in arch tune; do
  			eval "val=\$with_$which"
! 			case ${val} in
! 			"" | gfx900 | gfx906 | gfx908 | gfx90a | gfx90c | gfx1030 | gfx1036 | gfx1100 | gfx1103)
! 				# OK
! 				;;
! 			*)
  				echo "Unknown cpu used in --with-$which=$val." 1>&2
  				exit 1
! 				;;
! 			esac
  		done
  		[ "x$with_arch" = x ] && with_arch=gfx900
  
--- 4611,4623 ----
  
  		for which in arch tune; do
  			eval "val=\$with_$which"
! 			if test x"$val" != x \
! 			   && ! grep -q "GCN_DEVICE($val," \
! 					"${srcdir}/config/gcn/gcn-devices.def";
! 			then
  				echo "Unknown cpu used in --with-$which=$val." 1>&2
  				exit 1
! 			fi
  		done
  		[ "x$with_arch" = x ] && with_arch=gfx900
  
diff -Nrcpad gcc-16-20250601/gcc/coverage.cc gcc-16-20250608/gcc/coverage.cc
*** gcc-16-20250601/gcc/coverage.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/coverage.cc	Sun Jun  8 22:32:17 2025
*************** coverage_obj_finish (vec<constructor_elt
*** 1253,1258 ****
--- 1253,1261 ----
  void
  coverage_init (const char *filename)
  {
+   /* If we are in LTO, the profile will be read from object files.  */
+   if (in_lto_p)
+     return;
    const char *original_filename = filename;
    int original_len = strlen (original_filename);
  #if HAVE_DOS_BASED_FILE_SYSTEM
diff -Nrcpad gcc-16-20250601/gcc/cp/ChangeLog gcc-16-20250608/gcc/cp/ChangeLog
*** gcc-16-20250601/gcc/cp/ChangeLog	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/ChangeLog	Sun Jun  8 22:32:17 2025
***************
*** 1,3 ****
--- 1,105 ----
+ 2025-06-06  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120555
+ 	* decl2.cc (fn_being_defined, fn_template_being_defined): New.
+ 	(mark_used): Check fn_template_being_defined.
+ 
+ 2025-06-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/120224
+ 	* pt.cc (tsubst_function_decl): Return error_mark_node if
+ 	substituting into the formal parameter list failed.
+ 	(tsubst_decl) <case PARM_DECL>: Return error_mark_node
+ 	upon TREE_TYPE substitution failure, when in a SFINAE
+ 	context.  Return error_mark_node upon DECL_CHAIN substitution
+ 	failure.
+ 
+ 2025-06-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/118340
+ 	* constexpr.cc (maybe_constant_value): First try looking up each
+ 	operand in the cv_cache and reusing the result.
+ 
+ 2025-06-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* coroutines.cc (analyze_fn_parms): Move from free function..
+ 	(cp_coroutine_transform::analyze_fn_parms):... to method.
+ 	(cp_coroutine_transform::apply_transforms): Adjust call to
+ 	analyze_fn_parms.
+ 	* coroutines.h: Declare analyze_fn_parms.
+ 
+ 2025-06-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* coroutines.cc (expand_one_await_expression): Set the
+ 	initial_await_resume_called flag here.
+ 	(build_actor_fn): Populate the frame accessor for the
+ 	initial_await_resume_called flag.
+ 	(cp_coroutine_transform::wrap_original_function_body): Do
+ 	not modify the initial_await expression to include the
+ 	initial_await_resume_called flag here.
+ 
+ 2025-06-04  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120502
+ 	* cp-gimplify.cc (cp_fold_r) [TARGET_EXPR]: Do constexpr evaluation
+ 	before genericize.
+ 	* constexpr.cc (cxx_eval_store_expression): Add comment.
+ 
+ 2025-06-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	* name-lookup.h (operator|, operator|=): Define for WMB_Flags.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107600
+ 	* method.cc (destructible_expr): Fix refs and arrays of unknown
+ 	bound.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120506
+ 	* constexpr.cc (cxx_eval_outermost_constant_expr): Always check
+ 	CONSTRUCTOR_NO_CLEARING.
+ 
+ 2025-06-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* coroutines.cc (build_actor_fn): Remove an unused
+ 	label, guard the frame deallocation correctly, use
+ 	simpler APIs to build if and return statements.
+ 
+ 2025-06-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/118903
+ 	* constexpr.cc (potential_constant_expression_1): Emit
+ 	an error when co_await et. al. are used in constexpr
+ 	contexts.
+ 
+ 2025-06-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* error.cc (dump_expr): Add co_await, co_yield and co_return.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107600
+ 	* method.cc (destructible_expr): Handle non-classes.
+ 	(constructible_expr): Check for abstract class here...
+ 	(is_xible_helper): ...not here.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107600
+ 	* semantics.cc (trait_expr_value) [CPTK_HAS_TRIVIAL_DESTRUCTOR]:
+ 	Add cp_unevaluated.
+ 
+ 2025-06-02  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* cp-tree.h (maybe_convert_cond): Declare.
+ 	* parser.cc (cp_parser_omp_context_selector): Call
+ 	maybe_convert_cond and fold_build_cleanup_point_expr on the
+ 	expression for OMP_TRAIT_PROPERTY_BOOL_EXPR.
+ 	* pt.cc (tsubst_omp_context_selector): Likewise.
+ 	* semantics.cc (maybe_convert_cond): Remove static declaration.
+ 
  2025-05-30  Jason Merrill  <jason@redhat.com>
  
  	PR c++/113563
diff -Nrcpad gcc-16-20250601/gcc/cp/constexpr.cc gcc-16-20250608/gcc/cp/constexpr.cc
*** gcc-16-20250601/gcc/cp/constexpr.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/constexpr.cc	Sun Jun  8 22:32:17 2025
*************** cxx_eval_store_expression (const constex
*** 6413,6419 ****
  
    if (TREE_CLOBBER_P (init)
        && CLOBBER_KIND (init) < CLOBBER_OBJECT_END)
!     /* Only handle clobbers ending the lifetime of objects.  */
      return void_node;
  
    /* First we figure out where we're storing to.  */
--- 6413,6420 ----
  
    if (TREE_CLOBBER_P (init)
        && CLOBBER_KIND (init) < CLOBBER_OBJECT_END)
!     /* Only handle clobbers ending the lifetime of objects.
!        ??? We should probably set CONSTRUCTOR_NO_CLEARING.  */
      return void_node;
  
    /* First we figure out where we're storing to.  */
*************** cxx_eval_outermost_constant_expr (tree t
*** 9278,9285 ****
  
    /* After verify_constant because reduced_constant_expression_p can unset
       CONSTRUCTOR_NO_CLEARING.  */
!   if (!non_constant_p
!       && TREE_CODE (r) == CONSTRUCTOR && CONSTRUCTOR_NO_CLEARING (r))
      {
        if (!allow_non_constant)
  	error ("%qE is not a constant expression because it refers to "
--- 9279,9285 ----
  
    /* After verify_constant because reduced_constant_expression_p can unset
       CONSTRUCTOR_NO_CLEARING.  */
!   if (TREE_CODE (r) == CONSTRUCTOR && CONSTRUCTOR_NO_CLEARING (r))
      {
        if (!allow_non_constant)
  	error ("%qE is not a constant expression because it refers to "
*************** tree
*** 9488,9495 ****
--- 9488,9522 ----
  maybe_constant_value (tree t, tree decl /* = NULL_TREE */,
  		      mce_value manifestly_const_eval /* = mce_unknown */)
  {
+   tree orig_t = t;
    tree r;
  
+   if (EXPR_P (t) && manifestly_const_eval == mce_unknown)
+     {
+       /* Look up each operand in the cv_cache first to see if we've already
+ 	 reduced it, and reuse that result to avoid quadratic behavior if
+ 	 we're called when building up a large expression.  */
+       int n = cp_tree_operand_length (t);
+       tree *ops = XALLOCAVEC (tree, n);
+       bool rebuild = false;
+       for (int i = 0; i < n; ++i)
+ 	{
+ 	  ops[i] = TREE_OPERAND (t, i);
+ 	  if (tree *cached = hash_map_safe_get (cv_cache, ops[i]))
+ 	    if (*cached != ops[i])
+ 	      {
+ 		ops[i] = *cached;
+ 		rebuild = true;
+ 	      }
+ 	}
+       if (rebuild)
+ 	{
+ 	  t = copy_node (t);
+ 	  for (int i = 0; i < n; ++i)
+ 	    TREE_OPERAND (t, i) = ops[i];
+ 	}
+     }
+ 
    if (!is_nondependent_constant_expression (t))
      {
        if (TREE_OVERFLOW_P (t)
*************** maybe_constant_value (tree t, tree decl
*** 9507,9512 ****
--- 9534,9543 ----
      return fold_to_constant (t);
  
    if (manifestly_const_eval != mce_unknown)
+     /* TODO: Extend the cache to be mce_value aware.  And if we have a
+        previously cached mce_unknown result that's TREE_CONSTANT, it means
+        the reduced value is independent of mce_value and so we should
+        be able to reuse it in the mce_true/false case.  */
      return cxx_eval_outermost_constant_expr (t, true, true,
  					     manifestly_const_eval, false, decl);
  
*************** maybe_constant_value (tree t, tree decl
*** 9536,9542 ****
  		       || (TREE_CONSTANT (t) && !TREE_CONSTANT (r))
  		       || !cp_tree_equal (r, t));
    if (!c.evaluation_restricted_p ())
!     cv_cache->put (t, r);
    return r;
  }
  
--- 9567,9573 ----
  		       || (TREE_CONSTANT (t) && !TREE_CONSTANT (r))
  		       || !cp_tree_equal (r, t));
    if (!c.evaluation_restricted_p ())
!     cv_cache->put (orig_t, r);
    return r;
  }
  
*************** potential_constant_expression_1 (tree t,
*** 11024,11029 ****
--- 11055,11063 ----
      case CO_AWAIT_EXPR:
      case CO_YIELD_EXPR:
      case CO_RETURN_EXPR:
+       if (flags & tf_error)
+ 	constexpr_error (cp_expr_loc_or_loc (t, input_location), fundef_p,
+ 			 "%qE is not a constant expression", t);
        return false;
  
      /* Assume a TU-local entity is not constant, we'll error later when
diff -Nrcpad gcc-16-20250601/gcc/cp/coroutines.cc gcc-16-20250608/gcc/cp/coroutines.cc
*** gcc-16-20250601/gcc/cp/coroutines.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/coroutines.cc	Sun Jun  8 22:32:17 2025
*************** expand_one_await_expression (tree *expr,
*** 2027,2034 ****
    tree awaiter_calls = TREE_OPERAND (saved_co_await, 3);
  
    tree source = TREE_OPERAND (saved_co_await, 4);
!   bool is_final = (source
! 		   && TREE_INT_CST_LOW (source) == (int) FINAL_SUSPEND_POINT);
  
    /* Build labels for the destinations of the control flow when we are resuming
       or destroying.  */
--- 2027,2036 ----
    tree awaiter_calls = TREE_OPERAND (saved_co_await, 3);
  
    tree source = TREE_OPERAND (saved_co_await, 4);
!   bool is_final
!     = (source && TREE_INT_CST_LOW (source) == (int) FINAL_SUSPEND_POINT);
!   bool is_initial
!     = (source && TREE_INT_CST_LOW (source) == (int) INITIAL_SUSPEND_POINT);
  
    /* Build labels for the destinations of the control flow when we are resuming
       or destroying.  */
*************** expand_one_await_expression (tree *expr,
*** 2156,2161 ****
--- 2158,2170 ----
    /* Resume point.  */
    add_stmt (build_stmt (loc, LABEL_EXPR, resume_label));
  
+   if (is_initial && data->i_a_r_c)
+     {
+       r = cp_build_modify_expr (loc, data->i_a_r_c, NOP_EXPR, boolean_true_node,
+ 				tf_warning_or_error);
+       finish_expr_stmt (r);
+     }
+ 
    /* This will produce the value (if one is provided) from the co_await
       expression.  */
    tree resume_call = TREE_VEC_ELT (awaiter_calls, 2); /* await_resume().  */
*************** build_actor_fn (location_t loc, tree cor
*** 2543,2550 ****
  
    /* Finish the resume dispatcher.  */
    finish_switch_stmt (dispatcher);
-   finish_else_clause (lsb_if);
  
    finish_if_stmt (lsb_if);
  
    /* If we reach here then we've hit UB.  */
--- 2552,2559 ----
  
    /* Finish the resume dispatcher.  */
    finish_switch_stmt (dispatcher);
  
+   finish_else_clause (lsb_if);
    finish_if_stmt (lsb_if);
  
    /* If we reach here then we've hit UB.  */
*************** build_actor_fn (location_t loc, tree cor
*** 2583,2651 ****
    /* Add in our function body with the co_returns rewritten to final form.  */
    add_stmt (fnbody);
  
!   /* now do the tail of the function.  */
    r = build_stmt (loc, LABEL_EXPR, del_promise_label);
    add_stmt (r);
  
!   /* Destructors for the things we built explicitly.  */
    if (tree c = cxx_maybe_build_cleanup (promise_proxy, tf_warning_or_error))
!     add_stmt (c);
! 
!   tree del_frame_label
!     = create_named_label_with_ctx (loc, "coro.delete.frame", actor);
!   r = build_stmt (loc, LABEL_EXPR, del_frame_label);
!   add_stmt (r);
! 
!   /* Here deallocate the frame (if we allocated it), which we will have at
!      present.  */
!   tree fnf2_x
!    = coro_build_frame_access_expr (actor_frame, coro_frame_needs_free_id,
! 				   false, tf_warning_or_error);
  
!   tree need_free_if = begin_if_stmt ();
!   fnf2_x = build1 (CONVERT_EXPR, integer_type_node, fnf2_x);
!   tree cmp = build2 (NE_EXPR, integer_type_node, fnf2_x, integer_zero_node);
!   finish_if_stmt_cond (cmp, need_free_if);
    while (!param_dtor_list->is_empty ())
      {
        tree parm_id = param_dtor_list->pop ();
        tree a = coro_build_frame_access_expr (actor_frame, parm_id, false,
  					     tf_warning_or_error);
        if (tree dtor = cxx_maybe_build_cleanup (a, tf_warning_or_error))
! 	add_stmt (dtor);
      }
  
    /* Build the frame DTOR.  */
    tree del_coro_fr
      = build_coroutine_frame_delete_expr (actor_fp, frame_size,
  					 promise_type, loc);
    finish_expr_stmt (del_coro_fr);
    finish_then_clause (need_free_if);
!   tree scope = IF_SCOPE (need_free_if);
!   IF_SCOPE (need_free_if) = NULL;
!   r = do_poplevel (scope);
!   add_stmt (r);
  
!   /* done.  */
!   r = build_stmt (loc, RETURN_EXPR, NULL);
!   suppress_warning (r); /* We don't want a warning about this.  */
!   r = maybe_cleanup_point_expr_void (r);
!   add_stmt (r);
  
    /* This is the suspend return point.  */
!   r = build_stmt (loc, LABEL_EXPR, ret_label);
!   add_stmt (r);
  
!   r = build_stmt (loc, RETURN_EXPR, NULL);
!   suppress_warning (r); /* We don't want a warning about this.  */
!   r = maybe_cleanup_point_expr_void (r);
!   add_stmt (r);
  
    /* This is the 'continuation' return point.  For such a case we have a coro
       handle (from the await_suspend() call) and we want handle.resume() to
       execute as a tailcall allowing arbitrary chaining of coroutines.  */
!   r = build_stmt (loc, LABEL_EXPR, continue_label);
!   add_stmt (r);
  
    /* Should have been set earlier by the coro_initialized code.  */
    gcc_assert (void_coro_handle_address);
--- 2592,2644 ----
    /* Add in our function body with the co_returns rewritten to final form.  */
    add_stmt (fnbody);
  
!   /* Now do the tail of the function; first cleanups.  */
    r = build_stmt (loc, LABEL_EXPR, del_promise_label);
    add_stmt (r);
  
!   /* Destructors for the things we built explicitly.
!      promise... */
    if (tree c = cxx_maybe_build_cleanup (promise_proxy, tf_warning_or_error))
!     finish_expr_stmt (c);
  
!   /* Argument copies ...  */
    while (!param_dtor_list->is_empty ())
      {
        tree parm_id = param_dtor_list->pop ();
        tree a = coro_build_frame_access_expr (actor_frame, parm_id, false,
  					     tf_warning_or_error);
        if (tree dtor = cxx_maybe_build_cleanup (a, tf_warning_or_error))
! 	finish_expr_stmt (dtor);
      }
  
+   /* Here deallocate the frame (if we allocated it), which we will have at
+      present.  */
+   tree fnf2_x
+    = coro_build_frame_access_expr (actor_frame, coro_frame_needs_free_id,
+ 				   false, tf_warning_or_error);
+   tree need_free_if = begin_if_stmt ();
+   finish_if_stmt_cond (fnf2_x, need_free_if);
+ 
    /* Build the frame DTOR.  */
    tree del_coro_fr
      = build_coroutine_frame_delete_expr (actor_fp, frame_size,
  					 promise_type, loc);
    finish_expr_stmt (del_coro_fr);
    finish_then_clause (need_free_if);
!   finish_if_stmt (need_free_if);
  
!   /* Done.  */
!   finish_return_stmt (NULL_TREE);
  
    /* This is the suspend return point.  */
!   add_stmt (build_stmt (loc, LABEL_EXPR, ret_label));
  
!   finish_return_stmt (NULL_TREE);
  
    /* This is the 'continuation' return point.  For such a case we have a coro
       handle (from the await_suspend() call) and we want handle.resume() to
       execute as a tailcall allowing arbitrary chaining of coroutines.  */
!   add_stmt (build_stmt (loc, LABEL_EXPR, continue_label));
  
    /* Should have been set earlier by the coro_initialized code.  */
    gcc_assert (void_coro_handle_address);
*************** build_actor_fn (location_t loc, tree cor
*** 2670,2677 ****
  
    /* We've now rewritten the tree and added the initial and final
       co_awaits.  Now pass over the tree and expand the co_awaits.  */
  
!   coro_aw_data data = {actor, actor_fp, resume_idx_var, NULL_TREE,
  		       ash, del_promise_label, ret_label,
  		       continue_label, restart_dispatch_label, continuation, 2};
    cp_walk_tree (&actor_body, await_statement_expander, &data, NULL);
--- 2663,2674 ----
  
    /* We've now rewritten the tree and added the initial and final
       co_awaits.  Now pass over the tree and expand the co_awaits.  */
+   tree i_a_r_c = NULL_TREE;
+   if (flag_exceptions)
+     i_a_r_c = coro_build_frame_access_expr (actor_frame, coro_frame_i_a_r_c_id,
+ 					   false, tf_warning_or_error);
  
!   coro_aw_data data = {actor, actor_fp, resume_idx_var, i_a_r_c,
  		       ash, del_promise_label, ret_label,
  		       continue_label, restart_dispatch_label, continuation, 2};
    cp_walk_tree (&actor_body, await_statement_expander, &data, NULL);
*************** rewrite_param_uses (tree *stmt, int *do_
*** 4030,4041 ****
  }
  
  /* Build up a set of info that determines how each param copy will be
!    handled.  */
  
! static void
! analyze_fn_parms (tree orig, hash_map<tree, param_info> *param_uses)
  {
!   if (!DECL_ARGUMENTS (orig))
      return;
  
    /* Build a hash map with an entry for each param.
--- 4027,4040 ----
  }
  
  /* Build up a set of info that determines how each param copy will be
!    handled.  We store this in a hash map so that we can access it from
!    a tree walk callback that re-writes the original parameters to their
!    copies.  */
  
! void
! cp_coroutine_transform::analyze_fn_parms ()
  {
!   if (!DECL_ARGUMENTS (orig_fn_decl))
      return;
  
    /* Build a hash map with an entry for each param.
*************** analyze_fn_parms (tree orig, hash_map<tr
*** 4045,4063 ****
       Then a tree list of the uses.
       The second two entries start out empty - and only get populated
       when we see uses.  */
!   bool lambda_p = LAMBDA_FUNCTION_P (orig);
  
    /* Count the param copies from 1 as per the std.  */
    unsigned parm_num = 1;
!   for (tree arg = DECL_ARGUMENTS (orig); arg != NULL;
         ++parm_num, arg = DECL_CHAIN (arg))
      {
        bool existed;
!       param_info &parm = param_uses->get_or_insert (arg, &existed);
        gcc_checking_assert (!existed);
        parm.body_uses = NULL;
        tree actual_type = TREE_TYPE (arg);
!       actual_type = complete_type_or_else (actual_type, orig);
        if (actual_type == NULL_TREE)
  	actual_type = error_mark_node;
        parm.orig_type = actual_type;
--- 4044,4062 ----
       Then a tree list of the uses.
       The second two entries start out empty - and only get populated
       when we see uses.  */
!   bool lambda_p = LAMBDA_FUNCTION_P (orig_fn_decl);
  
    /* Count the param copies from 1 as per the std.  */
    unsigned parm_num = 1;
!   for (tree arg = DECL_ARGUMENTS (orig_fn_decl); arg != NULL;
         ++parm_num, arg = DECL_CHAIN (arg))
      {
        bool existed;
!       param_info &parm = param_uses.get_or_insert (arg, &existed);
        gcc_checking_assert (!existed);
        parm.body_uses = NULL;
        tree actual_type = TREE_TYPE (arg);
!       actual_type = complete_type_or_else (actual_type, orig_fn_decl);
        if (actual_type == NULL_TREE)
  	actual_type = error_mark_node;
        parm.orig_type = actual_type;
*************** cp_coroutine_transform::wrap_original_fu
*** 4451,4480 ****
        tree tcb = build_stmt (loc, TRY_BLOCK, NULL_TREE, NULL_TREE);
        add_stmt (tcb);
        TRY_STMTS (tcb) = push_stmt_list ();
-       if (initial_await != error_mark_node)
- 	{
- 	  /* Build a compound expression that sets the
- 	     initial-await-resume-called variable true and then calls the
- 	     initial suspend expression await resume.
- 	     In the case that the user decides to make the initial await
- 	     await_resume() return a value, we need to discard it and, it is
- 	     a reference type, look past the indirection.  */
- 	  if (INDIRECT_REF_P (initial_await))
- 	    initial_await = TREE_OPERAND (initial_await, 0);
- 	  /* In the case that the initial_await returns a target expression
- 	     we might need to look through that to update the await expr.  */
- 	  tree iaw = initial_await;
- 	  if (TREE_CODE (iaw) == TARGET_EXPR)
- 	    iaw = TARGET_EXPR_INITIAL (iaw);
- 	  gcc_checking_assert (TREE_CODE (iaw) == CO_AWAIT_EXPR);
- 	  tree vec = TREE_OPERAND (iaw, 3);
- 	  tree aw_r = TREE_VEC_ELT (vec, 2);
- 	  aw_r = convert_to_void (aw_r, ICV_STATEMENT, tf_warning_or_error);
- 	  tree update = build2 (MODIFY_EXPR, boolean_type_node, i_a_r_c,
- 				boolean_true_node);
- 	  aw_r = cp_build_compound_expr (update, aw_r, tf_warning_or_error);
- 	  TREE_VEC_ELT (vec, 2) = aw_r;
- 	}
        /* Add the initial await to the start of the user-authored function.  */
        finish_expr_stmt (initial_await);
        /* Append the original function body.  */
--- 4450,4455 ----
*************** cp_coroutine_transform::apply_transforms
*** 5276,5282 ****
  
    /* Collect information on the original function params and their use in the
       function body.  */
!   analyze_fn_parms (orig_fn_decl, &param_uses);
  
    /* Declare the actor and destroyer functions, the following code needs to
       see these.  */
--- 5251,5257 ----
  
    /* Collect information on the original function params and their use in the
       function body.  */
!   analyze_fn_parms ();
  
    /* Declare the actor and destroyer functions, the following code needs to
       see these.  */
diff -Nrcpad gcc-16-20250601/gcc/cp/coroutines.h gcc-16-20250608/gcc/cp/coroutines.h
*** gcc-16-20250601/gcc/cp/coroutines.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/coroutines.h	Sun Jun  8 22:32:17 2025
*************** private:
*** 126,131 ****
--- 126,132 ----
    bool inline_p = false;
    bool valid_coroutine = false;
  
+   void analyze_fn_parms ();
    void wrap_original_function_body ();
    bool build_ramp_function ();
  };
diff -Nrcpad gcc-16-20250601/gcc/cp/cp-gimplify.cc gcc-16-20250608/gcc/cp/cp-gimplify.cc
*** gcc-16-20250601/gcc/cp/cp-gimplify.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/cp-gimplify.cc	Sun Jun  8 22:32:17 2025
*************** cp_fold_r (tree *stmt_p, int *walk_subtr
*** 1473,1478 ****
--- 1473,1491 ----
        break;
  
      case TARGET_EXPR:
+       if (!flag_no_inline)
+ 	if (tree &init = TARGET_EXPR_INITIAL (stmt))
+ 	  {
+ 	    tree folded = maybe_constant_init (init, TARGET_EXPR_SLOT (stmt),
+ 					       (data->flags & ff_mce_false
+ 						? mce_false : mce_unknown));
+ 	    if (folded != init && TREE_CONSTANT (folded))
+ 	      init = folded;
+ 	  }
+ 
+       /* This needs to happen between the constexpr evaluation (which wants
+ 	 pre-generic trees) and fold (which wants the cp_genericize_init
+ 	 transformations).  */
        if (data->flags & ff_genericize)
  	cp_genericize_target_expr (stmt_p);
  
*************** cp_fold_r (tree *stmt_p, int *walk_subtr
*** 1481,1494 ****
  	  cp_walk_tree (&init, cp_fold_r, data, NULL);
  	  cp_walk_tree (&TARGET_EXPR_CLEANUP (stmt), cp_fold_r, data, NULL);
  	  *walk_subtrees = 0;
- 	  if (!flag_no_inline)
- 	    {
- 	      tree folded = maybe_constant_init (init, TARGET_EXPR_SLOT (stmt),
- 						 (data->flags & ff_mce_false
- 						  ? mce_false : mce_unknown));
- 	      if (folded != init && TREE_CONSTANT (folded))
- 		init = folded;
- 	    }
  	  /* Folding might replace e.g. a COND_EXPR with a TARGET_EXPR; in
  	     that case, strip it in favor of this one.  */
  	  if (TREE_CODE (init) == TARGET_EXPR)
--- 1494,1499 ----
diff -Nrcpad gcc-16-20250601/gcc/cp/cp-tree.h gcc-16-20250608/gcc/cp/cp-tree.h
*** gcc-16-20250601/gcc/cp/cp-tree.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/cp-tree.h	Sun Jun  8 22:32:17 2025
*************** extern bool perform_deferred_access_chec
*** 7956,7961 ****
--- 7956,7962 ----
  extern bool perform_or_defer_access_check	(tree, tree, tree,
  						 tsubst_flags_t,
  						 access_failure_info *afi = NULL);
+ extern tree maybe_convert_cond (tree);
  
  /* RAII sentinel to ensures that deferred access checks are popped before
    a function returns.  */
diff -Nrcpad gcc-16-20250601/gcc/cp/decl2.cc gcc-16-20250608/gcc/cp/decl2.cc
*** gcc-16-20250601/gcc/cp/decl2.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/decl2.cc	Sun Jun  8 22:32:17 2025
*************** mark_single_function (tree expr, tsubst_
*** 6269,6274 ****
--- 6269,6301 ----
    return true;
  }
  
+ /* True iff we have started, but not finished, defining FUNCTION_DECL DECL.  */
+ 
+ bool
+ fn_being_defined (tree decl)
+ {
+   /* DECL_INITIAL is set to error_mark_node in grokfndecl for a definition, and
+      changed to BLOCK by poplevel at the end of the function.  */
+   return (TREE_CODE (decl) == FUNCTION_DECL
+ 	  && DECL_INITIAL (decl) == error_mark_node);
+ }
+ 
+ /* True if DECL is an instantiation of a function template currently being
+    defined.  */
+ 
+ bool
+ fn_template_being_defined (tree decl)
+ {
+   if (TREE_CODE (decl) != FUNCTION_DECL
+       || !DECL_LANG_SPECIFIC (decl)
+       || !DECL_TEMPLOID_INSTANTIATION (decl)
+       || DECL_TEMPLATE_INSTANTIATED (decl))
+     return false;
+   tree tinfo = DECL_TEMPLATE_INFO (decl);
+   tree pattern = DECL_TEMPLATE_RESULT (TI_TEMPLATE (tinfo));
+   return fn_being_defined (pattern);
+ }
+ 
  /* Mark DECL (either a _DECL or a BASELINK) as "used" in the program.
     If DECL is a specialization or implicitly declared class member,
     generate the actual definition.  Return false if something goes
*************** mark_used (tree decl, tsubst_flags_t com
*** 6422,6427 ****
--- 6449,6457 ----
      maybe_instantiate_decl (decl);
  
    if (!decl_dependent_p (decl)
+       /* Don't require this yet for an instantiation of a function template
+ 	 we're currently defining (c++/120555).  */
+       && !fn_template_being_defined (decl)
        && !require_deduced_type (decl, complain))
      return false;
  
*************** mark_used (tree decl, tsubst_flags_t com
*** 6436,6444 ****
        && uses_template_parms (DECL_TI_ARGS (decl)))
      return true;
  
-   if (!require_deduced_type (decl, complain))
-     return false;
- 
    if (builtin_pack_fn_p (decl))
      {
        error ("use of built-in parameter pack %qD outside of a template",
--- 6466,6471 ----
diff -Nrcpad gcc-16-20250601/gcc/cp/error.cc gcc-16-20250608/gcc/cp/error.cc
*** gcc-16-20250601/gcc/cp/error.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/error.cc	Sun Jun  8 22:32:17 2025
*************** dump_expr (cxx_pretty_printer *pp, tree
*** 3269,3274 ****
--- 3269,3295 ----
  	break;
        }
  
+     case CO_AWAIT_EXPR:
+       pp_cxx_ws_string (pp, "co_await");
+       pp_cxx_whitespace (pp);
+       dump_expr (pp, TREE_OPERAND (t, 0), flags);
+       break;
+ 
+     case CO_YIELD_EXPR:
+       pp_cxx_ws_string (pp, "co_yield");
+       pp_cxx_whitespace (pp);
+       dump_expr (pp, TREE_OPERAND (t, 0), flags);
+       break;
+ 
+     case CO_RETURN_EXPR:
+       pp_cxx_ws_string (pp, "co_return");
+       if (TREE_OPERAND (t, 0))
+ 	{
+ 	  pp_cxx_whitespace (pp);
+ 	  dump_expr (pp, TREE_OPERAND (t, 0), flags);
+ 	}
+       break;
+ 
        /*  This list is incomplete, but should suffice for now.
  	  It is very important that `sorry' does not call
  	  `report_error_function'.  That could cause an infinite loop.  */
diff -Nrcpad gcc-16-20250601/gcc/cp/method.cc gcc-16-20250608/gcc/cp/method.cc
*** gcc-16-20250601/gcc/cp/method.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/method.cc	Sun Jun  8 22:32:17 2025
*************** constructible_expr (tree to, tree from)
*** 2251,2256 ****
--- 2251,2258 ----
    const int len = TREE_VEC_LENGTH (from);
    if (CLASS_TYPE_P (to))
      {
+       if (ABSTRACT_CLASS_TYPE_P (to))
+ 	return error_mark_node;
        tree ctype = to;
        vec<tree, va_gc> *args = NULL;
        if (!TYPE_REF_P (to))
*************** constructible_expr (tree to, tree from)
*** 2330,2346 ****
    return expr;
  }
  
! /* Return declval<T>().~T() treated as an unevaluated operand.  */
  
  static tree
  destructible_expr (tree to)
  {
    cp_unevaluated cp_uneval_guard;
    int flags = LOOKUP_NORMAL|LOOKUP_DESTRUCTOR;
!   to = build_trait_object (to);
!   tree r = build_delete (input_location, TREE_TYPE (to), to,
! 			 sfk_complete_destructor, flags, 0, tf_none);
!   return r;
  }
  
  /* Returns a tree iff TO is assignable (if CODE is MODIFY_EXPR) or
--- 2332,2366 ----
    return expr;
  }
  
! /* Valid if "Either T is a reference type, or T is a complete object type for
!    which the expression declval<U&>().~U() is well-formed when treated as an
!    unevaluated operand ([expr.context]), where U is remove_all_extents_t<T>."
! 
!    For a class U, return the destructor call; otherwise return void_node if
!    valid or error_mark_node if not.  */
  
  static tree
  destructible_expr (tree to)
  {
    cp_unevaluated cp_uneval_guard;
    int flags = LOOKUP_NORMAL|LOOKUP_DESTRUCTOR;
!   if (TYPE_REF_P (to))
!     return void_node;
!   if (!COMPLETE_TYPE_P (complete_type (to)))
!     return error_mark_node;
!   to = strip_array_types (to);
!   if (CLASS_TYPE_P (to))
!     {
!       to = build_trait_object (to);
!       return build_delete (input_location, TREE_TYPE (to), to,
! 			     sfk_complete_destructor, flags, 0, tf_none);
!     }
!   /* [expr.prim.id.dtor] If the id-expression names a pseudo-destructor, T
!      shall be a scalar type.... */
!   else if (scalarish_type_p (to))
!     return void_node;
!   else
!     return error_mark_node;
  }
  
  /* Returns a tree iff TO is assignable (if CODE is MODIFY_EXPR) or
*************** is_xible_helper (enum tree_code code, tr
*** 2352,2358 ****
  {
    to = complete_type (to);
    deferring_access_check_sentinel acs (dk_no_deferred);
!   if (VOID_TYPE_P (to) || ABSTRACT_CLASS_TYPE_P (to)
        || (from && FUNC_OR_METHOD_TYPE_P (from)
  	  && (TYPE_READONLY (from) || FUNCTION_REF_QUALIFIED (from))))
      return error_mark_node;
--- 2372,2378 ----
  {
    to = complete_type (to);
    deferring_access_check_sentinel acs (dk_no_deferred);
!   if (VOID_TYPE_P (to)
        || (from && FUNC_OR_METHOD_TYPE_P (from)
  	  && (TYPE_READONLY (from) || FUNCTION_REF_QUALIFIED (from))))
      return error_mark_node;
diff -Nrcpad gcc-16-20250601/gcc/cp/name-lookup.h gcc-16-20250608/gcc/cp/name-lookup.h
*** gcc-16-20250601/gcc/cp/name-lookup.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/name-lookup.h	Sun Jun  8 22:32:17 2025
*************** enum WMB_Flags
*** 501,506 ****
--- 501,510 ----
    WMB_Hidden = 1 << 3,
    WMB_Purview = 1 << 4,
  };
+ inline WMB_Flags operator|(WMB_Flags x, WMB_Flags y)
+ { return WMB_Flags(+x|y); }
+ inline WMB_Flags& operator|=(WMB_Flags& x, WMB_Flags y)
+ { return x = x|y; }
  
  extern unsigned walk_module_binding (tree binding, bitmap partitions,
  				     bool (*)(tree decl, WMB_Flags, void *data),
diff -Nrcpad gcc-16-20250601/gcc/cp/parser.cc gcc-16-20250608/gcc/cp/parser.cc
*** gcc-16-20250601/gcc/cp/parser.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/parser.cc	Sun Jun  8 22:32:17 2025
*************** cp_parser_omp_context_selector (cp_parse
*** 49986,49997 ****
  		  && !value_dependent_expression_p (t))
  		{
  		  t = fold_non_dependent_expr (t);
! 		  if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
  		    {
! 		      error_at (token->location,
! 				"property must be integer expression");
! 		      return error_mark_node;
  		    }
  		}
  	      properties = make_trait_property (NULL_TREE, t, properties);
  	      break;
--- 49986,50010 ----
  		  && !value_dependent_expression_p (t))
  		{
  		  t = fold_non_dependent_expr (t);
! 		  if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
  		    {
! 		      t = maybe_convert_cond (t);
! 		      if (t == error_mark_node)
! 			return error_mark_node;
  		    }
+ 		  else
+ 		    {
+ 		      t = convert_from_reference (t);
+ 		      if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
+ 			{
+ 			  error_at (token->location,
+ 				    "property must be integer expression");
+ 			  return error_mark_node;
+ 			}
+ 		    }
+ 		  if (!processing_template_decl
+ 		      && TREE_CODE (t) != CLEANUP_POINT_EXPR)
+ 		    t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
  		}
  	      properties = make_trait_property (NULL_TREE, t, properties);
  	      break;
diff -Nrcpad gcc-16-20250601/gcc/cp/pt.cc gcc-16-20250608/gcc/cp/pt.cc
*** gcc-16-20250601/gcc/cp/pt.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/pt.cc	Sun Jun  8 22:32:17 2025
*************** tsubst_function_decl (tree t, tree args,
*** 14983,14988 ****
--- 14983,14990 ----
    if (closure && DECL_IOBJ_MEMBER_FUNCTION_P (t))
      parms = DECL_CHAIN (parms);
    parms = tsubst (parms, args, complain, t);
+   if (parms == error_mark_node)
+     return error_mark_node;
    for (tree parm = parms; parm; parm = DECL_CHAIN (parm))
      DECL_CONTEXT (parm) = r;
    if (closure && DECL_IOBJ_MEMBER_FUNCTION_P (t))
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 15555,15560 ****
--- 15557,15565 ----
                /* We're dealing with a normal parameter.  */
                type = tsubst (TREE_TYPE (t), args, complain, in_decl);
  
+ 	    if (type == error_mark_node && !(complain & tf_error))
+ 	      RETURN (error_mark_node);
+ 
              type = type_decays_to (type);
              TREE_TYPE (r) = type;
              cp_apply_type_quals_to_decl (cp_type_quals (type), r);
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 15592,15599 ****
  	/* If cp_unevaluated_operand is set, we're just looking for a
  	   single dummy parameter, so don't keep going.  */
  	if (DECL_CHAIN (t) && !cp_unevaluated_operand)
! 	  DECL_CHAIN (r) = tsubst (DECL_CHAIN (t), args,
! 				   complain, DECL_CHAIN (t));
  
          /* FIRST_R contains the start of the chain we've built.  */
          r = first_r;
--- 15597,15609 ----
  	/* If cp_unevaluated_operand is set, we're just looking for a
  	   single dummy parameter, so don't keep going.  */
  	if (DECL_CHAIN (t) && !cp_unevaluated_operand)
! 	  {
! 	    tree chain = tsubst (DECL_CHAIN (t), args,
! 				 complain, DECL_CHAIN (t));
! 	    if (chain == error_mark_node)
! 	      RETURN (error_mark_node);
! 	    DECL_CHAIN (r) = chain;
! 	  }
  
          /* FIRST_R contains the start of the chain we've built.  */
          r = first_r;
*************** tsubst_omp_context_selector (tree ctx, t
*** 18380,18386 ****
  		}
  	    }
  
! 	  switch (omp_ts_map[OMP_TS_CODE (sel)].tp_type)
  	      {
  	      case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
  	      case OMP_TRAIT_PROPERTY_BOOL_EXPR:
--- 18390,18398 ----
  		}
  	    }
  
! 	  enum omp_tp_type property_kind
! 	    = omp_ts_map[OMP_TS_CODE (sel)].tp_type;
! 	  switch (property_kind)
  	      {
  	      case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
  	      case OMP_TRAIT_PROPERTY_BOOL_EXPR:
*************** tsubst_omp_context_selector (tree ctx, t
*** 18388,18399 ****
  				 args, complain, in_decl);
  		t = fold_non_dependent_expr (t);
  		if (!value_dependent_expression_p (t)
! 		    && !type_dependent_expression_p (t)
! 		    && !INTEGRAL_TYPE_P (TREE_TYPE (t)))
! 		  error_at (cp_expr_loc_or_input_loc (t),
! 			    "property must be integer expression");
! 		else
! 		  properties = make_trait_property (NULL_TREE, t, NULL_TREE);
  		break;
  	      case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
  		if (OMP_TS_CODE (sel) == OMP_TRAIT_CONSTRUCT_SIMD)
--- 18400,18425 ----
  				 args, complain, in_decl);
  		t = fold_non_dependent_expr (t);
  		if (!value_dependent_expression_p (t)
! 		    && !type_dependent_expression_p (t))
! 		  {
! 		    if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
! 		      t = maybe_convert_cond (t);
! 		    else
! 		      {
! 			t = convert_from_reference (t);
! 			if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
! 			  {
! 			    error_at (cp_expr_loc_or_input_loc (t),
! 				      "property must be integer expression");
! 			    t = error_mark_node;
! 			  }
! 		      }
! 		  }
! 		if (t != error_mark_node
! 		    && !processing_template_decl
! 		    && TREE_CODE (t) != CLEANUP_POINT_EXPR)
! 		  t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
! 		properties = make_trait_property (NULL_TREE, t, NULL_TREE);
  		break;
  	      case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
  		if (OMP_TS_CODE (sel) == OMP_TRAIT_CONSTRUCT_SIMD)
diff -Nrcpad gcc-16-20250601/gcc/cp/semantics.cc gcc-16-20250608/gcc/cp/semantics.cc
*** gcc-16-20250601/gcc/cp/semantics.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/cp/semantics.cc	Sun Jun  8 22:32:17 2025
*************** along with GCC; see the file COPYING3.
*** 52,58 ****
     during template instantiation, which may be regarded as a
     degenerate form of parsing.  */
  
- static tree maybe_convert_cond (tree);
  static tree finalize_nrv_r (tree *, int *, void *);
  
  /* Used for OpenMP non-static data member privatization.  */
--- 52,57 ----
*************** annotate_saver::restore (tree new_inner)
*** 1117,1123 ****
     statement.  Convert it to a boolean value, if appropriate.
     In addition, verify sequence points if -Wsequence-point is enabled.  */
  
! static tree
  maybe_convert_cond (tree cond)
  {
    /* Empty conditions remain empty.  */
--- 1116,1122 ----
     statement.  Convert it to a boolean value, if appropriate.
     In addition, verify sequence points if -Wsequence-point is enabled.  */
  
! tree
  maybe_convert_cond (tree cond)
  {
    /* Empty conditions remain empty.  */
*************** trait_expr_value (cp_trait_kind kind, tr
*** 13420,13425 ****
--- 13419,13425 ----
        if (CLASS_TYPE_P (type1) && type_build_dtor_call (type1))
  	{
  	  deferring_access_check_sentinel dacs (dk_no_check);
+ 	  cp_unevaluated un;
  	  tree fn = get_dtor (type1, tf_none);
  	  if (!fn && !seen_error ())
  	    warning (0, "checking %qs for type %qT with a destructor that "
diff -Nrcpad gcc-16-20250601/gcc/diagnostic-format-html.cc gcc-16-20250608/gcc/diagnostic-format-html.cc
*** gcc-16-20250601/gcc/diagnostic-format-html.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/diagnostic-format-html.cc	Sun Jun  8 22:32:17 2025
*************** html_generation_options::html_generation
*** 49,304 ****
  {
  }
  
- namespace xml {
- 
- /* Disable warnings about quoting issues in the pp_xxx calls below
-    that (intentionally) don't follow GCC diagnostic conventions.  */
- #if __GNUC__ >= 10
- #  pragma GCC diagnostic push
- #  pragma GCC diagnostic ignored "-Wformat-diag"
- #endif
- 
- 
- /* Implementation.  */
- 
- static void
- write_escaped_text (pretty_printer *pp, const char *text)
- {
-   gcc_assert (text);
- 
-   for (const char *p = text; *p; ++p)
-     {
-       char ch = *p;
-       switch (ch)
- 	{
- 	default:
- 	  pp_character (pp, ch);
- 	  break;
- 	case '\'':
- 	  pp_string (pp, "&apos;");
- 	  break;
- 	case '"':
- 	  pp_string (pp, "&quot;");
- 	  break;
- 	case '&':
- 	  pp_string (pp, "&amp;");
- 	  break;
- 	case '<':
- 	  pp_string (pp, "&lt;");
- 	  break;
- 	case '>':
- 	  pp_string (pp, "&gt;");
- 	  break;
- 	}
-     }
- }
- 
- /* struct node.  */
- 
- void
- node::dump (FILE *out) const
- {
-   pretty_printer pp;
-   pp.set_output_stream (out);
-   write_as_xml (&pp, 0, true);
-   pp_flush (&pp);
- }
- 
- /* struct text : public node.  */
- 
- void
- text::write_as_xml (pretty_printer *pp, int depth, bool indent) const
- {
-   if (indent)
-     {
-       for (int i = 0; i < depth; ++i)
- 	pp_string (pp, "  ");
-     }
-   write_escaped_text (pp, m_str.c_str ());
-   if (indent)
-     pp_newline (pp);
- }
- 
- /* struct node_with_children : public node.  */
- 
- void
- node_with_children::add_child (std::unique_ptr<node> node)
- {
-   gcc_assert (node.get ());
-   m_children.push_back (std::move (node));
- }
- 
- void
- node_with_children::add_text (std::string str)
- {
-   // Consolidate runs of text
-   if (!m_children.empty ())
-     if (text *t = m_children.back ()->dyn_cast_text ())
-       {
- 	t->m_str += std::move (str);
- 	return;
-       }
-   add_child (std::make_unique <text> (std::move (str)));
- }
- 
- 
- /* struct document : public node_with_children.  */
- 
- void
- document::write_as_xml (pretty_printer *pp, int depth, bool indent) const
- {
-   pp_string (pp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-   pp_string (pp, "<!DOCTYPE html\n"
- 	     "     PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n"
- 	     "     \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
-   if (indent)
-     pp_newline (pp);
-   for (auto &iter : m_children)
-     iter->write_as_xml (pp, depth, indent);
- }
- 
- /* struct element : public node_with_children.  */
- 
- void
- element::write_as_xml (pretty_printer *pp, int depth, bool indent) const
- {
-   if (indent)
-     {
-       for (int i = 0; i < depth; ++i)
- 	pp_string (pp, "  ");
-     }
- 
-   pp_printf (pp, "<%s", m_kind.c_str ());
-   for (auto &key : m_key_insertion_order)
-     {
-       auto iter = m_attributes.find (key);
-       if (iter != m_attributes.end ())
- 	{
- 	  pp_printf (pp, " %s=\"", key.c_str ());
- 	  write_escaped_text (pp, iter->second.c_str ());
- 	  pp_string (pp, "\"");
- 	}
-     }
-   if (m_children.empty ())
-     pp_string (pp, "/>");
-   else
-     {
-       const bool indent_children = m_preserve_whitespace ? false : indent;
-       pp_string (pp, ">");
-       if (indent_children)
- 	pp_newline (pp);
-       for (auto &child : m_children)
- 	child->write_as_xml (pp, depth + 1, indent_children);
-       if (indent_children)
- 	{
- 	  for (int i = 0; i < depth; ++i)
- 	    pp_string (pp, "  ");
- 	}
-       pp_printf (pp, "</%s>", m_kind.c_str ());
-     }
- 
-   if (indent)
-     pp_newline (pp);
- }
- 
- void
- element::set_attr (const char *name, std::string value)
- {
-   auto iter = m_attributes.find (name);
-   if (iter == m_attributes.end ())
-     m_key_insertion_order.push_back (name);
-   m_attributes[name] = std::move (value);
- }
- 
- // struct raw : public node
- 
- void
- raw::write_as_xml (pretty_printer *pp,
- 		   int /*depth*/, bool /*indent*/) const
- {
-   pp_string (pp, m_xml_src.c_str ());
- }
- 
- #if __GNUC__ >= 10
- #  pragma GCC diagnostic pop
- #endif
- 
- // class printer
- 
- printer::printer (element &insertion_point)
- {
-   m_open_tags.push_back (&insertion_point);
- }
- 
- void
- printer::push_tag (std::string name,
- 		   bool preserve_whitespace)
- {
-   push_element
-     (std::make_unique<element> (std::move (name),
- 				preserve_whitespace));
- }
- 
- void
- printer::push_tag_with_class (std::string name, std::string class_,
- 			      bool preserve_whitespace)
- {
-   auto new_element
-     = std::make_unique<element> (std::move (name),
- 				 preserve_whitespace);
-   new_element->set_attr ("class", class_);
-   push_element (std::move (new_element));
- }
- 
- void
- printer::pop_tag ()
- {
-   m_open_tags.pop_back ();
- }
- 
- void
- printer::set_attr (const char *name, std::string value)
- {
-   m_open_tags.back ()->set_attr (name, value);
- }
- 
- void
- printer::add_text (std::string text)
- {
-   element *parent = m_open_tags.back ();
-   parent->add_text (std::move (text));
- }
- 
- void
- printer::add_raw (std::string text)
- {
-   element *parent = m_open_tags.back ();
-   parent->add_child (std::make_unique<xml::raw> (std::move (text)));
- }
- 
- void
- printer::push_element (std::unique_ptr<element> new_element)
- {
-   element *parent = m_open_tags.back ();
-   m_open_tags.push_back (new_element.get ());
-   parent->add_child (std::move (new_element));
- }
- 
- void
- printer::append (std::unique_ptr<node> new_node)
- {
-   element *parent = m_open_tags.back ();
-   parent->add_child (std::move (new_node));
- }
- 
- element *
- printer::get_insertion_point () const
- {
-   return m_open_tags.back ();
- }
- 
- } // namespace xml
- 
  class html_builder;
  
  /* Concrete buffering implementation subclass for HTML output.  */
--- 49,54 ----
*************** const char * const HTML_SCRIPT
*** 569,574 ****
--- 319,342 ----
       "  });\n"
       "  highlight_current_focus_idx ();\n");
  
+ struct html_doctypedecl : public xml::doctypedecl
+ {
+   void write_as_xml (pretty_printer *pp,
+ 		     int depth, bool indent) const final override
+   {
+     if (indent)
+       {
+ 	for (int i = 0; i < depth; ++i)
+ 	  pp_string (pp, "  ");
+       }
+     pp_string (pp, "<!DOCTYPE html\n"
+ 	       "     PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n"
+ 	       "     \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
+     if (indent)
+       pp_newline (pp);
+   }
+ };
+ 
  /* html_builder's ctor.  */
  
  html_builder::html_builder (diagnostic_context &context,
*************** html_builder::html_builder (diagnostic_c
*** 586,591 ****
--- 354,360 ----
    gcc_assert (m_line_maps);
  
    m_document = std::make_unique<xml::document> ();
+   m_document->m_doctypedecl = std::make_unique<html_doctypedecl> ();
    {
      auto html_element = std::make_unique<xml::element> ("html", false);
      html_element->set_attr ("xmlns",
*************** test_metadata ()
*** 1288,1354 ****
    }
  }
  
- static void
- test_printer ()
- {
-   xml::element top ("top", false);
-   xml::printer xp (top);
-   xp.push_tag ("foo");
-   xp.add_text ("hello");
-   xp.push_tag ("bar");
-   xp.set_attr ("size", "3");
-   xp.set_attr ("color", "red");
-   xp.add_text ("world");
-   xp.push_tag ("baz");
-   xp.pop_tag ();
-   xp.pop_tag ();
-   xp.pop_tag ();
- 
-   pretty_printer pp;
-   top.write_as_xml (&pp, 0, true);
-   ASSERT_STREQ
-     (pp_formatted_text (&pp),
-      "<top>\n"
-      "  <foo>\n"
-      "    hello\n"
-      "    <bar size=\"3\" color=\"red\">\n"
-      "      world\n"
-      "      <baz/>\n"
-      "    </bar>\n"
-      "  </foo>\n"
-      "</top>\n");
- }
- 
- // Verify that element attributes preserve insertion order.
- 
- static void
- test_attribute_ordering ()
- {
-   xml::element top ("top", false);
-   xml::printer xp (top);
-   xp.push_tag ("chronological");
-   xp.set_attr ("maldon", "991");
-   xp.set_attr ("hastings", "1066");
-   xp.set_attr ("edgehill", "1642");
-   xp.set_attr ("naseby", "1645");
-   xp.pop_tag ();
-   xp.push_tag ("alphabetical");
-   xp.set_attr ("edgehill", "1642");
-   xp.set_attr ("hastings", "1066");
-   xp.set_attr ("maldon", "991");
-   xp.set_attr ("naseby", "1645");
-   xp.pop_tag ();
- 
-   pretty_printer pp;
-   top.write_as_xml (&pp, 0, true);
-   ASSERT_STREQ
-     (pp_formatted_text (&pp),
-      "<top>\n"
-      "  <chronological maldon=\"991\" hastings=\"1066\" edgehill=\"1642\" naseby=\"1645\"/>\n"
-      "  <alphabetical edgehill=\"1642\" hastings=\"1066\" maldon=\"991\" naseby=\"1645\"/>\n"
-      "</top>\n");
- }
- 
  /* Run all of the selftests within this file.  */
  
  void
--- 1057,1062 ----
*************** diagnostic_format_html_cc_tests ()
*** 1357,1364 ****
    auto_fix_quotes fix_quotes;
    test_simple_log ();
    test_metadata ();
-   test_printer ();
-   test_attribute_ordering ();
  }
  
  } // namespace selftest
--- 1065,1070 ----
diff -Nrcpad gcc-16-20250601/gcc/doc/install.texi gcc-16-20250608/gcc/doc/install.texi
*** gcc-16-20250601/gcc/doc/install.texi	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/doc/install.texi	Sun Jun  8 22:32:17 2025
*************** default set of libraries is selected bas
*** 1342,1350 ****
  
  @item amdgcn*-*-*
  @var{list} is a comma separated list of ISA names (allowed values:
! @code{gfx900}, @code{gfx906}, @code{gfx908}, @code{gfx90a}, @code{gfx90c}, 
! @code{gfx1030}, @code{gfx1036}, @code{gfx1100}, @code{gfx1103}).
! It ought not include the name of the default
  ISA, specified via @option{--with-arch}.  If @var{list} is empty, then there
  will be no multilibs and only the default run-time library will be built.  If
  @var{list} is @code{default} or @option{--with-multilib-list=} is not
--- 1342,1354 ----
  
  @item amdgcn*-*-*
  @var{list} is a comma separated list of ISA names (allowed values:
! @code{gfx900}, @code{gfx902}, @code{gfx904}, @code{gfx906}, @code{gfx908},
! @code{gfx909}, @code{gfx90a}, @code{gfx90c}, @code{gfx9-generic},
! @code{gfx1030}, @code{gfx1031}, @code{gfx1032}, @code{gfx1033},
! @code{gfx1034}, @code{gfx1035}, @code{gfx1036}, @code{gfx10-3-generic},
! @code{gfx1100}, @code{gfx1101}, @code{gfx1102}, @code{gfx1103},
! @code{gfx1150}, @code{gfx1151}, @code{gfx1152}, @code{gfx1153},
! @code{gfx11-generic}).  It ought not include the name of the default
  ISA, specified via @option{--with-arch}.  If @var{list} is empty, then there
  will be no multilibs and only the default run-time library will be built.  If
  @var{list} is @code{default} or @option{--with-multilib-list=} is not
diff -Nrcpad gcc-16-20250601/gcc/doc/invoke.texi gcc-16-20250608/gcc/doc/invoke.texi
*** gcc-16-20250601/gcc/doc/invoke.texi	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/doc/invoke.texi	Sun Jun  8 22:32:17 2025
*************** ISO C99.  This standard is substantially
*** 2440,2447 ****
  bugs and floating-point issues
  (mainly but not entirely relating to optional C99 features from
  Annexes F and G).  See
! @w{@uref{https://gcc.gnu.org/c99status.html}} for more information.  The
! names @samp{c9x} and @samp{iso9899:199x} are deprecated.
  
  @item c11
  @itemx c1x
--- 2440,2447 ----
  bugs and floating-point issues
  (mainly but not entirely relating to optional C99 features from
  Annexes F and G).  See
! @w{@uref{https://gcc.gnu.org/projects/c-status.html}} for more information.
! The names @samp{c9x} and @samp{iso9899:199x} are deprecated.
  
  @item c11
  @itemx c1x
*************** which is enabled by optimizations in mos
*** 7060,7073 ****
  the warnings depends on the optimization options used.
  
  @opindex Wno-musttail-local-addr
! @opindex -Wmusttail-local-addr
  @item -Wno-musttail-local-addr
  Do not warn about passing a pointer (or in C++, a reference) to a
  local variable or label to argument of a @code{musttail} call.  Those
  variables go out of scope before the tail call instruction.
  
  @opindex Wmaybe-musttail-local-addr
! @opindex -Wno-maybe-musttail-local-addr
  @item -Wmaybe-musttail-local-addr
  Warn when address of a local variable can escape to a @code{musttail}
  call, unless it goes out of scope already before the @code{musttail}
--- 7060,7073 ----
  the warnings depends on the optimization options used.
  
  @opindex Wno-musttail-local-addr
! @opindex Wmusttail-local-addr
  @item -Wno-musttail-local-addr
  Do not warn about passing a pointer (or in C++, a reference) to a
  local variable or label to argument of a @code{musttail} call.  Those
  variables go out of scope before the tail call instruction.
  
  @opindex Wmaybe-musttail-local-addr
! @opindex Wno-maybe-musttail-local-addr
  @item -Wmaybe-musttail-local-addr
  Warn when address of a local variable can escape to a @code{musttail}
  call, unless it goes out of scope already before the @code{musttail}
*************** to store the immediate to a register fir
*** 30911,30922 ****
  @opindex mcmodel=
  @opindex mcmodel=small
  @item -mcmodel=small
! Generate OpenRISC code for the small model: The GOT is limited to 64k. This is
! the default model.
  
  @opindex mcmodel=large
  @item -mcmodel=large
! Generate OpenRISC code for the large model: The GOT may grow up to 4G in size.
  
  
  @end table
--- 30911,30923 ----
  @opindex mcmodel=
  @opindex mcmodel=small
  @item -mcmodel=small
! Generate OpenRISC code for the small model: The GOT is limited to 64k and
! function call jumps are limited to 64M offsets. This is the default model.
  
  @opindex mcmodel=large
  @item -mcmodel=large
! Generate OpenRISC code for the large model: The GOT may grow up to 4G in size
! and function call jumps can target the full 4G address space.
  
  
  @end table
*************** Permissible values for this option are:
*** 31199,31206 ****
  @samp{sifive-e76}, @samp{sifive-s21}, @samp{sifive-s51}, @samp{sifive-s54},
  @samp{sifive-s76}, @samp{sifive-u54}, @samp{sifive-u74}, @samp{sifive-x280},
  @samp{sifive-xp450}, @samp{sifive-x670}, @samp{thead-c906}, @samp{tt-ascalon-d8},
! @samp{xiangshan-nanhu}, @samp{xt-c908}, @samp{xt-c908v}, @samp{xt-c910}, @samp{xt-c910v2},
! @samp{xt-c920}, @samp{xt-c920v2}.
  
  Note that @option{-mcpu} does not override @option{-march} or @option{-mtune}.
  
--- 31200,31207 ----
  @samp{sifive-e76}, @samp{sifive-s21}, @samp{sifive-s51}, @samp{sifive-s54},
  @samp{sifive-s76}, @samp{sifive-u54}, @samp{sifive-u74}, @samp{sifive-x280},
  @samp{sifive-xp450}, @samp{sifive-x670}, @samp{thead-c906}, @samp{tt-ascalon-d8},
! @samp{xiangshan-nanhu}, @samp{xiangshan-kunminghu}, @samp{xt-c908}, @samp{xt-c908v},
! @samp{xt-c910}, @samp{xt-c910v2}, @samp{xt-c920}, @samp{xt-c920v2}.
  
  Note that @option{-mcpu} does not override @option{-march} or @option{-mtune}.
  
diff -Nrcpad gcc-16-20250601/gcc/doc/riscv-ext.texi gcc-16-20250608/gcc/doc/riscv-ext.texi
*** gcc-16-20250601/gcc/doc/riscv-ext.texi	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/doc/riscv-ext.texi	Sun Jun  8 22:32:17 2025
***************
*** 474,479 ****
--- 474,483 ----
  @tab 1.0
  @tab SvNNx4 mode supported for all modes supported by satp
  
+ @item shlcofideleg
+ @tab 1.0
+ @tab Delegating LCOFI interrupts to VS-mode
+ 
  @item shtvala
  @tab 1.0
  @tab The htval register provides all needed values
***************
*** 494,499 ****
--- 498,511 ----
  @tab 1.0
  @tab Advanced interrupt architecture extension
  
+ @item smcntrpmf
+ @tab 1.0
+ @tab Cycle and instret privilege mode filtering
+ 
+ @item smcsrind
+ @tab 1.0
+ @tab Machine-Level Indirect CSR Access
+ 
  @item smepmp
  @tab 1.0
  @tab PMP Enhancements for memory access and execution prevention on Machine mode
***************
*** 506,511 ****
--- 518,527 ----
  @tab 1.0
  @tab smnpm extension
  
+ @item smrnmi
+ @tab 1.0
+ @tab Resumable Non-Maskable Interrupts
+ 
  @item smstateen
  @tab 1.0
  @tab State enable extension
***************
*** 518,527 ****
--- 534,555 ----
  @tab 1.0
  @tab Advanced interrupt architecture extension for supervisor-mode
  
+ @item ssccptr
+ @tab 1.0
+ @tab Main memory supports page table reads
+ 
  @item sscofpmf
  @tab 1.0
  @tab Count overflow & filtering extension
  
+ @item sscounterenw
+ @tab 1.0
+ @tab Support writeable enables for any supported counter
+ 
+ @item sscsrind
+ @tab 1.0
+ @tab Supervisor-Level Indirect CSR Access
+ 
  @item ssnpm
  @tab 1.0
  @tab ssnpm extension
***************
*** 538,543 ****
--- 566,579 ----
  @tab 1.0
  @tab Supervisor-mode timer interrupts extension
  
+ @item sstvala
+ @tab 1.0
+ @tab Stval provides all needed values
+ 
+ @item sstvecd
+ @tab 1.0
+ @tab Stvec supports Direct mode
+ 
  @item ssstrict
  @tab 1.0
  @tab ssstrict extension
***************
*** 546,551 ****
--- 582,591 ----
  @tab 1.0
  @tab Double Trap Extensions
  
+ @item ssu64xl
+ @tab 1.0
+ @tab UXLEN=64 must be supported
+ 
  @item supm
  @tab 1.0
  @tab supm extension
***************
*** 574,579 ****
--- 614,623 ----
  @tab 1.0
  @tab Cause exception when hardware updating of A/D bits is disabled
  
+ @item svbare
+ @tab 1.0
+ @tab Satp mode bare is supported
+ 
  @item xcvalu
  @tab 1.0
  @tab Core-V miscellaneous ALU extension
diff -Nrcpad gcc-16-20250601/gcc/doc/sourcebuild.texi gcc-16-20250608/gcc/doc/sourcebuild.texi
*** gcc-16-20250601/gcc/doc/sourcebuild.texi	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/doc/sourcebuild.texi	Sun Jun  8 22:32:17 2025
*************** at plain @option{-O2}.
*** 1976,1981 ****
--- 1976,1984 ----
  @item tls
  Target supports thread-local storage.
  
+ @item tls_link
+ Target supports linking TLS executables.
+ 
  @item tls_native
  Target supports native (rather than emulated) thread-local storage.
  
diff -Nrcpad gcc-16-20250601/gcc/doc/standards.texi gcc-16-20250608/gcc/doc/standards.texi
*** gcc-16-20250601/gcc/doc/standards.texi	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/doc/standards.texi	Sun Jun  8 22:32:17 2025
*************** A new edition of the ISO C standard was
*** 96,103 ****
  development, drafts of this standard version were referred to as
  @dfn{C9X}.)  GCC has substantially
  complete support for this standard version; see
! @uref{https://gcc.gnu.org/c99status.html} for details.  To select this
! standard, use @option{-std=c99} or @option{-std=iso9899:1999}.  
  
  Errors in the 1999 ISO C standard were corrected in three Technical
  Corrigenda published in 2001, 2004 and 2007.  GCC does not support the
--- 96,103 ----
  development, drafts of this standard version were referred to as
  @dfn{C9X}.)  GCC has substantially
  complete support for this standard version; see
! @uref{https://gcc.gnu.org/projects/c-status.html} for details.  To select
! this standard, use @option{-std=c99} or @option{-std=iso9899:1999}.
  
  Errors in the 1999 ISO C standard were corrected in three Technical
  Corrigenda published in 2001, 2004 and 2007.  GCC does not support the
diff -Nrcpad gcc-16-20250601/gcc/emit-rtl.cc gcc-16-20250608/gcc/emit-rtl.cc
*** gcc-16-20250601/gcc/emit-rtl.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/emit-rtl.cc	Sun Jun  8 22:32:17 2025
*************** validate_subreg (machine_mode omode, mac
*** 998,1007 ****
  	   && known_le (osize, isize))
      return false;
  
!   /* The outer size must be ordered wrt the register size, otherwise
!      we wouldn't know at compile time how many registers the outer
!      mode occupies.  */
!   if (!ordered_p (osize, regsize))
      return false;
  
    /* For normal pseudo registers, we want most of the same checks.  Namely:
--- 998,1008 ----
  	   && known_le (osize, isize))
      return false;
  
!   /* If ISIZE is greater than REGSIZE, the inner value is split into blocks
!      of size REGSIZE.  The outer size must then be ordered wrt REGSIZE,
!      otherwise we wouldn't know at compile time how many blocks the
!      outer mode occupies.  */
!   if (maybe_gt (isize, regsize) && !ordered_p (osize, regsize))
      return false;
  
    /* For normal pseudo registers, we want most of the same checks.  Namely:
*************** next_nonnote_nondebug_insn (rtx_insn *in
*** 3689,3695 ****
  
  /* Return the next insn after INSN that is not a NOTE nor DEBUG_INSN,
     but stop the search before we enter another basic block.  This
!    routine does not look inside SEQUENCEs.  */
  
  rtx_insn *
  next_nonnote_nondebug_insn_bb (rtx_insn *insn)
--- 3690,3700 ----
  
  /* Return the next insn after INSN that is not a NOTE nor DEBUG_INSN,
     but stop the search before we enter another basic block.  This
!    routine does not look inside SEQUENCEs.
!    NOTE: This can potentially bleed into next BB. If current insn is
! 	 last insn of BB, followed by a code_label before the start of
! 	 the next BB, code_label will be returned. But this is the
! 	 behavior rest of gcc assumes/relies on e.g. get_last_bb_insn.  */
  
  rtx_insn *
  next_nonnote_nondebug_insn_bb (rtx_insn *insn)
diff -Nrcpad gcc-16-20250601/gcc/expr.cc gcc-16-20250608/gcc/expr.cc
*** gcc-16-20250601/gcc/expr.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/expr.cc	Sun Jun  8 22:32:17 2025
*************** store_constructor (tree exp, rtx target,
*** 7631,7638 ****
  	tree domain;
  	tree elttype = TREE_TYPE (type);
  	bool const_bounds_p;
! 	HOST_WIDE_INT minelt = 0;
! 	HOST_WIDE_INT maxelt = 0;
  
  	/* The storage order is specified for every aggregate type.  */
  	reverse = TYPE_REVERSE_STORAGE_ORDER (type);
--- 7631,7638 ----
  	tree domain;
  	tree elttype = TREE_TYPE (type);
  	bool const_bounds_p;
! 	unsigned HOST_WIDE_INT minelt = 0;
! 	unsigned HOST_WIDE_INT maxelt = 0;
  
  	/* The storage order is specified for every aggregate type.  */
  	reverse = TYPE_REVERSE_STORAGE_ORDER (type);
*************** store_constructor (tree exp, rtx target,
*** 7640,7653 ****
  	domain = TYPE_DOMAIN (type);
  	const_bounds_p = (TYPE_MIN_VALUE (domain)
  			  && TYPE_MAX_VALUE (domain)
! 			  && tree_fits_shwi_p (TYPE_MIN_VALUE (domain))
! 			  && tree_fits_shwi_p (TYPE_MAX_VALUE (domain)));
  
  	/* If we have constant bounds for the range of the type, get them.  */
  	if (const_bounds_p)
  	  {
! 	    minelt = tree_to_shwi (TYPE_MIN_VALUE (domain));
! 	    maxelt = tree_to_shwi (TYPE_MAX_VALUE (domain));
  	  }
  
  	/* If the constructor has fewer elements than the array, clear
--- 7640,7653 ----
  	domain = TYPE_DOMAIN (type);
  	const_bounds_p = (TYPE_MIN_VALUE (domain)
  			  && TYPE_MAX_VALUE (domain)
! 			  && tree_fits_uhwi_p (TYPE_MIN_VALUE (domain))
! 			  && tree_fits_uhwi_p (TYPE_MAX_VALUE (domain)));
  
  	/* If we have constant bounds for the range of the type, get them.  */
  	if (const_bounds_p)
  	  {
! 	    minelt = tree_to_uhwi (TYPE_MIN_VALUE (domain));
! 	    maxelt = tree_to_uhwi (TYPE_MAX_VALUE (domain));
  	  }
  
  	/* If the constructor has fewer elements than the array, clear
*************** store_constructor (tree exp, rtx target,
*** 7660,7666 ****
  	else
  	  {
  	    unsigned HOST_WIDE_INT idx;
! 	    HOST_WIDE_INT count = 0, zero_count = 0;
  	    need_to_clear = ! const_bounds_p;
  
  	    /* This loop is a more accurate version of the loop in
--- 7660,7666 ----
  	else
  	  {
  	    unsigned HOST_WIDE_INT idx;
! 	    unsigned HOST_WIDE_INT count = 0, zero_count = 0;
  	    need_to_clear = ! const_bounds_p;
  
  	    /* This loop is a more accurate version of the loop in
*************** store_constructor (tree exp, rtx target,
*** 7668,7674 ****
  	       is also needed to check for missing elements.  */
  	    FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (exp), idx, index, value)
  	      {
! 		HOST_WIDE_INT this_node_count;
  
  		if (need_to_clear)
  		  break;
--- 7668,7674 ----
  	       is also needed to check for missing elements.  */
  	    FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (exp), idx, index, value)
  	      {
! 		unsigned HOST_WIDE_INT this_node_count;
  
  		if (need_to_clear)
  		  break;
*************** store_constructor (tree exp, rtx target,
*** 7742,7757 ****
  	      {
  		tree lo_index = TREE_OPERAND (index, 0);
  		tree hi_index = TREE_OPERAND (index, 1);
! 		rtx index_r, pos_rtx;
! 		HOST_WIDE_INT lo, hi, count;
! 		tree position;
  
  		/* If the range is constant and "small", unroll the loop.  */
  		if (const_bounds_p
! 		    && tree_fits_shwi_p (lo_index)
! 		    && tree_fits_shwi_p (hi_index)
! 		    && (lo = tree_to_shwi (lo_index),
! 			hi = tree_to_shwi (hi_index),
  			count = hi - lo + 1,
  			(!MEM_P (target)
  			 || count <= 2
--- 7742,7757 ----
  	      {
  		tree lo_index = TREE_OPERAND (index, 0);
  		tree hi_index = TREE_OPERAND (index, 1);
! 		rtx index_r;
! 		unsigned HOST_WIDE_INT lo, hi, count;
! 		tree offset;
  
  		/* If the range is constant and "small", unroll the loop.  */
  		if (const_bounds_p
! 		    && tree_fits_uhwi_p (lo_index)
! 		    && tree_fits_uhwi_p (hi_index)
! 		    && (lo = tree_to_uhwi (lo_index),
! 			hi = tree_to_uhwi (hi_index),
  			count = hi - lo + 1,
  			(!MEM_P (target)
  			 || count <= 2
*************** store_constructor (tree exp, rtx target,
*** 7762,7768 ****
  		    lo -= minelt;  hi -= minelt;
  		    for (; lo <= hi; lo++)
  		      {
! 			bitpos = lo * tree_to_shwi (TYPE_SIZE (elttype));
  
  			if (MEM_P (target)
  			    && !MEM_KEEP_ALIAS_SET_P (target)
--- 7762,7768 ----
  		    lo -= minelt;  hi -= minelt;
  		    for (; lo <= hi; lo++)
  		      {
! 			bitpos = lo * tree_to_uhwi (TYPE_SIZE (elttype));
  
  			if (MEM_P (target)
  			    && !MEM_KEEP_ALIAS_SET_P (target)
*************** store_constructor (tree exp, rtx target,
*** 7798,7818 ****
  		    emit_label (loop_start);
  
  		    /* Assign value to element index.  */
! 		    position =
! 		      fold_convert (ssizetype,
! 				    fold_build2 (MINUS_EXPR,
! 						 TREE_TYPE (index),
! 						 index,
! 						 TYPE_MIN_VALUE (domain)));
  
! 		    position =
! 			size_binop (MULT_EXPR, position,
! 				    fold_convert (ssizetype,
! 						  TYPE_SIZE_UNIT (elttype)));
  
! 		    pos_rtx = expand_normal (position);
! 		    xtarget = offset_address (target, pos_rtx,
! 					      highest_pow2_factor (position));
  		    xtarget = adjust_address (xtarget, mode, 0);
  		    if (TREE_CODE (value) == CONSTRUCTOR)
  		      store_constructor (value, xtarget, cleared,
--- 7798,7815 ----
  		    emit_label (loop_start);
  
  		    /* Assign value to element index.  */
! 		    offset = fold_build2 (MINUS_EXPR,
! 					  TREE_TYPE (index),
! 					  index,
! 					  TYPE_MIN_VALUE (domain));
  
! 		    offset = size_binop (MULT_EXPR,
! 					 fold_convert (sizetype, offset),
! 					 TYPE_SIZE_UNIT (elttype));
  
! 		    xtarget = offset_address (target,
! 					      expand_normal (offset),
! 					      highest_pow2_factor (offset));
  		    xtarget = adjust_address (xtarget, mode, 0);
  		    if (TREE_CODE (value) == CONSTRUCTOR)
  		      store_constructor (value, xtarget, cleared,
*************** store_constructor (tree exp, rtx target,
*** 7840,7874 ****
  		    emit_label (loop_end);
  		  }
  	      }
! 	    else if ((index != 0 && ! tree_fits_shwi_p (index))
! 		     || ! tree_fits_uhwi_p (TYPE_SIZE (elttype)))
  	      {
! 		tree position;
! 
! 		if (index == 0)
! 		  index = ssize_int (1);
  
! 		if (minelt)
! 		  index = fold_convert (ssizetype,
! 					fold_build2 (MINUS_EXPR,
! 						     TREE_TYPE (index),
! 						     index,
! 						     TYPE_MIN_VALUE (domain)));
  
! 		position =
! 		  size_binop (MULT_EXPR, index,
! 			      fold_convert (ssizetype,
! 					    TYPE_SIZE_UNIT (elttype)));
  		xtarget = offset_address (target,
! 					  expand_normal (position),
! 					  highest_pow2_factor (position));
  		xtarget = adjust_address (xtarget, mode, 0);
  		store_expr (value, xtarget, 0, false, reverse);
  	      }
  	    else
  	      {
! 		if (index != 0)
! 		  bitpos = ((tree_to_shwi (index) - minelt)
  			    * tree_to_uhwi (TYPE_SIZE (elttype)));
  		else
  		  bitpos = (i * tree_to_uhwi (TYPE_SIZE (elttype)));
--- 7837,7868 ----
  		    emit_label (loop_end);
  		  }
  	      }
! 	    else if ((index && !tree_fits_uhwi_p (index))
! 		     || !tree_fits_uhwi_p (TYPE_SIZE (elttype)))
  	      {
! 		tree offset;
  
! 		if (index)
! 		  offset = fold_build2 (MINUS_EXPR,
! 					TREE_TYPE (index),
! 					index,
! 					TYPE_MIN_VALUE (domain));
! 		else
! 		  offset = size_int (i);
  
! 		offset = size_binop (MULT_EXPR,
! 				     fold_convert (sizetype, offset),
! 				     TYPE_SIZE_UNIT (elttype));
  		xtarget = offset_address (target,
! 					  expand_normal (offset),
! 					  highest_pow2_factor (offset));
  		xtarget = adjust_address (xtarget, mode, 0);
  		store_expr (value, xtarget, 0, false, reverse);
  	      }
  	    else
  	      {
! 		if (index)
! 		  bitpos = ((tree_to_uhwi (index) - minelt)
  			    * tree_to_uhwi (TYPE_SIZE (elttype)));
  		else
  		  bitpos = (i * tree_to_uhwi (TYPE_SIZE (elttype)));
diff -Nrcpad gcc-16-20250601/gcc/ext-dce.cc gcc-16-20250608/gcc/ext-dce.cc
*** gcc-16-20250601/gcc/ext-dce.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/ext-dce.cc	Sun Jun  8 22:32:17 2025
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,41 ----
  #include "print-rtl.h"
  #include "dbgcnt.h"
  #include "diagnostic-core.h"
+ #include "target.h"
  
  /* These should probably move into a C++ class.  */
  static vec<bitmap_head> livein;
*************** ext_dce_process_uses (rtx_insn *insn, rt
*** 764,776 ****
  			 We don't want to mark those bits live unnecessarily
  			 as that inhibits extension elimination in important
  			 cases such as those in Coremark.  So we need that
! 			 outer code.  */
  		      if (!REG_P (SUBREG_REG (y))
  			  || (SUBREG_PROMOTED_VAR_P (y)
  			      && ((GET_CODE (SET_SRC (x)) == SIGN_EXTEND
  				   && SUBREG_PROMOTED_SIGNED_P (y))
  				  || (GET_CODE (SET_SRC (x)) == ZERO_EXTEND
! 				      && SUBREG_PROMOTED_UNSIGNED_P (y)))))
  			break;
  
  		      bit = subreg_lsb (y).to_constant ();
--- 765,789 ----
  			 We don't want to mark those bits live unnecessarily
  			 as that inhibits extension elimination in important
  			 cases such as those in Coremark.  So we need that
! 			 outer code.
! 
! 			 But if !TRULY_NOOP_TRUNCATION_MODES_P, the mode
! 			 change performed by Y would normally need to be a
! 			 TRUNCATE rather than a SUBREG.  It is probably the
! 			 guarantee provided by SUBREG_PROMOTED_VAR_P that
! 			 allows the SUBREG in Y as an exception.  We must
! 			 therefore preserve that guarantee and treat the
! 			 upper bits of the inner register as live
! 			 regardless of the outer code.  See PR 120050.  */
  		      if (!REG_P (SUBREG_REG (y))
  			  || (SUBREG_PROMOTED_VAR_P (y)
  			      && ((GET_CODE (SET_SRC (x)) == SIGN_EXTEND
  				   && SUBREG_PROMOTED_SIGNED_P (y))
  				  || (GET_CODE (SET_SRC (x)) == ZERO_EXTEND
! 				      && SUBREG_PROMOTED_UNSIGNED_P (y))
! 				  || !TRULY_NOOP_TRUNCATION_MODES_P (
! 					GET_MODE (y),
! 					GET_MODE (SUBREG_REG (y))))))
  			break;
  
  		      bit = subreg_lsb (y).to_constant ();
diff -Nrcpad gcc-16-20250601/gcc/final.cc gcc-16-20250608/gcc/final.cc
*** gcc-16-20250601/gcc/final.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/final.cc	Sun Jun  8 22:32:17 2025
*************** output_alternate_entry_point (FILE *file
*** 2072,2078 ****
  
  /* Given a CALL_INSN, find and return the nested CALL. */
  static rtx
! call_from_call_insn (rtx_call_insn *insn)
  {
    rtx x;
    gcc_assert (CALL_P (insn));
--- 2072,2078 ----
  
  /* Given a CALL_INSN, find and return the nested CALL. */
  static rtx
! call_from_call_insn (const rtx_call_insn *insn)
  {
    rtx x;
    gcc_assert (CALL_P (insn));
*************** call_from_call_insn (rtx_call_insn *insn
*** 2098,2103 ****
--- 2098,2112 ----
    return x;
  }
  
+ /* Return the CALL in X if there is one.  */
+ 
+ rtx
+ get_call_rtx_from (const rtx_insn *insn)
+ {
+   const rtx_call_insn *call_insn = as_a<const rtx_call_insn *> (insn);
+   return call_from_call_insn (call_insn);
+ }
+ 
  /* Print a comment into the asm showing FILENAME, LINENUM, and the
     corresponding source line, if available.  */
  
diff -Nrcpad gcc-16-20250601/gcc/fortran/ChangeLog gcc-16-20250608/gcc/fortran/ChangeLog
*** gcc-16-20250601/gcc/fortran/ChangeLog	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/fortran/ChangeLog	Sun Jun  8 22:32:17 2025
***************
*** 1,3 ****
--- 1,25 ----
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* f95-lang.cc (ATTR_PURE_NOTHROW_LIST): Define.
+ 	* trans-expr.cc (get_builtin_fn): Handle omp_get_num_devices
+ 	and omp_get_intrinsic_device.
+ 	* gfortran.h (gfc_option_t): Add disable_omp_... for them.
+ 	* options.cc (gfc_handle_option): Handle them with
+ 	-fno-builtin-.
+ 
+ 2025-06-04  Andre Vehreschild  <vehre@gcc.gnu.org>
+ 
+ 	PR fortran/120483
+ 	* trans-expr.cc (gfc_conv_substring): Use pointer arithmetic on
+ 	static allocatable char arrays.
+ 
+ 2025-06-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/99838
+ 	* data.cc (gfc_assign_data_value): For a new initializer use the
+ 	location from the constructor as fallback.
+ 
  2025-05-30  Harald Anlauf  <anlauf@gmx.de>
  
  	PR fortran/102599
diff -Nrcpad gcc-16-20250601/gcc/fortran/data.cc gcc-16-20250608/gcc/fortran/data.cc
*** gcc-16-20250601/gcc/fortran/data.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/fortran/data.cc	Sun Jun  8 22:32:17 2025
*************** gfc_assign_data_value (gfc_expr *lvalue,
*** 593,599 ****
  	{
  	  /* Point the container at the new expression.  */
  	  if (last_con == NULL)
! 	    symbol->value = expr;
  	  else
  	    last_con->expr = expr;
  	}
--- 593,605 ----
  	{
  	  /* Point the container at the new expression.  */
  	  if (last_con == NULL)
! 	    {
! 	      symbol->value = expr;
! 	      /* For a new initializer use the location from the
! 		 constructor as fallback.  */
! 	      if (!GFC_LOCUS_IS_SET(expr->where) && con != NULL)
! 		symbol->value->where = con->where;
! 	    }
  	  else
  	    last_con->expr = expr;
  	}
diff -Nrcpad gcc-16-20250601/gcc/fortran/f95-lang.cc gcc-16-20250608/gcc/fortran/f95-lang.cc
*** gcc-16-20250601/gcc/fortran/f95-lang.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/fortran/f95-lang.cc	Sun Jun  8 22:32:17 2025
*************** gfc_builtin_function (tree decl)
*** 564,570 ****
    return decl;
  }
  
! /* So far we need just these 10 attribute types.  */
  #define ATTR_NULL			0
  #define ATTR_LEAF_LIST			(ECF_LEAF)
  #define ATTR_NOTHROW_LEAF_LIST		(ECF_NOTHROW | ECF_LEAF)
--- 564,570 ----
    return decl;
  }
  
! /* So far we need just these 12 attribute types.  */
  #define ATTR_NULL			0
  #define ATTR_LEAF_LIST			(ECF_LEAF)
  #define ATTR_NOTHROW_LEAF_LIST		(ECF_NOTHROW | ECF_LEAF)
*************** gfc_builtin_function (tree decl)
*** 580,585 ****
--- 580,586 ----
  #define ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST \
  					(ECF_COLD | ECF_NORETURN | \
  					 ECF_NOTHROW | ECF_LEAF)
+ #define ATTR_PURE_NOTHROW_LIST (ECF_PURE | ECF_NOTHROW)
  
  static void
  gfc_define_builtin (const char *name, tree type, enum built_in_function code,
diff -Nrcpad gcc-16-20250601/gcc/fortran/gfortran.h gcc-16-20250608/gcc/fortran/gfortran.h
*** gcc-16-20250601/gcc/fortran/gfortran.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/fortran/gfortran.h	Sun Jun  8 22:32:17 2025
*************** typedef struct
*** 3302,3309 ****
    int flag_init_logical;
    int flag_init_character;
    char flag_init_character_value;
!   bool disable_omp_is_initial_device;
!   bool disable_acc_on_device;
  
    int fpe;
    int fpe_summary;
--- 3302,3311 ----
    int flag_init_logical;
    int flag_init_character;
    char flag_init_character_value;
!   bool disable_omp_is_initial_device:1;
!   bool disable_omp_get_initial_device:1;
!   bool disable_omp_get_num_devices:1;
!   bool disable_acc_on_device:1;
  
    int fpe;
    int fpe_summary;
diff -Nrcpad gcc-16-20250601/gcc/fortran/options.cc gcc-16-20250608/gcc/fortran/options.cc
*** gcc-16-20250601/gcc/fortran/options.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/fortran/options.cc	Sun Jun  8 22:32:17 2025
*************** gfc_handle_option (size_t scode, const c
*** 883,888 ****
--- 883,892 ----
  	return false;  /* Not supported. */
        if (!strcmp ("omp_is_initial_device", arg))
  	gfc_option.disable_omp_is_initial_device = true;
+       else if (!strcmp ("omp_get_initial_device", arg))
+ 	gfc_option.disable_omp_get_initial_device = true;
+       else if (!strcmp ("omp_get_num_devices", arg))
+ 	gfc_option.disable_omp_get_num_devices = true;
        else if (!strcmp ("acc_on_device", arg))
  	gfc_option.disable_acc_on_device = true;
        else
diff -Nrcpad gcc-16-20250601/gcc/fortran/trans-expr.cc gcc-16-20250608/gcc/fortran/trans-expr.cc
*** gcc-16-20250601/gcc/fortran/trans-expr.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/fortran/trans-expr.cc	Sun Jun  8 22:32:17 2025
*************** gfc_conv_substring (gfc_se * se, gfc_ref
*** 2782,2790 ****
  	start.expr = gfc_evaluate_now (start.expr, &se->pre);
  
        /* Change the start of the string.  */
!       if ((TREE_CODE (TREE_TYPE (se->expr)) == ARRAY_TYPE
! 	   || TREE_CODE (TREE_TYPE (se->expr)) == INTEGER_TYPE)
! 	  && TYPE_STRING_FLAG (TREE_TYPE (se->expr)))
  	tmp = se->expr;
        else
  	tmp = build_fold_indirect_ref_loc (input_location,
--- 2782,2792 ----
  	start.expr = gfc_evaluate_now (start.expr, &se->pre);
  
        /* Change the start of the string.  */
!       if (((TREE_CODE (TREE_TYPE (se->expr)) == ARRAY_TYPE
! 	    || TREE_CODE (TREE_TYPE (se->expr)) == INTEGER_TYPE)
! 	   && TYPE_STRING_FLAG (TREE_TYPE (se->expr)))
! 	  || (POINTER_TYPE_P (TREE_TYPE (se->expr))
! 	      && TREE_CODE (TREE_TYPE (TREE_TYPE (se->expr))) != ARRAY_TYPE))
  	tmp = se->expr;
        else
  	tmp = build_fold_indirect_ref_loc (input_location,
*************** gfc_conv_substring (gfc_se * se, gfc_ref
*** 2795,2800 ****
--- 2797,2810 ----
  	  tmp = gfc_build_array_ref (tmp, start.expr, NULL_TREE, true);
  	  se->expr = gfc_build_addr_expr (type, tmp);
  	}
+       else if (POINTER_TYPE_P (TREE_TYPE (tmp)))
+ 	{
+ 	  tree diff;
+ 	  diff = fold_build2 (MINUS_EXPR, size_type_node, start.expr,
+ 			      build_one_cst (size_type_node));
+ 	  se->expr
+ 	    = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (tmp), tmp, diff);
+ 	}
      }
  
    /* Length = end + 1 - start.  */
*************** get_builtin_fn (gfc_symbol * sym)
*** 4625,4630 ****
--- 4635,4650 ----
        && !strcmp (sym->name, "omp_is_initial_device"))
      return builtin_decl_explicit (BUILT_IN_OMP_IS_INITIAL_DEVICE);
  
+   if (!gfc_option.disable_omp_get_initial_device
+       && flag_openmp && sym->attr.function && sym->ts.type == BT_INTEGER
+       && !strcmp (sym->name, "omp_get_initial_device"))
+     return builtin_decl_explicit (BUILT_IN_OMP_GET_INITIAL_DEVICE);
+ 
+   if (!gfc_option.disable_omp_get_num_devices
+       && flag_openmp && sym->attr.function && sym->ts.type == BT_INTEGER
+       && !strcmp (sym->name, "omp_get_num_devices"))
+     return builtin_decl_explicit (BUILT_IN_OMP_GET_NUM_DEVICES);
+ 
    if (!gfc_option.disable_acc_on_device
        && flag_openacc && sym->attr.function && sym->ts.type == BT_LOGICAL
        && !strcmp (sym->name, "acc_on_device_h"))
diff -Nrcpad gcc-16-20250601/gcc/gimple-fold.cc gcc-16-20250608/gcc/gimple-fold.cc
*** gcc-16-20250601/gcc/gimple-fold.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/gimple-fold.cc	Sun Jun  8 22:32:17 2025
*************** can_refer_decl_in_current_unit_p (tree d
*** 191,209 ****
    return !node || !node->inlined_to;
  }
  
- /* Create a temporary for TYPE for a statement STMT.  If the current function
-    is in SSA form, a SSA name is created.  Otherwise a temporary register
-    is made.  */
- 
- tree
- create_tmp_reg_or_ssa_name (tree type, gimple *stmt)
- {
-   if (gimple_in_ssa_p (cfun))
-     return make_ssa_name (type, stmt);
-   else
-     return create_tmp_reg (type);
- }
- 
  /* CVAL is value taken from DECL_INITIAL of variable.  Try to transform it into
     acceptable form for is_gimple_min_invariant.
     FROM_DECL (if non-NULL) specify variable whose constructor contains CVAL.  */
--- 191,196 ----
*************** gimple_fold_builtin_memory_op (gimple_st
*** 1041,1048 ****
  			{
  			  new_stmt = gimple_build_assign (NULL_TREE, srcmem);
  			  srcmem
! 			    = create_tmp_reg_or_ssa_name (TREE_TYPE (srcmem),
! 							  new_stmt);
  			  gimple_assign_set_lhs (new_stmt, srcmem);
  			  gimple_set_vuse (new_stmt, gimple_vuse (stmt));
  			  gimple_set_location (new_stmt, loc);
--- 1028,1034 ----
  			{
  			  new_stmt = gimple_build_assign (NULL_TREE, srcmem);
  			  srcmem
! 			    = make_ssa_name (TREE_TYPE (srcmem), new_stmt);
  			  gimple_assign_set_lhs (new_stmt, srcmem);
  			  gimple_set_vuse (new_stmt, gimple_vuse (stmt));
  			  gimple_set_location (new_stmt, loc);
*************** gimple_fold_builtin_memory_op (gimple_st
*** 1311,1318 ****
  	  if (! is_gimple_min_invariant (srcvar))
  	    {
  	      new_stmt = gimple_build_assign (NULL_TREE, srcvar);
! 	      srcvar = create_tmp_reg_or_ssa_name (TREE_TYPE (srcvar),
! 						   new_stmt);
  	      gimple_assign_set_lhs (new_stmt, srcvar);
  	      gimple_set_vuse (new_stmt, gimple_vuse (stmt));
  	      gimple_set_location (new_stmt, loc);
--- 1297,1303 ----
  	  if (! is_gimple_min_invariant (srcvar))
  	    {
  	      new_stmt = gimple_build_assign (NULL_TREE, srcvar);
! 	      srcvar = make_ssa_name (TREE_TYPE (srcvar), new_stmt);
  	      gimple_assign_set_lhs (new_stmt, srcvar);
  	      gimple_set_vuse (new_stmt, gimple_vuse (stmt));
  	      gimple_set_location (new_stmt, loc);
*************** gimple_fold_builtin_strchr (gimple_stmt_
*** 2284,2290 ****
    gimple_seq stmts = NULL;
    gimple *new_stmt = gimple_build_call (strlen_fn, 1, str);
    gimple_set_location (new_stmt, loc);
!   len = create_tmp_reg_or_ssa_name (size_type_node);
    gimple_call_set_lhs (new_stmt, len);
    gimple_seq_add_stmt_without_update (&stmts, new_stmt);
  
--- 2269,2275 ----
    gimple_seq stmts = NULL;
    gimple *new_stmt = gimple_build_call (strlen_fn, 1, str);
    gimple_set_location (new_stmt, loc);
!   len = make_ssa_name (size_type_node);
    gimple_call_set_lhs (new_stmt, len);
    gimple_seq_add_stmt_without_update (&stmts, new_stmt);
  
*************** gimple_fold_builtin_strcat (gimple_stmt_
*** 2430,2436 ****
    gimple_seq stmts = NULL, stmts2;
    gimple *repl = gimple_build_call (strlen_fn, 1, dst);
    gimple_set_location (repl, loc);
!   newdst = create_tmp_reg_or_ssa_name (size_type_node);
    gimple_call_set_lhs (repl, newdst);
    gimple_seq_add_stmt_without_update (&stmts, repl);
  
--- 2415,2421 ----
    gimple_seq stmts = NULL, stmts2;
    gimple *repl = gimple_build_call (strlen_fn, 1, dst);
    gimple_set_location (repl, loc);
!   newdst = make_ssa_name (size_type_node);
    gimple_call_set_lhs (repl, newdst);
    gimple_seq_add_stmt_without_update (&stmts, repl);
  
*************** gimple_load_first_char (location_t loc,
*** 2663,2669 ****
  
    tree temp = fold_build2_loc (loc, MEM_REF, cst_uchar_node, str, off0);
    gassign *stmt = gimple_build_assign (NULL_TREE, temp);
!   var = create_tmp_reg_or_ssa_name (cst_uchar_node, stmt);
  
    gimple_assign_set_lhs (stmt, var);
    gimple_seq_add_stmt_without_update (stmts, stmt);
--- 2648,2654 ----
  
    tree temp = fold_build2_loc (loc, MEM_REF, cst_uchar_node, str, off0);
    gassign *stmt = gimple_build_assign (NULL_TREE, temp);
!   var = make_ssa_name (cst_uchar_node, stmt);
  
    gimple_assign_set_lhs (stmt, var);
    gimple_seq_add_stmt_without_update (stmts, stmt);
*************** gimple_fold_builtin_string_compare (gimp
*** 2834,2840 ****
  
        if (lhs)
  	{
! 	  tree c = create_tmp_reg_or_ssa_name (integer_type_node);
  	  stmt = gimple_build_assign (c, NOP_EXPR, var);
  	  gimple_seq_add_stmt_without_update (&stmts, stmt);
  
--- 2819,2825 ----
  
        if (lhs)
  	{
! 	  tree c = make_ssa_name (integer_type_node);
  	  stmt = gimple_build_assign (c, NOP_EXPR, var);
  	  gimple_seq_add_stmt_without_update (&stmts, stmt);
  
*************** gimple_fold_builtin_string_compare (gimp
*** 2856,2866 ****
  
        if (lhs)
  	{
! 	  tree c1 = create_tmp_reg_or_ssa_name (integer_type_node);
  	  gassign *convert1 = gimple_build_assign (c1, NOP_EXPR, temp1);
  	  gimple_seq_add_stmt_without_update (&stmts, convert1);
  
! 	  tree c2 = create_tmp_reg_or_ssa_name (integer_type_node);
  	  gassign *convert2 = gimple_build_assign (c2, NOP_EXPR, temp2);
  	  gimple_seq_add_stmt_without_update (&stmts, convert2);
  
--- 2841,2851 ----
  
        if (lhs)
  	{
! 	  tree c1 = make_ssa_name (integer_type_node);
  	  gassign *convert1 = gimple_build_assign (c1, NOP_EXPR, temp1);
  	  gimple_seq_add_stmt_without_update (&stmts, convert1);
  
! 	  tree c2 = make_ssa_name (integer_type_node);
  	  gassign *convert2 = gimple_build_assign (c2, NOP_EXPR, temp2);
  	  gimple_seq_add_stmt_without_update (&stmts, convert2);
  
*************** gimple_fold_builtin_omp_is_initial_devic
*** 4100,4105 ****
--- 4085,4124 ----
    return false;
  }
  
+ /* omp_get_initial_device was in OpenMP 5.0/5.1 explicitly and in
+    5.0 implicitly the same as omp_get_num_devices; since 6.0 it is
+    unspecified whether -1 or omp_get_num_devices() is returned.  For
+    better backward compatibility, use omp_get_num_devices() on the
+    host - and -1 on the device (where the result is unspecified).  */
+ 
+ static bool
+ gimple_fold_builtin_omp_get_initial_device (gimple_stmt_iterator *gsi)
+ {
+ #if ACCEL_COMPILER
+   replace_call_with_value (gsi, build_int_cst (integer_type_node, -1));
+ #else
+   if (!ENABLE_OFFLOADING)
+     replace_call_with_value (gsi, integer_zero_node);
+   else
+     {
+       tree fn = builtin_decl_explicit (BUILT_IN_OMP_GET_NUM_DEVICES);
+       gcall *repl = gimple_build_call (fn, 0);
+       replace_call_with_call_and_fold (gsi, repl);
+     }
+ #endif
+   return true;
+ }
+ 
+ static bool
+ gimple_fold_builtin_omp_get_num_devices (gimple_stmt_iterator *gsi)
+ {
+   if (!ENABLE_OFFLOADING)
+     {
+       replace_call_with_value (gsi, integer_zero_node);
+       return true;
+     }
+   return false;
+ }
  
  /* Fold a call to __builtin_acc_on_device.  */
  
*************** gimple_fold_builtin (gimple_stmt_iterato
*** 5344,5349 ****
--- 5363,5374 ----
      case BUILT_IN_OMP_IS_INITIAL_DEVICE:
        return gimple_fold_builtin_omp_is_initial_device (gsi);
  
+     case BUILT_IN_OMP_GET_INITIAL_DEVICE:
+       return gimple_fold_builtin_omp_get_initial_device (gsi);
+ 
+     case BUILT_IN_OMP_GET_NUM_DEVICES:
+       return gimple_fold_builtin_omp_get_num_devices (gsi);
+ 
      case BUILT_IN_REALLOC:
        return gimple_fold_builtin_realloc (gsi);
  
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10650,10656 ****
  		       gsi->bb ? follow_all_ssa_edges : gimple_build_valueize);
    if (!res)
      {
!       res = create_tmp_reg_or_ssa_name (type);
        gimple *stmt;
        if (code == REALPART_EXPR
  	  || code == IMAGPART_EXPR
--- 10675,10681 ----
  		       gsi->bb ? follow_all_ssa_edges : gimple_build_valueize);
    if (!res)
      {
!       res = make_ssa_name (type);
        gimple *stmt;
        if (code == REALPART_EXPR
  	  || code == IMAGPART_EXPR
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10682,10688 ****
  		       gsi->bb ? follow_all_ssa_edges : gimple_build_valueize);
    if (!res)
      {
!       res = create_tmp_reg_or_ssa_name (type);
        gimple *stmt = gimple_build_assign (res, code, op0, op1);
        gimple_set_location (stmt, loc);
        gimple_seq_add_stmt_without_update (&seq, stmt);
--- 10707,10713 ----
  		       gsi->bb ? follow_all_ssa_edges : gimple_build_valueize);
    if (!res)
      {
!       res = make_ssa_name (type);
        gimple *stmt = gimple_build_assign (res, code, op0, op1);
        gimple_set_location (stmt, loc);
        gimple_seq_add_stmt_without_update (&seq, stmt);
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10709,10715 ****
  		       gsi->bb ? follow_all_ssa_edges : gimple_build_valueize);
    if (!res)
      {
!       res = create_tmp_reg_or_ssa_name (type);
        gimple *stmt;
        if (code == BIT_FIELD_REF)
  	stmt = gimple_build_assign (res, code,
--- 10734,10740 ----
  		       gsi->bb ? follow_all_ssa_edges : gimple_build_valueize);
    if (!res)
      {
!       res = make_ssa_name (type);
        gimple *stmt;
        if (code == BIT_FIELD_REF)
  	stmt = gimple_build_assign (res, code,
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10745,10751 ****
      }
    if (!VOID_TYPE_P (type))
      {
!       res = create_tmp_reg_or_ssa_name (type);
        gimple_call_set_lhs (stmt, res);
      }
    gimple_set_location (stmt, loc);
--- 10770,10776 ----
      }
    if (!VOID_TYPE_P (type))
      {
!       res = make_ssa_name (type);
        gimple_call_set_lhs (stmt, res);
      }
    gimple_set_location (stmt, loc);
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10780,10786 ****
  	}
        if (!VOID_TYPE_P (type))
  	{
! 	  res = create_tmp_reg_or_ssa_name (type);
  	  gimple_call_set_lhs (stmt, res);
  	}
        gimple_set_location (stmt, loc);
--- 10805,10811 ----
  	}
        if (!VOID_TYPE_P (type))
  	{
! 	  res = make_ssa_name (type);
  	  gimple_call_set_lhs (stmt, res);
  	}
        gimple_set_location (stmt, loc);
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10817,10823 ****
  	}
        if (!VOID_TYPE_P (type))
  	{
! 	  res = create_tmp_reg_or_ssa_name (type);
  	  gimple_call_set_lhs (stmt, res);
  	}
        gimple_set_location (stmt, loc);
--- 10842,10848 ----
  	}
        if (!VOID_TYPE_P (type))
  	{
! 	  res = make_ssa_name (type);
  	  gimple_call_set_lhs (stmt, res);
  	}
        gimple_set_location (stmt, loc);
*************** gimple_build (gimple_stmt_iterator *gsi,
*** 10855,10861 ****
  	}
        if (!VOID_TYPE_P (type))
  	{
! 	  res = create_tmp_reg_or_ssa_name (type);
  	  gimple_call_set_lhs (stmt, res);
  	}
        gimple_set_location (stmt, loc);
--- 10880,10886 ----
  	}
        if (!VOID_TYPE_P (type))
  	{
! 	  res = make_ssa_name (type);
  	  gimple_call_set_lhs (stmt, res);
  	}
        gimple_set_location (stmt, loc);
diff -Nrcpad gcc-16-20250601/gcc/gimple-fold.h gcc-16-20250608/gcc/gimple-fold.h
*** gcc-16-20250601/gcc/gimple-fold.h	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/gimple-fold.h	Sun Jun  8 22:32:17 2025
*************** along with GCC; see the file COPYING3.
*** 22,28 ****
  #ifndef GCC_GIMPLE_FOLD_H
  #define GCC_GIMPLE_FOLD_H
  
- extern tree create_tmp_reg_or_ssa_name (tree, gimple *stmt = NULL);
  extern tree canonicalize_constructor_val (tree, tree);
  extern tree get_symbol_constant_value (tree);
  struct c_strlen_data;
--- 22,27 ----
diff -Nrcpad gcc-16-20250601/gcc/lra-eliminations.cc gcc-16-20250608/gcc/lra-eliminations.cc
*** gcc-16-20250601/gcc/lra-eliminations.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/lra-eliminations.cc	Sun Jun  8 22:32:17 2025
*************** update_reg_eliminate (bitmap insns_with_
*** 1185,1191 ****
  	  setup_can_eliminate (ep, false);
  	  continue;
  	}
!       if (ep->can_eliminate != prev && elimination_map[ep->from] == ep)
  	{
  	  /* We cannot use this elimination anymore -- find another
  	     one.  */
--- 1185,1191 ----
  	  setup_can_eliminate (ep, false);
  	  continue;
  	}
!       if (!ep->can_eliminate && elimination_map[ep->from] == ep)
  	{
  	  /* We cannot use this elimination anymore -- find another
  	     one.  */
diff -Nrcpad gcc-16-20250601/gcc/lra-spills.cc gcc-16-20250608/gcc/lra-spills.cc
*** gcc-16-20250601/gcc/lra-spills.cc	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/lra-spills.cc	Sun Jun  8 22:32:17 2025
*************** spill_pseudos (void)
*** 556,562 ****
  		fprintf (lra_dump_file,
  			 "Changing spilled pseudos to memory in insn #%u\n",
  			 INSN_UID (insn));
! 	      lra_push_insn (insn);
  	      if (lra_reg_spill_p || targetm.different_addr_displacement_p ())
  		lra_set_used_insn_alternative (insn, LRA_UNKNOWN_ALT);
  	    }
--- 556,562 ----
  		fprintf (lra_dump_file,
  			 "Changing spilled pseudos to memory in insn #%u\n",
  			 INSN_UID (insn));
! 	      lra_push_insn_and_update_insn_regno_info (insn);
  	      if (lra_reg_spill_p || targetm.different_addr_displacement_p ())
  		lra_set_used_insn_alternative (insn, LRA_UNKNOWN_ALT);
  	    }
diff -Nrcpad gcc-16-20250601/gcc/m2/ChangeLog gcc-16-20250608/gcc/m2/ChangeLog
*** gcc-16-20250601/gcc/m2/ChangeLog	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/m2/ChangeLog	Sun Jun  8 22:32:17 2025
***************
*** 1,3 ****
--- 1,45 ----
+ 2025-06-07  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/119650
+ 	PR modula2/117203
+ 	* gm2-compiler/P2Build.bnf (CheckModuleQualident): New
+ 	procedure.
+ 	(Qualident): Rewrite.
+ 	* gm2-compiler/P3Build.bnf (PushTFQualident): New procedure.
+ 	(CheckModuleQualident): Ditto.
+ 	(Qualident): Rewrite.
+ 	* gm2-compiler/PCBuild.bnf (PushTFQualident): New procedure.
+ 	(CheckModuleQualident): Ditto.
+ 	(Qualident): Rewrite.
+ 	* gm2-compiler/PHBuild.bnf (PushTFQualident): New procedure.
+ 	(CheckModuleQualident): Ditto.
+ 	(Qualident): Rewrite.
+ 	* gm2-libs/ARRAYOFCHAR.def: New file.
+ 	* gm2-libs/ARRAYOFCHAR.mod: New file.
+ 	* gm2-libs/CFileSysOp.def: New file.
+ 	* gm2-libs/CHAR.def: New file.
+ 	* gm2-libs/CHAR.mod: New file.
+ 	* gm2-libs/FileSysOp.def: New file.
+ 	* gm2-libs/FileSysOp.mod: New file.
+ 	* gm2-libs/String.def: New file.
+ 	* gm2-libs/String.mod: New file.
+ 	* gm2-libs/StringFileSysOp.def: New file.
+ 	* gm2-libs/StringFileSysOp.mod: New file.
+ 
+ 2025-06-06  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/120542
+ 	* gm2-compiler/M2Quads.mod (BuildReturnLower): New procedure.
+ 	(BuildReturn): Allow return without an expression from
+ 	module initialization blocks.  Generate an error if an
+ 	expression is provided.  Call BuildReturnLower if no error
+ 	was seen.
+ 
+ 2025-06-01  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/120474
+ 	* gm2-libs-log/InOut.mod (LocalWrite): Call FIO.FlushBuffer.
+ 
  2025-06-01  Gaius Mulley  <gaiusmod2@gmail.com>
  
  	PR modula2/120497
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-compiler/M2Quads.mod gcc-16-20250608/gcc/m2/gm2-compiler/M2Quads.mod
*** gcc-16-20250601/gcc/m2/gm2-compiler/M2Quads.mod	Sun Jun  1 22:32:14 2025
--- gcc-16-20250608/gcc/m2/gm2-compiler/M2Quads.mod	Sun Jun  8 22:32:17 2025
*************** END CheckReturnType ;
*** 11299,11304 ****
--- 11299,11333 ----
  
  
  (*
+    BuildReturnLower - check the return type and value to ensure type
+                       compatibility and no range overflow will occur.
+ *)
+ 
+ PROCEDURE BuildReturnLower (tokcombined, tokexpr: CARDINAL; e1, t1: CARDINAL) ;
+ VAR
+    e2, t2: CARDINAL ;
+ BEGIN
+    (* This will check that the type returned is compatible with
+       the formal return type of the procedure.  *)
+    CheckReturnType (tokcombined, CurrentProc, e1, t1) ;
+    (* Dereference LeftValue if necessary.  *)
+    IF GetMode (e1) = LeftValue
+    THEN
+       t2 := GetSType (CurrentProc) ;
+       e2 := MakeTemporary (tokexpr, RightValue) ;
+       PutVar(e2, t2) ;
+       CheckPointerThroughNil (tokexpr, e1) ;
+       doIndrX (tokexpr, e2, e1) ;
+       e1 := e2
+    END ;
+    (* Here we check the data contents to ensure no overflow.  *)
+    BuildRange (InitReturnRangeCheck (tokcombined, CurrentProc, e1)) ;
+    GenQuadOtok (tokcombined, ReturnValueOp, e1, NulSym, CurrentProc, FALSE,
+                 tokcombined, UnknownTokenNo, GetDeclaredMod (CurrentProc))
+ END BuildReturnLower ;
+ 
+ 
+ (*
     BuildReturn - Builds the Return part of the procedure.
                   tokreturn is the location of the RETURN keyword.
                   The Stack is expected to contain:
*************** PROCEDURE BuildReturn (tokreturn: CARDIN
*** 11317,11323 ****
  VAR
     tokcombined,
     tokexpr    : CARDINAL ;
-    e2, t2,
     e1, t1,
     t, f,
     Des        : CARDINAL ;
--- 11346,11351 ----
*************** BEGIN
*** 11337,11362 ****
     tokcombined := MakeVirtualTok (tokreturn, tokreturn, tokexpr) ;
     IF e1 # NulSym
     THEN
!       (* this will check that the type returned is compatible with
!          the formal return type of the procedure.  *)
!       CheckReturnType (tokcombined, CurrentProc, e1, t1) ;
!       (* dereference LeftValue if necessary *)
!       IF GetMode (e1) = LeftValue
        THEN
!          t2 := GetSType (CurrentProc) ;
!          e2 := MakeTemporary (tokexpr, RightValue) ;
!          PutVar(e2, t2) ;
!          CheckPointerThroughNil (tokexpr, e1) ;
!          doIndrX (tokexpr, e2, e1) ;
! 	 (* here we check the data contents to ensure no overflow.  *)
!          BuildRange (InitReturnRangeCheck (tokcombined, CurrentProc, e2)) ;
!          GenQuadOtok (tokcombined, ReturnValueOp, e2, NulSym, CurrentProc, FALSE,
!                       tokcombined, UnknownTokenNo, GetDeclaredMod (CurrentProc))
        ELSE
! 	 (* here we check the data contents to ensure no overflow.  *)
!          BuildRange (InitReturnRangeCheck (tokcombined, CurrentProc, e1)) ;
!          GenQuadOtok (tokcombined, ReturnValueOp, e1, NulSym, CurrentProc, FALSE,
!                       tokcombined, UnknownTokenNo, GetDeclaredMod (CurrentProc))
        END
     END ;
     GenQuadO (tokcombined, GotoOp, NulSym, NulSym, PopWord (ReturnStack), FALSE) ;
--- 11365,11382 ----
     tokcombined := MakeVirtualTok (tokreturn, tokreturn, tokexpr) ;
     IF e1 # NulSym
     THEN
!       (* Check we are in a procedure scope and that the procedure has a return type.  *)
!       IF CurrentProc = NulSym
        THEN
!          MetaErrorT0 (tokcombined,
!                       '{%1E} attempting to return a value when not in a procedure scope')
!       ELSIF GetSType (CurrentProc) = NulSym
!       THEN
!          MetaErrorT1 (tokcombined,
!                       'attempting to return a value from procedure {%1Ea} which does not have a return type',
!                      CurrentProc)
        ELSE
!          BuildReturnLower (tokcombined, tokexpr, e1, t1)
        END
     END ;
     GenQuadO (tokcombined, GotoOp, NulSym, NulSym, PopWord (ReturnStack), FALSE) ;
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-compiler/P2Build.bnf gcc-16-20250608/gcc/m2/gm2-compiler/P2Build.bnf
*** gcc-16-20250601/gcc/m2/gm2-compiler/P2Build.bnf	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/m2/gm2-compiler/P2Build.bnf	Sun Jun  8 22:32:17 2025
*************** see <https://www.gnu.org/licenses/>.  *)
*** 46,52 ****
  IMPLEMENTATION MODULE P2Build ;
  
  FROM M2LexBuf IMPORT currentstring, currenttoken, GetToken, InsertToken,
!                      InsertTokenAndRewind, GetTokenNo, MakeVirtual2Tok ;
  
  FROM M2MetaError IMPORT MetaErrorStringT0, MetaErrorT1 ;
  FROM NameKey IMPORT NulName, Name, makekey, MakeKey ;
--- 46,53 ----
  IMPLEMENTATION MODULE P2Build ;
  
  FROM M2LexBuf IMPORT currentstring, currenttoken, GetToken, InsertToken,
!                      InsertTokenAndRewind, GetTokenNo, MakeVirtual2Tok,
! 		     MakeVirtualTok ;
  
  FROM M2MetaError IMPORT MetaErrorStringT0, MetaErrorT1 ;
  FROM NameKey IMPORT NulName, Name, makekey, MakeKey ;
*************** FROM SymbolTable IMPORT MakeGnuAsm, PutG
*** 128,140 ****
                          PutGnuAsmOutput, PutGnuAsmTrash, PutGnuAsmVolatile,
                          MakeRegInterface,
                          PutRegInterface, GetRegInterface,
!                         GetSymName, GetType, MakeConstLit,
                          NulSym,
!                         StartScope, EndScope,
                          PutIncluded,
                          PutExceptionFinally, PutExceptionBlock, GetCurrentScope,
                          IsVarParam, IsProcedure, IsDefImp, IsModule,
!                         IsRecord, IsAModula2Type,
                          RequestSym ;
  
  IMPORT M2Error ;
--- 129,141 ----
                          PutGnuAsmOutput, PutGnuAsmTrash, PutGnuAsmVolatile,
                          MakeRegInterface,
                          PutRegInterface, GetRegInterface,
!                         GetSymName, GetType, MakeConstLit, IsProcType,
                          NulSym,
!                         StartScope, EndScope, GetCurrentModule,
                          PutIncluded,
                          PutExceptionFinally, PutExceptionBlock, GetCurrentScope,
                          IsVarParam, IsProcedure, IsDefImp, IsModule,
!                         IsRecord, IsAModula2Type, IsImported,
                          RequestSym ;
  
  IMPORT M2Error ;
*************** BEGIN
*** 450,455 ****
--- 451,504 ----
     Expect(realtok, stopset0, stopset1, stopset2)
  END Real ;
  
+ 
+ (*
+    CheckModuleQualident - check to see if the beginning ident of the qualident is an
+                           imported module.
+ *)
+ 
+ PROCEDURE CheckModuleQualident (stopset0: SetOfStop0;
+                                 stopset1: SetOfStop1;
+ 				stopset2: SetOfStop2) ;
+ VAR
+    name         : Name ;
+    init,
+    nextLevel,
+    tok, tokstart: CARDINAL ;
+ BEGIN
+    PopTtok (name, tokstart) ;
+    tok := tokstart ;
+    init := RequestSym (tok, name) ;
+    IF IsImported (GetCurrentModule (), init) AND (IsDefImp (init) OR IsModule (init))
+    THEN
+       WHILE IsDefImp (init) OR IsModule (init) DO
+          Expect (periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
+          StartScope (init) ;
+          Ident (stopset0, stopset1, stopset2) ;
+ 	 PopTtok (name, tok) ;
+          nextLevel := RequestSym (tok, name) ;
+          EndScope ;
+ 	 init := nextLevel
+       END ;
+       IF tok#tokstart
+       THEN
+          tok := MakeVirtualTok (tokstart, tokstart, tok)
+       END ;
+       IF IsProcedure (init) OR IsProcType (init)
+       THEN
+          PushTtok (init, tok)
+       ELSE
+          Annotate ("%1s(%1d)|%1s(%1d)||qualident|type") ;
+          PushTFtok (init, GetType (init), tok) ;
+       END ;
+       PutIncluded (init)
+    ELSE
+       PushTFtok (init, GetType (init), tok) ;
+       Annotate ("%1s(%1d)|%1s(%1d)||qualident|type")
+    END
+ END CheckModuleQualident ;
+ 
+ 
  % module P2Build end
  END P2Build.
  % rules
*************** ImplementationOrProgramModule := Impleme
*** 609,636 ****
  
  Number := Integer | Real =:
  
! Qualident :=                                                               % VAR name: Name ;
!                                                                                  Type, Sym, tok: CARDINAL ; %
!              Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!                                                                                 PopTtok(name, tok) ;
!                                                                                 Sym := RequestSym (tok, name) ;
!                                                                                 IF IsDefImp(Sym) OR IsModule(Sym)
!                                                                                 THEN
!                                                                                    Expect(periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
!                                                                                    StartScope(Sym) ;
!                                                                                    Qualident(stopset0, stopset1, stopset2) ;
!                                                                                    (* should we test for lack of ident? *)
!                                                                                    PopTFtok(Sym, Type, tok) ;
!                                                                                    PushTFtok(Sym, Type, tok) ;
!                                                                                    Annotate("%1s(%1d)|%1s(%1d)||qualident|type") ;
!                                                                                    EndScope ;
!                                                                                    PutIncluded(Sym)
!                                                                                 ELSE
!                                                                                    PushTFtok(Sym, GetType(Sym), tok) ;
!                                                                                    Annotate("%1s(%1d)|%1s(%1d)||qualident|type")
!                                                                                 END
                                                                               ELSE (* just parse qualident *) %
               { "." Ident }                                                 % END %
             =:
--- 658,667 ----
  
  Number := Integer | Real =:
  
! Qualident := Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!      										CheckModuleQualident (stopset0, stopset1, stopset2)
                                                                               ELSE (* just parse qualident *) %
               { "." Ident }                                                 % END %
             =:
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-compiler/P3Build.bnf gcc-16-20250608/gcc/m2/gm2-compiler/P3Build.bnf
*** gcc-16-20250601/gcc/m2/gm2-compiler/P3Build.bnf	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/m2/gm2-compiler/P3Build.bnf	Sun Jun  8 22:32:17 2025
*************** FROM SymbolTable IMPORT MakeGnuAsm, PutG
*** 166,179 ****
                          MakeRegInterface,
                          PutRegInterface,
                          IsRegInterface, IsGnuAsmVolatile, IsGnuAsm,
!                         GetCurrentModule,
                          GetSymName, GetType, SkipType,
                          NulSym,
                          StartScope, EndScope,
                          PutIncluded,
                          IsVarParam, IsProcedure, IsDefImp, IsModule, IsProcType,
                          IsRecord,
!                         RequestSym, IsExported,
                          GetSym, GetLocalSym ;
  
  FROM M2Batch IMPORT IsModuleKnown ;
--- 166,179 ----
                          MakeRegInterface,
                          PutRegInterface,
                          IsRegInterface, IsGnuAsmVolatile, IsGnuAsm,
!                         GetCurrentModule, IsInnerModule,
                          GetSymName, GetType, SkipType,
                          NulSym,
                          StartScope, EndScope,
                          PutIncluded,
                          IsVarParam, IsProcedure, IsDefImp, IsModule, IsProcType,
                          IsRecord,
!                         RequestSym, IsExported, IsImported,
                          GetSym, GetLocalSym ;
  
  FROM M2Batch IMPORT IsModuleKnown ;
*************** BEGIN
*** 468,473 ****
--- 468,536 ----
     Expect(realtok, stopset0, stopset1, stopset2)
  END Real ;
  
+ 
+ (*
+    PushTFQualident - push the result of the Qualident
+                      to the stack.  It checks to see if init
+ 		     is a procedure or proc type and if so
+ 		     it does not push the return type.
+ *)
+ 
+ PROCEDURE PushTFQualident (tok, tokstart: CARDINAL;
+                            init: CARDINAL) ;
+ BEGIN
+    IF tok#tokstart
+    THEN
+       tok := MakeVirtualTok (tokstart, tokstart, tok)
+    END ;
+    IF IsProcedure (init) OR IsProcType (init) OR IsModule (init) OR IsDefImp (init)
+    THEN
+       PushTtok (init, tok) ;
+       Annotate ("%1s(%1d)||qualident procedure/proctype") ;
+    ELSE
+       Annotate ("%1s(%1d)|%1s(%1d)||qualident|type") ;
+       PushTFtok (init, GetType (init), tok) ;
+    END
+ END PushTFQualident ;
+ 
+ 
+ (*
+    CheckModuleQualident - check to see if the beginning ident of the qualident is an
+                           imported module.
+ *)
+ 
+ PROCEDURE CheckModuleQualident (stopset0: SetOfStop0;
+                                 stopset1: SetOfStop1;
+ 				stopset2: SetOfStop2) ;
+ VAR
+    name         : Name ;
+    init,
+    nextLevel,
+    tok, tokstart: CARDINAL ;
+ BEGIN
+    PopTtok (name, tokstart) ;
+    tok := tokstart ;
+    init := RequestSym (tok, name) ;
+    IF (IsImported (GetCurrentModule (), init) AND IsDefImp (init)) OR
+       IsModule (init)
+    THEN
+       WHILE IsDefImp (init) OR IsModule (init) DO
+          Expect (periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
+          StartScope (init) ;
+          Ident (stopset0, stopset1, stopset2) ;
+ 	 PopTtok (name, tok) ;
+          nextLevel := RequestSym (tok, name) ;
+          EndScope ;
+ 	 CheckCanBeImported (init, nextLevel) ;
+ 	 init := nextLevel
+       END ;
+       PushTFQualident (tok, tokstart, init) ;
+       PutIncluded (init)
+    ELSE
+       PushTFQualident (tok, tokstart, init)
+    END
+ END CheckModuleQualident ;
+ 
  % module P3Build end
  BEGIN
     BlockState := InitState ()
*************** Number := Integer | Real =:
*** 643,679 ****
  --  IsAutoPushOff then we just consume tokens.
  --
  
! Qualident :=                                                               % VAR name          : Name ;
!                                                                                  init, ip1,
!                                                                                  tokstart, tok : CARDINAL ; %
!              Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!                                                                                 PopTtok(name, tokstart) ;
! 										tok := tokstart ;
!                                                                                 init := RequestSym (tok, name) ;
!                                                                                 WHILE IsDefImp (init) OR IsModule (init) DO
!                                                                                    Expect (periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
!                                                                                    StartScope (init) ;
!                                                                                    Ident (stopset0, stopset1, stopset2) ;
!                                                                                    PopTtok (name, tok) ;
!                                                                                    ip1 := RequestSym (tok, name) ;
!                                                                                    PutIncluded(ip1) ;
!                                                                                    EndScope ;
!                                                                                    CheckCanBeImported(init, ip1) ;
!                                                                                    init := ip1
!                                                                                 END ;
! 										IF tok#tokstart
! 										THEN
! 										   tok := MakeVirtualTok (tokstart, tokstart, tok)
! 										END ;
!                                                                                 IF IsProcedure(init) OR IsProcType(init)
!                                                                                 THEN
!                                                                                    PushTtok(init, tok)
!                                                                                 ELSE
!                                                                                    PushTFtok(init, GetType(init), tok) ;
!                                                                                 END
!                                                                              ELSE %
               { "." Ident }                                                 % END %
             =:
  
--- 706,716 ----
  --  IsAutoPushOff then we just consume tokens.
  --
  
! Qualident := Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!      										CheckModuleQualident (stopset0, stopset1, stopset2)
!                                                                              ELSE (* just parse qualident *) %
               { "." Ident }                                                 % END %
             =:
  
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-compiler/PCBuild.bnf gcc-16-20250608/gcc/m2/gm2-compiler/PCBuild.bnf
*** gcc-16-20250601/gcc/m2/gm2-compiler/PCBuild.bnf	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/m2/gm2-compiler/PCBuild.bnf	Sun Jun  8 22:32:17 2025
*************** FROM M2Quads IMPORT Top, PushT, PopT, Pu
*** 65,71 ****
                      PushTFA,
                      PushTFn, PopTFn, PushTFtok, PopTtok, PopTFtok, PushTtok, PushTFntok,
                      PushT, PushTF, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto,
!                     DupFrame,
                      BuildTypeForConstructor, BuildConstructor, BuildConstructorEnd,
                      PopConstructor,
                      NextConstructorField, SilentBuildConstructor,
--- 65,71 ----
                      PushTFA,
                      PushTFn, PopTFn, PushTFtok, PopTtok, PopTFtok, PushTtok, PushTFntok,
                      PushT, PushTF, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto,
!                     DupFrame, Annotate,
                      BuildTypeForConstructor, BuildConstructor, BuildConstructorEnd,
                      PopConstructor,
                      NextConstructorField, SilentBuildConstructor,
*************** FROM SymbolTable IMPORT MakeGnuAsm, PutG
*** 118,123 ****
--- 118,124 ----
                          PutIncluded,
                          IsVarParam, IsProcedure, IsDefImp, IsModule,
                          IsRecord, IsProcType,
+                         GetCurrentModule, IsInnerModule, IsImported,
                          RequestSym,
                          GetSym, GetLocalSym ;
  
*************** BEGIN
*** 412,417 ****
--- 413,480 ----
     Expect(realtok, stopset0, stopset1, stopset2)
  END Real ;
  
+ 
+ (*
+    PushTFQualident - push the result of the Qualident
+                      to the stack.  It checks to see if init
+ 		     is a procedure or proc type and if so
+ 		     it does not push the return type.
+ *)
+ 
+ PROCEDURE PushTFQualident (tok, tokstart: CARDINAL;
+                            init: CARDINAL) ;
+ BEGIN
+    IF tok#tokstart
+    THEN
+       tok := MakeVirtualTok (tokstart, tokstart, tok)
+    END ;
+    IF IsProcedure (init) OR IsProcType (init)
+    THEN
+       PushTtok (init, tok) ;
+       Annotate ("%1s(%1d)||qualident procedure/proctype") ;
+    ELSE
+       Annotate ("%1s(%1d)|%1s(%1d)||qualident|type") ;
+       PushTFtok (init, GetType (init), tok) ;
+    END
+ END PushTFQualident ;
+ 
+ 
+ (*
+    CheckModuleQualident - check to see if the beginning ident of the qualident is an
+                           imported module.
+ *)
+ 
+ PROCEDURE CheckModuleQualident (stopset0: SetOfStop0;
+                                 stopset1: SetOfStop1;
+ 				stopset2: SetOfStop2) ;
+ VAR
+    name         : Name ;
+    init,
+    nextLevel,
+    tok, tokstart: CARDINAL ;
+ BEGIN
+    PopTtok (name, tokstart) ;
+    tok := tokstart ;
+    init := RequestSym (tok, name) ;
+    IF IsImported (GetCurrentModule (), init) AND (IsDefImp (init) OR IsModule (init))
+    THEN
+       WHILE IsDefImp (init) OR IsModule (init) DO
+          Expect (periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
+          StartScope (init) ;
+          Ident (stopset0, stopset1, stopset2) ;
+ 	 PopTtok (name, tok) ;
+          nextLevel := RequestSym (tok, name) ;
+          EndScope ;
+ 	 CheckCanBeImported (init, nextLevel) ;
+ 	 init := nextLevel
+       END ;
+       PushTFQualident (tok, tokstart, init) ;
+       PutIncluded (init)
+    ELSE
+       PushTFQualident (tok, tokstart, init)
+    END
+ END CheckModuleQualident ;
+ 
  % module PCBuild end
  BEGIN
     BlockState := InitState ()
*************** ImplementationOrProgramModule :=
*** 569,605 ****
  
  Number := Integer | Real =:
  
! Qualident :=                                                               % VAR name          : Name ;
!                                                                                  init, ip1,
!                                                                                  tokstart, tok : CARDINAL ; %
!              Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!                                                                                 PopTtok(name, tokstart) ;
! 										tok := tokstart ;
!                                                                                 init := RequestSym (tok, name) ;
!                                                                                 WHILE IsDefImp (init) OR IsModule (init) DO
!                                                                                    Expect (periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
!                                                                                    StartScope (init) ;
!                                                                                    Ident (stopset0, stopset1, stopset2) ;
!                                                                                    PopTtok (name, tok) ;
!                                                                                    ip1 := RequestSym (tok, name) ;
!                                                                                    PutIncluded(ip1) ;
!                                                                                    EndScope ;
!                                                                                    CheckCanBeImported(init, ip1) ;
!                                                                                    init := ip1
!                                                                                 END ;
! 										IF tok#tokstart
! 										THEN
! 										   tok := MakeVirtualTok (tokstart, tokstart, tok)
! 										END ;
!                                                                                 IF IsProcedure(init) OR IsProcType(init)
!                                                                                 THEN
!                                                                                    PushTtok(init, tok)
!                                                                                 ELSE
!                                                                                    PushTFtok(init, GetType(init), tok) ;
!                                                                                 END
!                                                                              ELSE %
               { "." Ident }                                                 % END %
             =:
  
--- 632,642 ----
  
  Number := Integer | Real =:
  
! Qualident := Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!      										CheckModuleQualident (stopset0, stopset1, stopset2)
!                                                                              ELSE (* just parse qualident *) %
               { "." Ident }                                                 % END %
             =:
  
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-compiler/PHBuild.bnf gcc-16-20250608/gcc/m2/gm2-compiler/PHBuild.bnf
*** gcc-16-20250601/gcc/m2/gm2-compiler/PHBuild.bnf	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/m2/gm2-compiler/PHBuild.bnf	Sun Jun  8 22:32:17 2025
*************** FROM SymbolTable IMPORT MakeGnuAsm, PutG
*** 130,141 ****
                          PutGnuAsmOutput, PutGnuAsmTrash, PutGnuAsmVolatile,
                          MakeRegInterface,
                          PutRegInterface, GetRegInterface,
!                         GetSymName, GetType,
                          NulSym,
                          StartScope, EndScope,
                          PutIncluded,
                          IsVarParam, IsProcedure, IsDefImp, IsModule,
!                         IsRecord, IsProcType,
                          RequestSym,
                          GetSym, GetLocalSym ;
  
--- 130,141 ----
                          PutGnuAsmOutput, PutGnuAsmTrash, PutGnuAsmVolatile,
                          MakeRegInterface,
                          PutRegInterface, GetRegInterface,
!                         GetSymName, GetType, GetCurrentModule,
                          NulSym,
                          StartScope, EndScope,
                          PutIncluded,
                          IsVarParam, IsProcedure, IsDefImp, IsModule,
!                         IsRecord, IsProcType, IsInnerModule, IsImported,
                          RequestSym,
                          GetSym, GetLocalSym ;
  
*************** BEGIN
*** 368,373 ****
--- 368,435 ----
     Expect(realtok, stopset0, stopset1, stopset2)
  END Real ;
  
+ 
+ (*
+    PushTFQualident - push the result of the Qualident
+                      to the stack.  It checks to see if init
+ 		     is a procedure or proc type and if so
+ 		     it does not push the return type.
+ *)
+ 
+ PROCEDURE PushTFQualident (tok, tokstart: CARDINAL;
+                            init: CARDINAL) ;
+ BEGIN
+    IF tok#tokstart
+    THEN
+       tok := MakeVirtualTok (tokstart, tokstart, tok)
+    END ;
+    IF IsProcedure (init) OR IsProcType (init)
+    THEN
+       PushTtok (init, tok) ;
+       Annotate ("%1s(%1d)||qualident procedure/proctype") ;
+    ELSE
+       Annotate ("%1s(%1d)|%1s(%1d)||qualident|type") ;
+       PushTFtok (init, GetType (init), tok) ;
+    END
+ END PushTFQualident ;
+ 
+ 
+ (*
+    CheckModuleQualident - check to see if the beginning ident of the qualident is an
+                           imported module.
+ *)
+ 
+ PROCEDURE CheckModuleQualident (stopset0: SetOfStop0;
+                                 stopset1: SetOfStop1;
+ 				stopset2: SetOfStop2) ;
+ VAR
+    name         : Name ;
+    init,
+    nextLevel,
+    tok, tokstart: CARDINAL ;
+ BEGIN
+    PopTtok (name, tokstart) ;
+    tok := tokstart ;
+    init := RequestSym (tok, name) ;
+    IF IsImported (GetCurrentModule (), init) AND (IsDefImp (init) OR IsModule (init))
+    THEN
+       WHILE IsDefImp (init) OR IsModule (init) DO
+          Expect (periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
+          StartScope (init) ;
+          Ident (stopset0, stopset1, stopset2) ;
+ 	 PopTtok (name, tok) ;
+          nextLevel := RequestSym (tok, name) ;
+          EndScope ;
+ 	 CheckCanBeImported (init, nextLevel) ;
+ 	 init := nextLevel
+       END ;
+       PushTFQualident (tok, tokstart, init) ;
+       PutIncluded (init)
+    ELSE
+       PushTFQualident (tok, tokstart, init)
+    END
+ END CheckModuleQualident ;
+ 
  % module PHBuild end
  END PHBuild.
  % rules
*************** ImplementationOrProgramModule :=
*** 541,566 ****
  Number := Integer | Real =:
  
  
! Qualident :=                                                               % VAR name: Name ;
!                                                                                  Type, Sym, tok: CARDINAL ; %
!              Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!                                                                                 PopTtok(name, tok) ;
!                                                                                 Sym := RequestSym (tok, name) ;
!                                                                                 IF IsDefImp(Sym) OR IsModule(Sym)
!                                                                                 THEN
!                                                                                    Expect(periodtok, stopset0, stopset1, stopset2 + SetOfStop2{identtok}) ;
!                                                                                    StartScope(Sym) ;
!                                                                                    Qualident(stopset0, stopset1, stopset2) ;
!                                                                                    (* should we test for lack of ident? *)
!                                                                                    PopTFtok(Sym, Type, tok) ;
!                                                                                    PushTFtok(Sym, Type, tok) ;
!                                                                                    EndScope ;
!                                                                                    PutIncluded(Sym)
!                                                                                 ELSE
!                                                                                    PushTFtok(Sym, GetType(Sym), tok) ;
!                                                                                 END
                                                                               ELSE (* just parse qualident *) %
               { "." Ident }                                                 % END %
             =:
--- 603,612 ----
  Number := Integer | Real =:
  
  
! Qualident := Ident
                                                                             % IF IsAutoPushOn()
                                                                               THEN
!      										CheckModuleQualident (stopset0, stopset1, stopset2)
                                                                               ELSE (* just parse qualident *) %
               { "." Ident }                                                 % END %
             =:
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/ARRAYOFCHAR.def gcc-16-20250608/gcc/m2/gm2-libs/ARRAYOFCHAR.def
*** gcc-16-20250601/gcc/m2/gm2-libs/ARRAYOFCHAR.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/ARRAYOFCHAR.def	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,41 ----
+ (* ARRAYOFCHAR.def provides output procedures for the ARRAY OF CHAR datatype.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE ARRAYOFCHAR ;
+ 
+ FROM FIO IMPORT File ;
+ 
+ 
+ (*
+    Description: provides write and read procedures for
+                 ARRAY OF CHAR.
+ *)
+ 
+ PROCEDURE Write (f: File; str: ARRAY OF CHAR) ;
+ PROCEDURE WriteLn (f: File) ;
+ 
+ 
+ END ARRAYOFCHAR.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/ARRAYOFCHAR.mod gcc-16-20250608/gcc/m2/gm2-libs/ARRAYOFCHAR.mod
*** gcc-16-20250601/gcc/m2/gm2-libs/ARRAYOFCHAR.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/ARRAYOFCHAR.mod	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,56 ----
+ (* ARRAYOFCHAR.def provides output procedures for the ARRAY OF CHAR datatype.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE ARRAYOFCHAR ;
+ 
+ FROM FIO IMPORT WriteChar, WriteLine ;
+ IMPORT StrLib ;
+ 
+ 
+ (*
+    Write - writes a string to file f.
+ *)
+ 
+ PROCEDURE Write (f: File; a: ARRAY OF CHAR) ;
+ VAR
+    len, i: CARDINAL ;
+ BEGIN
+    len := StrLib.StrLen (a) ;
+    i := 0 ;
+    WHILE i < len DO
+       WriteChar (f, a[i]) ;
+       INC (i)
+    END
+ END Write ;
+ 
+ 
+ PROCEDURE WriteLn (f: File) ;
+ BEGIN
+    WriteLine (f)
+ END WriteLn ;
+ 
+ 
+ END ARRAYOFCHAR.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/CFileSysOp.def gcc-16-20250608/gcc/m2/gm2-libs/CFileSysOp.def
*** gcc-16-20250601/gcc/m2/gm2-libs/CFileSysOp.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/CFileSysOp.def	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,56 ----
+ DEFINITION MODULE CFileSysOp ;
+ 
+ FROM SYSTEM IMPORT ADDRESS ;
+ 
+ 
+ (*
+    Description: provides access to filesystem operations.
+                 The implementation module is written in C
+                 and the parameters behave as their C
+                 counterparts.
+ *)
+ 
+ TYPE
+    AccessMode = SET OF AccessStatus ;
+    AccessStatus = (F_OK, R_OK, W_OK, X_OK, A_FAIL) ;
+ 
+ 
+ PROCEDURE Unlink (filename: ADDRESS) : INTEGER ;
+ 
+ 
+ (*
+    Access - test access to a path or file.  The behavior is
+             the same as defined in access(2).  Except that
+             on A_FAIL is only used during the return result
+             indicating the underlying C access has returned
+             -1 (and errno can be checked).
+ *)
+ 
+ PROCEDURE Access (pathname: ADDRESS; mode: AccessMode) : AccessMode ;
+ 
+ 
+ (* Return TRUE if the caller can see the existance of the file or
+    directory on the filesystem.  *)
+ 
+ (*
+    IsDir - return true if filename is a regular directory.
+ *)
+ 
+ PROCEDURE IsDir (dirname: ADDRESS) : BOOLEAN ;
+ 
+ 
+ (*
+    IsFile - return true if filename is a regular file.
+ *)
+ 
+ PROCEDURE IsFile (filename: ADDRESS) : BOOLEAN ;
+ 
+ 
+ (*
+    Exists - return true if pathname exists.
+ *)
+ 
+ PROCEDURE Exists (pathname: ADDRESS) : BOOLEAN ;
+ 
+ 
+ END CFileSysOp.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/CHAR.def gcc-16-20250608/gcc/m2/gm2-libs/CHAR.def
*** gcc-16-20250601/gcc/m2/gm2-libs/CHAR.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/CHAR.def	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,40 ----
+ (* CHAR.def provides output procedures for the CHAR datatype.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE CHAR ;
+ 
+ FROM FIO IMPORT File ;
+ 
+ 
+ (*
+    Write a single character ch to file f.
+ *)
+ 
+ PROCEDURE Write (f: File; ch: CHAR) ;
+ PROCEDURE WriteLn (f: File) ;
+ 
+ 
+ END CHAR.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/CHAR.mod gcc-16-20250608/gcc/m2/gm2-libs/CHAR.mod
*** gcc-16-20250601/gcc/m2/gm2-libs/CHAR.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/CHAR.mod	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,48 ----
+ (* CHAR.mod provides output procedures for the CHAR datatype.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE CHAR ;
+ 
+ IMPORT FIO ;
+ 
+ 
+ (*
+    Write a single character ch to file f.
+ *)
+ 
+ PROCEDURE Write (f: File; ch: CHAR) ;
+ BEGIN
+    FIO.WriteChar (f, ch)
+ END Write ;
+ 
+ 
+ PROCEDURE WriteLn (f: File) ;
+ BEGIN
+    FIO.WriteLine (f)
+ END WriteLn ;
+ 
+ 
+ END CHAR.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/FileSysOp.def gcc-16-20250608/gcc/m2/gm2-libs/FileSysOp.def
*** gcc-16-20250601/gcc/m2/gm2-libs/FileSysOp.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/FileSysOp.def	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,44 ----
+ (* FileSysOp.def provides procedures to manipulate the file system.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE FileSysOp ;
+ 
+ FROM CFileSysOp IMPORT AccessMode ;
+ 
+ 
+ (*
+    Description: provides access to filesystem operations using
+                 Modula-2 base types.
+ *)
+ 
+ PROCEDURE Exists (filename: ARRAY OF CHAR) : BOOLEAN ;
+ PROCEDURE IsDir (dirname: ARRAY OF CHAR) : BOOLEAN ;
+ PROCEDURE IsFile (filename: ARRAY OF CHAR) : BOOLEAN ;
+ PROCEDURE Unlink (filename: ARRAY OF CHAR) : BOOLEAN ;
+ PROCEDURE Access (pathname: ARRAY OF CHAR; mode: AccessMode) : AccessMode ;
+ 
+ 
+ END FileSysOp.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/FileSysOp.mod gcc-16-20250608/gcc/m2/gm2-libs/FileSysOp.mod
*** gcc-16-20250601/gcc/m2/gm2-libs/FileSysOp.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/FileSysOp.mod	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,98 ----
+ (* FileSysOp.mod provides procedures to manipulate the file system.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE FileSysOp ;
+ 
+ IMPORT StringFileSysOp ;
+ FROM DynamicStrings IMPORT String, InitString, KillString ;
+ 
+ 
+ (*
+    Description: provides access to filesystem operations using
+                 Modula-2 base types.
+ *)
+ 
+ PROCEDURE Exists (filename: ARRAY OF CHAR) : BOOLEAN ;
+ VAR
+    fn    : String ;
+    result: BOOLEAN ;
+ BEGIN
+    fn := InitString (filename) ;
+    result := StringFileSysOp.Exists (fn) ;
+    fn := KillString (fn) ;
+    RETURN result
+ END Exists ;
+ 
+ 
+ PROCEDURE IsDir (dirname: ARRAY OF CHAR) : BOOLEAN ;
+ VAR
+    fn    : String ;
+    result: BOOLEAN ;
+ BEGIN
+    fn := InitString (dirname) ;
+    result := StringFileSysOp.IsDir (fn) ;
+    fn := KillString (fn) ;
+    RETURN result
+ END IsDir ;
+ 
+ 
+ PROCEDURE IsFile (filename: ARRAY OF CHAR) : BOOLEAN ;
+ VAR
+    fn    : String ;
+    result: BOOLEAN ;
+ BEGIN
+    fn := InitString (filename) ;
+    result := StringFileSysOp.IsFile (fn) ;
+    fn := KillString (fn) ;
+    RETURN result
+ END IsFile ;
+ 
+ 
+ PROCEDURE Unlink (filename: ARRAY OF CHAR) : BOOLEAN ;
+ VAR
+    fn    : String ;
+    result: BOOLEAN ;
+ BEGIN
+    fn := InitString (filename) ;
+    result := StringFileSysOp.Unlink (fn) ;
+    fn := KillString (fn) ;
+    RETURN result
+ END Unlink ;
+ 
+ 
+ PROCEDURE Access (pathname: ARRAY OF CHAR; mode: AccessMode) : AccessMode ;
+ VAR
+    pn    : String ;
+    result: AccessMode ;
+ BEGIN
+    pn := InitString (pathname) ;
+    result := StringFileSysOp.Access (pn, mode) ;
+    pn := KillString (pn) ;
+    RETURN result
+ END Access ;
+ 
+ 
+ END FileSysOp.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/String.def gcc-16-20250608/gcc/m2/gm2-libs/String.def
*** gcc-16-20250601/gcc/m2/gm2-libs/String.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/String.def	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,35 ----
+ (* String.def provides output procedures for the String datatype.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE String ;
+ 
+ FROM DynamicStrings IMPORT String ;
+ FROM FIO IMPORT File ;
+ 
+ PROCEDURE Write (f: File; str: String) ;
+ PROCEDURE WriteLn (f: File) ;
+ 
+ END String.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/String.mod gcc-16-20250608/gcc/m2/gm2-libs/String.mod
*** gcc-16-20250601/gcc/m2/gm2-libs/String.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/String.mod	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,51 ----
+ (* String.mod provides output procedures for the String datatype.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE String ;
+ 
+ IMPORT DynamicStrings, CHAR ;
+ 
+ 
+ PROCEDURE Write (f: File; str: String) ;
+ VAR
+    i, len: CARDINAL ;
+ BEGIN
+    i := 0 ;
+    len := DynamicStrings.Length (str) ;
+    WHILE i < len DO
+       CHAR.Write (f, DynamicStrings.char (str, i)) ;
+       INC (i)
+    END
+ END Write ;
+ 
+ 
+ PROCEDURE WriteLn (f: File) ;
+ BEGIN
+    CHAR.WriteLn (f)
+ END WriteLn ;
+ 
+ 
+ END String.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/StringFileSysOp.def gcc-16-20250608/gcc/m2/gm2-libs/StringFileSysOp.def
*** gcc-16-20250601/gcc/m2/gm2-libs/StringFileSysOp.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/StringFileSysOp.def	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,40 ----
+ (* StringFileSysOp.def provides procedures to manipulate the file system.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE StringFileSysOp ;
+ 
+ FROM DynamicStrings IMPORT String ;
+ FROM CFileSysOp IMPORT AccessMode ;
+ 
+ 
+ PROCEDURE Exists (filename: String) : BOOLEAN ;
+ PROCEDURE IsDir (dirname: String) : BOOLEAN ;
+ PROCEDURE IsFile (filename: String) : BOOLEAN ;
+ PROCEDURE Unlink (filename: String) : BOOLEAN ;
+ PROCEDURE Access (pathname: String; mode: AccessMode) : AccessMode ;
+ 
+ 
+ END StringFileSysOp.
diff -Nrcpad gcc-16-20250601/gcc/m2/gm2-libs/StringFileSysOp.mod gcc-16-20250608/gcc/m2/gm2-libs/StringFileSysOp.mod
*** gcc-16-20250601/gcc/m2/gm2-libs/StringFileSysOp.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/m2/gm2-libs/StringFileSysOp.mod	Sun Jun  8 22:32:17 2025
***************
*** 0 ****
--- 1,63 ----
+ (* StringFileSysOp.mod provides procedures to manipulate the file system.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE StringFileSysOp ;
+ 
+ IMPORT CFileSysOp ;
+ FROM DynamicStrings IMPORT string ;
+ 
+ 
+ PROCEDURE Exists (filename: String) : BOOLEAN ;
+ BEGIN
+    RETURN CFileSysOp.Exists (string (filename))
+ END Exists ;
+ 
+ 
+ PROCEDURE IsDir (dirname: String) : BOOLEAN ;
+ BEGIN
+   RETURN CFileSysOp.IsDir (string (dirname))
+ END IsDir ;
+ 
+ 
+ PROCEDURE IsFile (filename: String) : BOOLEAN ;
+ BEGIN
+    RETURN CFileSysOp.IsFile (string (filename))
+ END IsFile ;
+ 
+ 
+ PROCEDURE Unlink (filename: String) : BOOLEAN ;
+ BEGIN
+    RETURN CFileSysOp.Unlink (string (filename)) = 0
+ END Unlink ;
+ 
+ 
+ PROCEDURE Access (pathname: String; mode: AccessMode) : AccessMode ;
+ BEGIN
+    RETURN CFileSysOp.Access (string (pathname), mode)
+ END Access ;
+ 
+ 
+ END StringFileSysOp.
diff -Nrcpad gcc-16-20250601/gcc/match.pd gcc-16-20250608/gcc/match.pd
*** gcc-16-20250601/gcc/match.pd	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/match.pd	Sun Jun  8 22:32:17 2025
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 2177,2182 ****
--- 2177,2194 ----
      (view_convert (rshift (view_convert:ntype @0) @1))
      (convert (rshift (convert:ntype @0) @1))))))
  
+ #if GIMPLE
+  /* Fold ((x + y) >> 1 into IFN_AVG_FLOOR (x, y) if x and y are vectors in
+     which each element is known to have at least one leading zero bit.  */
+ (simplify
+  (rshift (plus:cs @0 @1) integer_onep)
+  (if (VECTOR_TYPE_P (type)
+       && direct_internal_fn_supported_p (IFN_AVG_FLOOR, type, OPTIMIZE_FOR_BOTH)
+       && wi::clz (get_nonzero_bits (@0)) > 0
+       && wi::clz (get_nonzero_bits (@1)) > 0)
+   (IFN_AVG_FLOOR @0 @1)))
+ #endif
+ 
  /* Try to fold (type) X op CST -> (type) (X op ((type-x) CST))
     when profitable.
     For bitwise binary operations apply operand conversions to the
*************** and,
*** 11327,11333 ****
  	  (vec_perm @2 @5 { op0; })))))))))))
  
  
! /* Match count trailing zeroes for simplify_count_trailing_zeroes in fwprop.
     The canonical form is array[((x & -x) * C) >> SHIFT] where C is a magic
     constant which when multiplied by a power of 2 contains a unique value
     in the top 5 or 6 bits.  This is then indexed into a table which maps it
--- 11339,11345 ----
  	  (vec_perm @2 @5 { op0; })))))))))))
  
  
! /* Match count trailing zeroes for simplify_count_zeroes in forwprop.
     The canonical form is array[((x & -x) * C) >> SHIFT] where C is a magic
     constant which when multiplied by a power of 2 contains a unique value
     in the top 5 or 6 bits.  This is then indexed into a table which maps it
*************** and,
*** 11335,11340 ****
--- 11347,11398 ----
  (match (ctz_table_index @1 @2 @3)
    (rshift (mult (bit_and:c (negate @1) @1) INTEGER_CST@2) INTEGER_CST@3))
  
+ /* Match count leading zeros for simplify_count_zeroes in forwprop.
+    One canonical form is 31 - array[idx] where IDX is computed from X
+    by first setting all bits from the topmost set bits down via a
+    series of shifts and ors to X' and then computing (X' * C) >> SHIFT.  */
+ (match (clz_table_index @1 @2 @3)
+   (rshift (mult
+    (bit_ior (rshift
+      (bit_ior@d (rshift
+        (bit_ior@c (rshift
+          (bit_ior@b (rshift
+ 	   (bit_ior@a (rshift @1 INTEGER_CST@c1) @1)
+ 	   INTEGER_CST@c2) @a)
+ 	 INTEGER_CST@c4) @b)
+        INTEGER_CST@c8) @c)
+      INTEGER_CST@c16) @d) INTEGER_CST@2) INTEGER_CST@3)
+   (if (INTEGRAL_TYPE_P (type)
+        && TYPE_UNSIGNED (type)
+        && TYPE_PRECISION (type) == 32
+        && compare_tree_int (@c1, 1) == 0
+        && compare_tree_int (@c2, 2) == 0
+        && compare_tree_int (@c4, 4) == 0
+        && compare_tree_int (@c8, 8) == 0
+        && compare_tree_int (@c16, 16) == 0)))
+ (match (clz_table_index @1 @2 @3)
+   (rshift (mult
+    (bit_ior (rshift
+      (bit_ior@e (rshift
+        (bit_ior@d (rshift
+          (bit_ior@c (rshift
+            (bit_ior@b (rshift
+ 	     (bit_ior@a (rshift @1 INTEGER_CST@c1) @1)
+ 	     INTEGER_CST@c2) @a)
+ 	   INTEGER_CST@c4) @b)
+          INTEGER_CST@c8) @c)
+        INTEGER_CST@c16) @d)
+      INTEGER_CST@c32) @e) INTEGER_CST@2) INTEGER_CST@3)
+   (if (INTEGRAL_TYPE_P (type)
+        && TYPE_UNSIGNED (type)
+        && TYPE_PRECISION (type) == 64
+        && compare_tree_int (@c1, 1) == 0
+        && compare_tree_int (@c2, 2) == 0
+        && compare_tree_int (@c4, 4) == 0
+        && compare_tree_int (@c8, 8) == 0
+        && compare_tree_int (@c16, 16) == 0
+        && compare_tree_int (@c32, 32) == 0)))
+ 
  /* Floatint point/integer comparison and integer->integer
     or floating point -> float point conversion.  */
  (match (cond_expr_convert_p @0 @2 @3 @6)
diff -Nrcpad gcc-16-20250601/gcc/omp-builtins.def gcc-16-20250608/gcc/omp-builtins.def
*** gcc-16-20250601/gcc/omp-builtins.def	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/omp-builtins.def	Sun Jun  8 22:32:17 2025
*************** DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_S
*** 71,77 ****
  
  DEF_GOMP_BUILTIN_COMPILER (BUILT_IN_OMP_IS_INITIAL_DEVICE,
  			   "omp_is_initial_device", BT_FN_INT,
! 			   ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
  		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
--- 71,82 ----
  
  DEF_GOMP_BUILTIN_COMPILER (BUILT_IN_OMP_IS_INITIAL_DEVICE,
  			   "omp_is_initial_device", BT_FN_INT,
! 			   ATTR_CONST_NOTHROW_LIST)
! DEF_GOMP_BUILTIN_COMPILER (BUILT_IN_OMP_GET_INITIAL_DEVICE,
! 			   "omp_get_initial_device", BT_FN_INT,
! 			   ATTR_PURE_NOTHROW_LIST)
! DEF_GOMP_BUILTIN_COMPILER (BUILT_IN_OMP_GET_NUM_DEVICES, "omp_get_num_devices",
! 			   BT_FN_INT, ATTR_PURE_NOTHROW_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
  		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
*************** DEF_GOMP_BUILTIN (BUILT_IN_OMP_SET_DEFAU
*** 88,95 ****
  		  BT_FN_INT, ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_INTEROP_INT, "omp_get_interop_int",
  		  BT_FN_PTRMODE_PTR_INT_PTR, ATTR_NOTHROW_LEAF_LIST)
- DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_DEVICES, "omp_get_num_devices",
- 		  BT_FN_INT, ATTR_NOTHROW_LEAF_LIST)
  
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start",
  		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
--- 93,98 ----
diff -Nrcpad gcc-16-20250601/gcc/omp-general.cc gcc-16-20250608/gcc/omp-general.cc
*** gcc-16-20250601/gcc/omp-general.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/omp-general.cc	Sun Jun  8 22:32:17 2025
*************** omp_selector_is_dynamic (tree ctx)
*** 2659,2668 ****
  static tree
  omp_device_num_check (tree *device_num, bool *is_host)
  {
    /* First check for some constant values we can treat specially.  */
!   if (tree_fits_shwi_p (*device_num))
      {
!       HOST_WIDE_INT num = tree_to_shwi (*device_num);
        if (num < -1)
  	return integer_zero_node;
        /* Initial device?  */
--- 2659,2674 ----
  static tree
  omp_device_num_check (tree *device_num, bool *is_host)
  {
+   /* C++ may wrap the device_num expr in a CLEANUP_POINT_EXPR; we want
+      to look inside of it for the special cases.  */
+   tree t = *device_num;
+   if (TREE_CODE (t) == CLEANUP_POINT_EXPR)
+     t = TREE_OPERAND (t, 0);
+ 
    /* First check for some constant values we can treat specially.  */
!   if (tree_fits_shwi_p (t))
      {
!       HOST_WIDE_INT num = tree_to_shwi (t);
        if (num < -1)
  	return integer_zero_node;
        /* Initial device?  */
*************** omp_device_num_check (tree *device_num,
*** 2681,2689 ****
  
    /* Also test for direct calls to OpenMP routines that return valid
       device numbers.  */
!   if (TREE_CODE (*device_num) == CALL_EXPR)
      {
!       tree fndecl = get_callee_fndecl (*device_num);
        if (fndecl && omp_runtime_api_call (fndecl))
  	{
  	  const char *fnname = IDENTIFIER_POINTER (DECL_NAME (fndecl));
--- 2687,2695 ----
  
    /* Also test for direct calls to OpenMP routines that return valid
       device numbers.  */
!   if (TREE_CODE (t) == CALL_EXPR)
      {
!       tree fndecl = get_callee_fndecl (t);
        if (fndecl && omp_runtime_api_call (fndecl))
  	{
  	  const char *fnname = IDENTIFIER_POINTER (DECL_NAME (fndecl));
diff -Nrcpad gcc-16-20250601/gcc/pass_manager.h gcc-16-20250608/gcc/pass_manager.h
*** gcc-16-20250601/gcc/pass_manager.h	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/pass_manager.h	Sun Jun  8 22:32:17 2025
*************** public:
*** 74,79 ****
--- 74,80 ----
    }
    opt_pass *get_pass_peephole2 () const { return m_pass_peephole2_1; }
    opt_pass *get_pass_profile () const { return m_pass_profile_1; }
+   opt_pass *get_pass_auto_profile () const { return m_pass_ipa_auto_profile_1; }
  
    void register_pass_name (opt_pass *pass, const char *name);
  
diff -Nrcpad gcc-16-20250601/gcc/profile-count.cc gcc-16-20250608/gcc/profile-count.cc
*** gcc-16-20250601/gcc/profile-count.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/profile-count.cc	Sun Jun  8 22:32:18 2025
*************** profile_count::to_sreal_scale (profile_c
*** 344,349 ****
--- 344,353 ----
      return 1;
    if (!in.m_val)
      return m_val * 4;
+   /* Auto-FDO 0 really just means that we have no samples.
+      Treat it as small non-zero frequency.  */
+   if (!m_val && quality () == AFDO)
+     return (sreal)1 / (sreal)in.m_val;
    return (sreal)m_val / (sreal)in.m_val;
  }
  
*************** profile_count::combine_with_ipa_count (p
*** 398,404 ****
    return this->global0adjusted ();
  }
  
! /* Sae as profile_count::combine_with_ipa_count but within function with count
     IPA2.  */
  profile_count
  profile_count::combine_with_ipa_count_within (profile_count ipa,
--- 402,408 ----
    return this->global0adjusted ();
  }
  
! /* Same as profile_count::combine_with_ipa_count but within function with count
     IPA2.  */
  profile_count
  profile_count::combine_with_ipa_count_within (profile_count ipa,
*************** profile_count::combine_with_ipa_count_wi
*** 410,416 ****
    if (ipa2.ipa () == ipa2 && ipa.initialized_p ())
      ret = ipa;
    else
!     ret = combine_with_ipa_count (ipa);
    gcc_checking_assert (ret.compatible_p (ipa2));
    return ret;
  }
--- 414,429 ----
    if (ipa2.ipa () == ipa2 && ipa.initialized_p ())
      ret = ipa;
    else
!     {
!       /* For inconsistent profiles we may end up having ipa2 of GLOBAL0
! 	 while ipa is non-zero (i.e. non-zero IPA counters within function
! 	 executed 0 times).  Be sure we produce GLOBAL0 as well
! 	 so counters remain compatible.  */
!       if (ipa.nonzero_p ()
! 	  && ipa2.ipa ().initialized_p ())
! 	ipa = ipa2.ipa ();
!       ret = combine_with_ipa_count (ipa);
!     }
    gcc_checking_assert (ret.compatible_p (ipa2));
    return ret;
  }
diff -Nrcpad gcc-16-20250601/gcc/range-op-float.cc gcc-16-20250608/gcc/range-op-float.cc
*** gcc-16-20250601/gcc/range-op-float.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/range-op-float.cc	Sun Jun  8 22:32:18 2025
*************** along with GCC; see the file COPYING3.
*** 51,58 ****
  
  bool
  range_operator::fold_range (frange &r, tree type,
! 				  const frange &op1, const frange &op2,
! 				  relation_trio trio) const
  {
    if (empty_range_varying (r, type, op1, op2))
      return true;
--- 51,58 ----
  
  bool
  range_operator::fold_range (frange &r, tree type,
! 			    const frange &op1, const frange &op2,
! 			    relation_trio trio) const
  {
    if (empty_range_varying (r, type, op1, op2))
      return true;
*************** range_operator::rv_fold (frange &r, tree
*** 112,131 ****
  
  bool
  range_operator::fold_range (irange &r ATTRIBUTE_UNUSED,
! 				  tree type ATTRIBUTE_UNUSED,
! 				  const frange &lh ATTRIBUTE_UNUSED,
! 				  const irange &rh ATTRIBUTE_UNUSED,
! 				  relation_trio) const
  {
    return false;
  }
  
  bool
  range_operator::fold_range (irange &r ATTRIBUTE_UNUSED,
! 				  tree type ATTRIBUTE_UNUSED,
! 				  const frange &lh ATTRIBUTE_UNUSED,
! 				  const frange &rh ATTRIBUTE_UNUSED,
! 				  relation_trio) const
  {
    return false;
  }
--- 112,131 ----
  
  bool
  range_operator::fold_range (irange &r ATTRIBUTE_UNUSED,
! 			    tree type ATTRIBUTE_UNUSED,
! 			    const frange &lh ATTRIBUTE_UNUSED,
! 			    const irange &rh ATTRIBUTE_UNUSED,
! 			    relation_trio) const
  {
    return false;
  }
  
  bool
  range_operator::fold_range (irange &r ATTRIBUTE_UNUSED,
! 			    tree type ATTRIBUTE_UNUSED,
! 			    const frange &lh ATTRIBUTE_UNUSED,
! 			    const frange &rh ATTRIBUTE_UNUSED,
! 			    relation_trio) const
  {
    return false;
  }
*************** range_operator::fold_range (frange &r AT
*** 142,151 ****
  
  bool
  range_operator::op1_range (frange &r ATTRIBUTE_UNUSED,
! 				 tree type ATTRIBUTE_UNUSED,
! 				 const frange &lhs ATTRIBUTE_UNUSED,
! 				 const frange &op2 ATTRIBUTE_UNUSED,
! 				 relation_trio) const
  {
    return false;
  }
--- 142,151 ----
  
  bool
  range_operator::op1_range (frange &r ATTRIBUTE_UNUSED,
! 			   tree type ATTRIBUTE_UNUSED,
! 			   const frange &lhs ATTRIBUTE_UNUSED,
! 			   const frange &op2 ATTRIBUTE_UNUSED,
! 			   relation_trio) const
  {
    return false;
  }
*************** range_operator::op1_range (frange &r ATT
*** 162,217 ****
  
  bool
  range_operator::op2_range (frange &r ATTRIBUTE_UNUSED,
! 				 tree type ATTRIBUTE_UNUSED,
! 				 const frange &lhs ATTRIBUTE_UNUSED,
! 				 const frange &op1 ATTRIBUTE_UNUSED,
! 				 relation_trio) const
  {
    return false;
  }
  
  bool
  range_operator::op2_range (frange &r ATTRIBUTE_UNUSED,
! 				 tree type ATTRIBUTE_UNUSED,
! 				 const irange &lhs ATTRIBUTE_UNUSED,
! 				 const frange &op1 ATTRIBUTE_UNUSED,
! 				 relation_trio) const
  {
    return false;
  }
  
  relation_kind
  range_operator::lhs_op1_relation (const frange &lhs ATTRIBUTE_UNUSED,
! 					const frange &op1 ATTRIBUTE_UNUSED,
! 					const frange &op2 ATTRIBUTE_UNUSED,
! 					relation_kind) const
  {
    return VREL_VARYING;
  }
  
  relation_kind
  range_operator::lhs_op1_relation (const irange &lhs ATTRIBUTE_UNUSED,
! 					const frange &op1 ATTRIBUTE_UNUSED,
! 					const frange &op2 ATTRIBUTE_UNUSED,
! 					relation_kind) const
  {
    return VREL_VARYING;
  }
  
  relation_kind
  range_operator::lhs_op2_relation (const irange &lhs ATTRIBUTE_UNUSED,
! 					const frange &op1 ATTRIBUTE_UNUSED,
! 					const frange &op2 ATTRIBUTE_UNUSED,
! 					relation_kind) const
  {
    return VREL_VARYING;
  }
  
  relation_kind
  range_operator::lhs_op2_relation (const frange &lhs ATTRIBUTE_UNUSED,
! 					const frange &op1 ATTRIBUTE_UNUSED,
! 					const frange &op2 ATTRIBUTE_UNUSED,
! 					relation_kind) const
  {
    return VREL_VARYING;
  }
--- 162,217 ----
  
  bool
  range_operator::op2_range (frange &r ATTRIBUTE_UNUSED,
! 			   tree type ATTRIBUTE_UNUSED,
! 			   const frange &lhs ATTRIBUTE_UNUSED,
! 			   const frange &op1 ATTRIBUTE_UNUSED,
! 			   relation_trio) const
  {
    return false;
  }
  
  bool
  range_operator::op2_range (frange &r ATTRIBUTE_UNUSED,
! 			   tree type ATTRIBUTE_UNUSED,
! 			   const irange &lhs ATTRIBUTE_UNUSED,
! 			   const frange &op1 ATTRIBUTE_UNUSED,
! 			   relation_trio) const
  {
    return false;
  }
  
  relation_kind
  range_operator::lhs_op1_relation (const frange &lhs ATTRIBUTE_UNUSED,
! 				  const frange &op1 ATTRIBUTE_UNUSED,
! 				  const frange &op2 ATTRIBUTE_UNUSED,
! 				  relation_kind) const
  {
    return VREL_VARYING;
  }
  
  relation_kind
  range_operator::lhs_op1_relation (const irange &lhs ATTRIBUTE_UNUSED,
! 				  const frange &op1 ATTRIBUTE_UNUSED,
! 				  const frange &op2 ATTRIBUTE_UNUSED,
! 				  relation_kind) const
  {
    return VREL_VARYING;
  }
  
  relation_kind
  range_operator::lhs_op2_relation (const irange &lhs ATTRIBUTE_UNUSED,
! 				  const frange &op1 ATTRIBUTE_UNUSED,
! 				  const frange &op2 ATTRIBUTE_UNUSED,
! 				  relation_kind) const
  {
    return VREL_VARYING;
  }
  
  relation_kind
  range_operator::lhs_op2_relation (const frange &lhs ATTRIBUTE_UNUSED,
! 				  const frange &op1 ATTRIBUTE_UNUSED,
! 				  const frange &op2 ATTRIBUTE_UNUSED,
! 				  relation_kind) const
  {
    return VREL_VARYING;
  }
*************** operator_equal::fold_range (irange &r, t
*** 675,683 ****
  
  bool
  operator_equal::op1_range (frange &r, tree type,
! 			    const irange &lhs,
! 			    const frange &op2,
! 			    relation_trio trio) const
  {
    relation_kind rel = trio.op1_op2 ();
    switch (get_bool_state (r, lhs, type))
--- 675,683 ----
  
  bool
  operator_equal::op1_range (frange &r, tree type,
! 			   const irange &lhs,
! 			   const frange &op2,
! 			   relation_trio trio) const
  {
    relation_kind rel = trio.op1_op2 ();
    switch (get_bool_state (r, lhs, type))
*************** public:
*** 1871,1880 ****
  
  bool
  foperator_unordered_gt::op1_range (frange &r,
! 			 tree type,
! 			 const irange &lhs,
! 			 const frange &op2,
! 			 relation_trio) const
  {
    switch (get_bool_state (r, lhs, type))
      {
--- 1871,1880 ----
  
  bool
  foperator_unordered_gt::op1_range (frange &r,
! 				   tree type,
! 				   const irange &lhs,
! 				   const frange &op2,
! 				   relation_trio) const
  {
    switch (get_bool_state (r, lhs, type))
      {
*************** private:
*** 2899,2934 ****
    }
  } fop_div;
  
  // Implement fold for a cast from float to an int.
  bool
! operator_cast::fold_range (irange &, tree, const frange &,
  			   const irange &, relation_trio) const
  {
!   return false;
  }
  
  // Implement op1_range for a cast from float to an int.
  bool
! operator_cast::op1_range (frange &, tree, const irange &,
! 			  const irange &, relation_trio) const
  {
!   return false;
  }
  
  // Implement fold for a cast from int to a float.
  bool
! operator_cast::fold_range (frange &, tree, const irange &,
  			   const frange &, relation_trio) const
  {
!   return false;
  }
  
  // Implement op1_range for a cast from int to a float.
  bool
! operator_cast::op1_range (irange &, tree, const frange &,
! 			  const frange &, relation_trio) const
  {
!   return false;
  }
  
  // Initialize any float operators to the primary table
--- 2899,3194 ----
    }
  } fop_div;
  
+ bool
+ operator_cast::fold_range (frange &r, tree type, const frange &op1,
+ 			   const frange &, relation_trio) const
+ {
+   REAL_VALUE_TYPE lb, ub;
+   enum machine_mode mode = TYPE_MODE (type);
+   bool mode_composite = MODE_COMPOSITE_P (mode);
+ 
+   if (empty_range_varying (r, type, op1, op1))
+     return true;
+   if (!MODE_HAS_NANS (mode) && op1.maybe_isnan ())
+     {
+       r.set_varying (type);
+       return true;
+     }
+   if (op1.known_isnan ())
+     {
+       r.set_nan (type);
+       return true;
+     }
+ 
+   const REAL_VALUE_TYPE &lh_lb = op1.lower_bound ();
+   const REAL_VALUE_TYPE &lh_ub = op1.upper_bound ();
+   real_convert (&lb, mode, &lh_lb);
+   real_convert (&ub, mode, &lh_ub);
+ 
+   if (flag_rounding_math)
+     {
+       if (real_less (&lh_lb, &lb))
+ 	{
+ 	  if (mode_composite
+ 	      && (real_isdenormal (&lb, mode) || real_iszero (&lb)))
+ 	    {
+ 	      // IBM extended denormals only have DFmode precision.
+ 	      REAL_VALUE_TYPE tmp, tmp2;
+ 	      real_convert (&tmp2, DFmode, &lh_lb);
+ 	      real_nextafter (&tmp, REAL_MODE_FORMAT (DFmode), &tmp2,
+ 			      &dconstninf);
+ 	      real_convert (&lb, mode, &tmp);
+ 	    }
+ 	  else
+ 	    frange_nextafter (mode, lb, dconstninf);
+ 	}
+       if (real_less (&ub, &lh_ub))
+ 	{
+ 	  if (mode_composite
+ 	      && (real_isdenormal (&ub, mode) || real_iszero (&ub)))
+ 	    {
+ 	      // IBM extended denormals only have DFmode precision.
+ 	      REAL_VALUE_TYPE tmp, tmp2;
+ 	      real_convert (&tmp2, DFmode, &lh_ub);
+ 	      real_nextafter (&tmp, REAL_MODE_FORMAT (DFmode), &tmp2,
+ 			      &dconstinf);
+ 	      real_convert (&ub, mode, &tmp);
+ 	    }
+ 	  else
+ 	    frange_nextafter (mode, ub, dconstinf);
+ 	}
+     }
+ 
+   r.set (type, lb, ub, op1.get_nan_state ());
+ 
+   if (flag_trapping_math
+       && MODE_HAS_INFINITIES (TYPE_MODE (type))
+       && r.known_isinf ()
+       && !op1.known_isinf ())
+     {
+       REAL_VALUE_TYPE inf = r.lower_bound ();
+       if (real_isneg (&inf))
+ 	{
+ 	  REAL_VALUE_TYPE min = real_min_representable (type);
+ 	  r.set (type, inf, min);
+ 	}
+       else
+ 	{
+ 	  REAL_VALUE_TYPE max = real_max_representable (type);
+ 	  r.set (type, max, inf);
+ 	}
+     }
+ 
+   r.flush_denormals_to_zero ();
+   return true;
+ }
+ 
+ // Implement fold for a cast from float to another float.
+ bool
+ operator_cast::op1_range (frange &r, tree type, const frange &lhs,
+ 			  const frange &op2, relation_trio) const
+ {
+   if (lhs.undefined_p ())
+     return false;
+   tree lhs_type = lhs.type ();
+   enum machine_mode mode = TYPE_MODE (type);
+   enum machine_mode lhs_mode = TYPE_MODE (lhs_type);
+   frange wlhs;
+   bool rm;
+   if (REAL_MODE_FORMAT (mode)->ieee_bits
+       && REAL_MODE_FORMAT (lhs_mode)->ieee_bits
+       && (REAL_MODE_FORMAT (lhs_mode)->ieee_bits
+ 	  >= REAL_MODE_FORMAT (mode)->ieee_bits)
+       && pow2p_hwi (REAL_MODE_FORMAT (mode)->ieee_bits))
+     {
+       /* If the cast is widening from IEEE exchange mode to
+ 	 wider exchange mode or extended mode, no need to extend
+ 	 the range on reverse operation.  */
+       rm = false;
+       wlhs = lhs;
+     }
+   else
+     {
+       rm = true;
+       wlhs = float_widen_lhs_range (lhs_type, lhs);
+     }
+   auto save_flag_rounding_math = flag_rounding_math;
+   flag_rounding_math = rm;
+   bool ret = float_binary_op_range_finish (fold_range (r, type, wlhs, op2),
+ 					   r, type, lhs);
+   flag_rounding_math = save_flag_rounding_math;
+   return ret;
+ }
+ 
  // Implement fold for a cast from float to an int.
  bool
! operator_cast::fold_range (irange &r, tree type, const frange &op1,
  			   const irange &, relation_trio) const
  {
!   if (empty_range_varying (r, type, op1, op1))
!     return true;
!   if (op1.maybe_isnan () || op1.maybe_isinf ())
!     {
!       r.set_varying (type);
!       return true;
!     }
!   REAL_VALUE_TYPE lb, ub;
!   real_trunc (&lb, VOIDmode, &op1.lower_bound ());
!   real_trunc (&ub, VOIDmode, &op1.upper_bound ());
!   REAL_VALUE_TYPE l, u;
!   l = real_value_from_int_cst (NULL_TREE, TYPE_MIN_VALUE (type));
!   if (real_less (&lb, &l))
!     {
!       r.set_varying (type);
!       return true;
!     }
!   u = real_value_from_int_cst (NULL_TREE, TYPE_MAX_VALUE (type));
!   if (real_less (&u, &ub))
!     {
!       r.set_varying (type);
!       return true;
!     }
!   bool fail = false;
!   wide_int wlb = real_to_integer (&lb, &fail, TYPE_PRECISION (type));
!   wide_int wub = real_to_integer (&ub, &fail, TYPE_PRECISION (type));
!   if (fail)
!     {
!       r.set_varying (type);
!       return true;
!     }
!   r.set (type, wlb, wub);
!   return true;
  }
  
  // Implement op1_range for a cast from float to an int.
  bool
! operator_cast::op1_range (frange &r, tree type, const irange &lhs,
! 			  const frange &, relation_trio) const
  {
!   if (lhs.undefined_p ())
!     return false;
!   REAL_VALUE_TYPE lb, lbo, ub, ubo;
!   wide_int lhs_lb = lhs.lower_bound ();
!   wide_int lhs_ub = lhs.upper_bound ();
!   tree lhs_type = lhs.type ();
!   enum machine_mode mode = TYPE_MODE (type);
!   real_from_integer (&lbo, VOIDmode, lhs_lb, TYPE_SIGN (lhs_type));
!   real_from_integer (&ubo, VOIDmode, lhs_ub, TYPE_SIGN (lhs_type));
!   real_convert (&lb, mode, &lbo);
!   real_convert (&ub, mode, &ubo);
!   if (real_identical (&lb, &lbo))
!     {
!       /* If low bound is exactly representable in type,
! 	 use nextafter (lb - 1., +inf).  */
!       real_arithmetic (&lb, PLUS_EXPR, &lbo, &dconstm1);
!       real_convert (&lb, mode, &lb);
!       if (!real_identical (&lb, &lbo))
! 	frange_nextafter (mode, lb, dconstinf);
!       if (real_identical (&lb, &lbo))
! 	frange_nextafter (mode, lb, dconstninf);
!     }
!   else if (real_less (&lbo, &lb))
!     frange_nextafter (mode, lb, dconstninf);
!   if (real_identical (&ub, &ubo))
!     {
!       /* If upper bound is exactly representable in type,
! 	 use nextafter (ub + 1., -inf).  */
!       real_arithmetic (&ub, PLUS_EXPR, &ubo, &dconst1);
!       real_convert (&ub, mode, &ub);
!       if (!real_identical (&ub, &ubo))
! 	frange_nextafter (mode, ub, dconstninf);
!       if (real_identical (&ub, &ubo))
! 	frange_nextafter (mode, ub, dconstinf);
!     }
!   else if (real_less (&ub, &ubo))
!     frange_nextafter (mode, ub, dconstinf);
!   r.set (type, lb, ub, nan_state (false));
!   return true;
  }
  
  // Implement fold for a cast from int to a float.
  bool
! operator_cast::fold_range (frange &r, tree type, const irange &op1,
  			   const frange &, relation_trio) const
  {
!   if (empty_range_varying (r, type, op1, op1))
!     return true;
!   REAL_VALUE_TYPE lb, ub;
!   wide_int op1_lb = op1.lower_bound ();
!   wide_int op1_ub = op1.upper_bound ();
!   tree op1_type = op1.type ();
!   enum machine_mode mode = flag_rounding_math ? VOIDmode : TYPE_MODE (type);
!   real_from_integer (&lb, mode, op1_lb, TYPE_SIGN (op1_type));
!   real_from_integer (&ub, mode, op1_ub, TYPE_SIGN (op1_type));
!   if (flag_rounding_math)
!     {
!       REAL_VALUE_TYPE lbo = lb, ubo = ub;
!       mode = TYPE_MODE (type);
!       real_convert (&lb, mode, &lb);
!       real_convert (&ub, mode, &ub);
!       if (real_less (&lbo, &lb))
! 	frange_nextafter (mode, lb, dconstninf);
!       if (real_less (&ub, &ubo))
! 	frange_nextafter (mode, ub, dconstinf);
!     }
!   r.set (type, lb, ub, nan_state (false));
!   frange_drop_infs (r, type);
!   if (r.undefined_p ())
!     r.set_varying (type);
!   return true;
  }
  
  // Implement op1_range for a cast from int to a float.
  bool
! operator_cast::op1_range (irange &r, tree type, const frange &lhs,
! 			  const irange &, relation_trio) const
  {
!   if (lhs.undefined_p ())
!     return false;
!   if (lhs.known_isnan ())
!     {
!       r.set_varying (type);
!       return true;
!     }
!   REAL_VALUE_TYPE lb = lhs.lower_bound ();
!   REAL_VALUE_TYPE ub = lhs.upper_bound ();
!   enum machine_mode mode = TYPE_MODE (lhs.type ());
!   frange_nextafter (mode, lb, dconstninf);
!   frange_nextafter (mode, ub, dconstinf);
!   if (flag_rounding_math)
!     {
!       real_floor (&lb, mode, &lb);
!       real_ceil (&ub, mode, &ub);
!     }
!   else
!     {
!       real_trunc (&lb, mode, &lb);
!       real_trunc (&ub, mode, &ub);
!     }
!   REAL_VALUE_TYPE l, u;
!   wide_int wlb, wub;
!   l = real_value_from_int_cst (NULL_TREE, TYPE_MIN_VALUE (type));
!   if (real_less (&lb, &l))
!     wlb = wi::min_value (TYPE_PRECISION (type), TYPE_SIGN (type));
!   else
!     {
!       bool fail = false;
!       wlb = real_to_integer (&lb, &fail, TYPE_PRECISION (type));
!       if (fail)
! 	wlb = wi::min_value (TYPE_PRECISION (type), TYPE_SIGN (type));
!     }
!   u = real_value_from_int_cst (NULL_TREE, TYPE_MAX_VALUE (type));
!   if (real_less (&u, &ub))
!     wub = wi::max_value (TYPE_PRECISION (type), TYPE_SIGN (type));
!   else
!     {
!       bool fail = false;
!       wub = real_to_integer (&ub, &fail, TYPE_PRECISION (type));
!       if (fail)
! 	wub = wi::max_value (TYPE_PRECISION (type), TYPE_SIGN (type));
!     }
!   r.set (type, wlb, wub);
!   return true;
  }
  
  // Initialize any float operators to the primary table
diff -Nrcpad gcc-16-20250601/gcc/range-op-mixed.h gcc-16-20250608/gcc/range-op-mixed.h
*** gcc-16-20250601/gcc/range-op-mixed.h	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/range-op-mixed.h	Sun Jun  8 22:32:18 2025
*************** public:
*** 473,486 ****
    bool fold_range (prange &r, tree type,
  		   const irange &op1, const prange &op2,
  		   relation_trio rel = TRIO_VARYING) const final override;
    bool fold_range (irange &r, tree type,
! 		   const frange &lh,
! 		   const irange &rh,
! 		   relation_trio = TRIO_VARYING) const;
    bool fold_range (frange &r, tree type,
! 		   const irange &lh,
! 		   const frange &rh,
! 		   relation_trio = TRIO_VARYING) const;
  
    bool op1_range (irange &r, tree type,
  		  const irange &lhs, const irange &op2,
--- 473,487 ----
    bool fold_range (prange &r, tree type,
  		   const irange &op1, const prange &op2,
  		   relation_trio rel = TRIO_VARYING) const final override;
+   bool fold_range (frange &r, tree type,
+ 		   const frange &op1, const frange &op2,
+ 		   relation_trio = TRIO_VARYING) const final override;
    bool fold_range (irange &r, tree type,
! 		   const frange &op1, const irange &op2,
! 		   relation_trio = TRIO_VARYING) const final override;
    bool fold_range (frange &r, tree type,
! 		   const irange &op1, const frange &op2,
! 		   relation_trio = TRIO_VARYING) const final override;
  
    bool op1_range (irange &r, tree type,
  		  const irange &lhs, const irange &op2,
*************** public:
*** 495,507 ****
  		  const irange &lhs, const prange &op2,
  		  relation_trio rel = TRIO_VARYING) const final override;
    bool op1_range (frange &r, tree type,
! 		  const irange &lhs,
! 		  const irange &op2,
! 		  relation_trio = TRIO_VARYING) const;
    bool op1_range (irange &r, tree type,
! 		  const frange &lhs,
! 		  const frange &op2,
! 		  relation_trio = TRIO_VARYING) const;
  
    relation_kind lhs_op1_relation (const irange &lhs,
  				  const irange &op1, const irange &op2,
--- 496,509 ----
  		  const irange &lhs, const prange &op2,
  		  relation_trio rel = TRIO_VARYING) const final override;
    bool op1_range (frange &r, tree type,
! 		  const frange &lhs, const frange &op2,
! 		  relation_trio = TRIO_VARYING) const final override;
!   bool op1_range (frange &r, tree type,
! 		  const irange &lhs, const frange &op2,
! 		  relation_trio = TRIO_VARYING) const final override;
    bool op1_range (irange &r, tree type,
! 		  const frange &lhs, const irange &op2,
! 		  relation_trio = TRIO_VARYING) const final override;
  
    relation_kind lhs_op1_relation (const irange &lhs,
  				  const irange &op1, const irange &op2,
diff -Nrcpad gcc-16-20250601/gcc/range-op.cc gcc-16-20250608/gcc/range-op.cc
*** gcc-16-20250601/gcc/range-op.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/range-op.cc	Sun Jun  8 22:32:18 2025
*************** range_op_table::range_op_table ()
*** 97,102 ****
--- 97,104 ----
    set (INTEGER_CST, op_cst);
    set (NOP_EXPR, op_cast);
    set (CONVERT_EXPR, op_cast);
+   set (FLOAT_EXPR, op_cast);
+   set (FIX_TRUNC_EXPR, op_cast);
    set (PLUS_EXPR, op_plus);
    set (ABS_EXPR, op_abs);
    set (MINUS_EXPR, op_minus);
*************** dispatch_trio (unsigned lhs, unsigned op
*** 165,171 ****
  // of the routines in range_operator.  Note the last 3 characters are
  // shorthand for the LHS, OP1, and OP2 range discriminator class.
  // Reminder, single operand instructions use the LHS type for op2, even if
! // unused. so FLOAT = INT would be RO_FIF.
  
  const unsigned RO_III =	dispatch_trio (VR_IRANGE, VR_IRANGE, VR_IRANGE);
  const unsigned RO_IFI = dispatch_trio (VR_IRANGE, VR_FRANGE, VR_IRANGE);
--- 167,173 ----
  // of the routines in range_operator.  Note the last 3 characters are
  // shorthand for the LHS, OP1, and OP2 range discriminator class.
  // Reminder, single operand instructions use the LHS type for op2, even if
! // unused.  So FLOAT = INT would be RO_FIF.
  
  const unsigned RO_III =	dispatch_trio (VR_IRANGE, VR_IRANGE, VR_IRANGE);
  const unsigned RO_IFI = dispatch_trio (VR_IRANGE, VR_FRANGE, VR_IRANGE);
*************** range_op_handler::op1_range (vrange &r,
*** 298,307 ****
  	return m_operator->op1_range (as_a <irange> (r), type,
  				      as_a <irange> (lhs),
  				      as_a <irange> (op2), rel);
!       case RO_IFF:
  	return m_operator->op1_range (as_a <irange> (r), type,
  				      as_a <frange> (lhs),
! 				      as_a <frange> (op2), rel);
        case RO_PPP:
  	return m_operator->op1_range (as_a <prange> (r), type,
  				      as_a <prange> (lhs),
--- 300,309 ----
  	return m_operator->op1_range (as_a <irange> (r), type,
  				      as_a <irange> (lhs),
  				      as_a <irange> (op2), rel);
!       case RO_IFI:
  	return m_operator->op1_range (as_a <irange> (r), type,
  				      as_a <frange> (lhs),
! 				      as_a <irange> (op2), rel);
        case RO_PPP:
  	return m_operator->op1_range (as_a <prange> (r), type,
  				      as_a <prange> (lhs),
*************** range_op_handler::op1_range (vrange &r,
*** 322,331 ****
  	return m_operator->op1_range (as_a <frange> (r), type,
  				      as_a <irange> (lhs),
  				      as_a <frange> (op2), rel);
-       case RO_FII:
- 	return m_operator->op1_range (as_a <frange> (r), type,
- 				      as_a <irange> (lhs),
- 				      as_a <irange> (op2), rel);
        case RO_FFF:
  	return m_operator->op1_range (as_a <frange> (r), type,
  				      as_a <frange> (lhs),
--- 324,329 ----
*************** range_operator::fold_range (irange &r, t
*** 778,798 ****
  
  bool
  range_operator::fold_range (frange &, tree, const irange &,
! 			   const frange &, relation_trio) const
  {
    return false;
  }
  
  bool
  range_operator::op1_range (irange &, tree, const frange &,
! 			  const frange &, relation_trio) const
! {
!   return false;
! }
! 
! bool
! range_operator::op1_range (frange &, tree, const irange &,
! 			  const irange &, relation_trio) const
  {
    return false;
  }
--- 776,789 ----
  
  bool
  range_operator::fold_range (frange &, tree, const irange &,
! 			    const frange &, relation_trio) const
  {
    return false;
  }
  
  bool
  range_operator::op1_range (irange &, tree, const frange &,
! 			   const irange &, relation_trio) const
  {
    return false;
  }
*************** range_operator::op1_op2_relation (const
*** 855,864 ****
  
  bool
  range_operator::op1_op2_relation_effect (irange &lhs_range ATTRIBUTE_UNUSED,
! 				       tree type ATTRIBUTE_UNUSED,
! 				       const irange &op1_range ATTRIBUTE_UNUSED,
! 				       const irange &op2_range ATTRIBUTE_UNUSED,
! 				       relation_kind rel ATTRIBUTE_UNUSED) const
  {
    return false;
  }
--- 846,858 ----
  
  bool
  range_operator::op1_op2_relation_effect (irange &lhs_range ATTRIBUTE_UNUSED,
! 					 tree type ATTRIBUTE_UNUSED,
! 					 const irange &op1_range
! 					 ATTRIBUTE_UNUSED,
! 					 const irange &op2_range
! 					 ATTRIBUTE_UNUSED,
! 					 relation_kind rel
! 					 ATTRIBUTE_UNUSED) const
  {
    return false;
  }
*************** range_operator::overflow_free_p (const i
*** 874,880 ****
  
  void
  range_operator::update_bitmask (irange &, const irange &,
! 				       const irange &) const
  {
  }
  
--- 868,874 ----
  
  void
  range_operator::update_bitmask (irange &, const irange &,
! 				const irange &) const
  {
  }
  
*************** operator_plus::wi_fold (irange &r, tree
*** 1815,1821 ****
  
  static relation_kind
  plus_minus_ranges (irange &r_ov, irange &r_normal, const irange &offset,
! 		bool add_p)
  {
    relation_kind kind = VREL_VARYING;
    // For now, only deal with constant adds.  This could be extended to ranges
--- 1809,1815 ----
  
  static relation_kind
  plus_minus_ranges (irange &r_ov, irange &r_normal, const irange &offset,
! 		   bool add_p)
  {
    relation_kind kind = VREL_VARYING;
    // For now, only deal with constant adds.  This could be extended to ranges
*************** wi_optimize_signed_bitwise_op (irange &r
*** 3349,3357 ****
  
  relation_kind
  operator_bitwise_and::lhs_op1_relation (const irange &lhs,
! 				 const irange &op1,
! 				 const irange &op2,
! 				 relation_kind) const
  {
    if (lhs.undefined_p () || op1.undefined_p () || op2.undefined_p ())
      return VREL_VARYING;
--- 3343,3351 ----
  
  relation_kind
  operator_bitwise_and::lhs_op1_relation (const irange &lhs,
! 					const irange &op1,
! 					const irange &op2,
! 					relation_kind) const
  {
    if (lhs.undefined_p () || op1.undefined_p () || op2.undefined_p ())
      return VREL_VARYING;
diff -Nrcpad gcc-16-20250601/gcc/range-op.h gcc-16-20250608/gcc/range-op.h
*** gcc-16-20250601/gcc/range-op.h	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/range-op.h	Sun Jun  8 22:32:18 2025
*************** public:
*** 152,161 ****
  			  relation_trio = TRIO_VARYING) const;
    virtual bool op1_range (irange &r, tree type,
  			  const frange &lhs,
- 			  const frange &op2,
- 			  relation_trio = TRIO_VARYING) const;
-   virtual bool op1_range (frange &r, tree type,
- 			  const irange &lhs,
  			  const irange &op2,
  			  relation_trio = TRIO_VARYING) const;
  
--- 152,157 ----
diff -Nrcpad gcc-16-20250601/gcc/real.cc gcc-16-20250608/gcc/real.cc
*** gcc-16-20250601/gcc/real.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/real.cc	Sun Jun  8 22:32:18 2025
*************** real_from_integer (REAL_VALUE_TYPE *r, f
*** 2230,2236 ****
      {
        unsigned int len = val_in.get_precision ();
        int i, j, e = 0;
-       int maxbitlen = MAX_BITSIZE_MODE_ANY_INT + HOST_BITS_PER_WIDE_INT;
        const unsigned int realmax = (SIGNIFICAND_BITS / HOST_BITS_PER_WIDE_INT
  				    * HOST_BITS_PER_WIDE_INT);
  
--- 2230,2235 ----
*************** real_from_integer (REAL_VALUE_TYPE *r, f
*** 2238,2249 ****
        r->cl = rvc_normal;
        r->sign = wi::neg_p (val_in, sgn);
  
-       /* We have to ensure we can negate the largest negative number.  */
-       wide_int val = wide_int::from (val_in, maxbitlen, sgn);
- 
-       if (r->sign)
- 	val = -val;
- 
        /* Ensure a multiple of HOST_BITS_PER_WIDE_INT, ceiling, as elt
  	 won't work with precisions that are not a multiple of
  	 HOST_BITS_PER_WIDE_INT.  */
--- 2237,2242 ----
*************** real_from_integer (REAL_VALUE_TYPE *r, f
*** 2252,2258 ****
        /* Ensure we can represent the largest negative number.  */
        len += 1;
  
!       len = len/HOST_BITS_PER_WIDE_INT * HOST_BITS_PER_WIDE_INT;
  
        /* Cap the size to the size allowed by real.h.  */
        if (len > realmax)
--- 2245,2257 ----
        /* Ensure we can represent the largest negative number.  */
        len += 1;
  
!       len = len / HOST_BITS_PER_WIDE_INT * HOST_BITS_PER_WIDE_INT;
! 
!       /* We have to ensure we can negate the largest negative number.  */
!       wide_int val = wide_int::from (val_in, len, sgn);
! 
!       if (r->sign)
! 	val = -val;
  
        /* Cap the size to the size allowed by real.h.  */
        if (len > realmax)
*************** real_from_integer (REAL_VALUE_TYPE *r, f
*** 2260,2273 ****
  	  HOST_WIDE_INT cnt_l_z;
  	  cnt_l_z = wi::clz (val);
  
! 	  if (maxbitlen - cnt_l_z > realmax)
  	    {
! 	      e = maxbitlen - cnt_l_z - realmax;
  
  	      /* This value is too large, we must shift it right to
  		 preserve all the bits we can, and then bump the
! 		 exponent up by that amount.  */
! 	      val = wi::lrshift (val, e);
  	    }
  	  len = realmax;
  	}
--- 2259,2276 ----
  	  HOST_WIDE_INT cnt_l_z;
  	  cnt_l_z = wi::clz (val);
  
! 	  if (len - cnt_l_z > realmax)
  	    {
! 	      e = len - cnt_l_z - realmax;
  
  	      /* This value is too large, we must shift it right to
  		 preserve all the bits we can, and then bump the
! 		 exponent up by that amount, but or in 1 if any of
! 		 the shifted out bits are non-zero.  */
! 	      if (wide_int::from (val, e, UNSIGNED) != 0)
! 		val = wi::set_bit (wi::lrshift (val, e), 0);
! 	      else
! 		val = wi::lrshift (val, e);
  	    }
  	  len = realmax;
  	}
diff -Nrcpad gcc-16-20250601/gcc/rtl.h gcc-16-20250608/gcc/rtl.h
*** gcc-16-20250601/gcc/rtl.h	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/rtl.h	Sun Jun  8 22:32:18 2025
*************** is_a_helper <rtx_call_insn *>::test (rtx
*** 960,965 ****
--- 960,973 ----
  template <>
  template <>
  inline bool
+ is_a_helper <const rtx_call_insn *>::test (const rtx_insn *insn)
+ {
+   return CALL_P (insn);
+ }
+ 
+ template <>
+ template <>
+ inline bool
  is_a_helper <rtx_jump_table_data *>::test (rtx rt)
  {
    return JUMP_TABLE_DATA_P (rt);
*************** extern bool nonzero_address_p (const_rtx
*** 3682,3688 ****
  extern bool rtx_unstable_p (const_rtx);
  extern bool rtx_varies_p (const_rtx, bool);
  extern bool rtx_addr_varies_p (const_rtx, bool);
- extern rtx get_call_rtx_from (const rtx_insn *);
  extern tree get_call_fndecl (const rtx_insn *);
  extern HOST_WIDE_INT get_integer_term (const_rtx);
  extern rtx get_related_value (const_rtx);
--- 3690,3695 ----
*************** extern void simplify_using_condition (rt
*** 4572,4577 ****
--- 4579,4585 ----
  extern void compute_alignments (void);
  extern void update_alignments (vec<rtx> &);
  extern int asm_str_count (const char *templ);
+ extern rtx get_call_rtx_from (const rtx_insn *);
  
  struct rtl_hooks
  {
diff -Nrcpad gcc-16-20250601/gcc/rtlanal.cc gcc-16-20250608/gcc/rtlanal.cc
*** gcc-16-20250601/gcc/rtlanal.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/rtlanal.cc	Sun Jun  8 22:32:18 2025
*************** rtx_addr_varies_p (const_rtx x, bool for
*** 813,833 ****
    return false;
  }
  
- /* Return the CALL in X if there is one.  */
- 
- rtx
- get_call_rtx_from (const rtx_insn *insn)
- {
-   rtx x = PATTERN (insn);
-   if (GET_CODE (x) == PARALLEL)
-     x = XVECEXP (x, 0, 0);
-   if (GET_CODE (x) == SET)
-     x = SET_SRC (x);
-   if (GET_CODE (x) == CALL && MEM_P (XEXP (x, 0)))
-     return x;
-   return NULL_RTX;
- }
- 
  /* Get the declaration of the function called by INSN.  */
  
  tree
--- 813,818 ----
diff -Nrcpad gcc-16-20250601/gcc/selftest-run-tests.cc gcc-16-20250608/gcc/selftest-run-tests.cc
*** gcc-16-20250601/gcc/selftest-run-tests.cc	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/selftest-run-tests.cc	Sun Jun  8 22:32:18 2025
*************** selftest::run_tests ()
*** 80,85 ****
--- 80,86 ----
    optinfo_emit_json_cc_tests ();
    ordered_hash_map_tests_cc_tests ();
    splay_tree_cc_tests ();
+   xml_cc_tests ();
  
    /* Mid-level data structures.  */
    input_cc_tests ();
diff -Nrcpad gcc-16-20250601/gcc/selftest.h gcc-16-20250608/gcc/selftest.h
*** gcc-16-20250601/gcc/selftest.h	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/selftest.h	Sun Jun  8 22:32:18 2025
*************** extern void attribs_cc_tests ();
*** 220,225 ****
--- 220,226 ----
  extern void bitmap_cc_tests ();
  extern void cgraph_cc_tests ();
  extern void convert_cc_tests ();
+ extern void dbgcnt_cc_tests ();
  extern void diagnostic_color_cc_tests ();
  extern void diagnostic_format_html_cc_tests ();
  extern void diagnostic_format_json_cc_tests ();
*************** extern void gcc_attribute_urlifier_cc_te
*** 237,248 ****
  extern void gcc_urlifier_cc_tests ();
  extern void ggc_tests_cc_tests ();
  extern void gimple_cc_tests ();
  extern void hash_map_tests_cc_tests ();
  extern void hash_set_tests_cc_tests ();
  extern void input_cc_tests ();
  extern void json_cc_tests ();
- extern void lazy_diagnostic_path_cc_tests ();
  extern void json_parser_cc_tests ();
  extern void optinfo_emit_json_cc_tests ();
  extern void opts_cc_tests ();
  extern void opts_diagnostic_cc_tests ();
--- 238,252 ----
  extern void gcc_urlifier_cc_tests ();
  extern void ggc_tests_cc_tests ();
  extern void gimple_cc_tests ();
+ extern void gimple_range_tests ();
  extern void hash_map_tests_cc_tests ();
  extern void hash_set_tests_cc_tests ();
  extern void input_cc_tests ();
+ extern void ipa_modref_tree_cc_tests ();
  extern void json_cc_tests ();
  extern void json_parser_cc_tests ();
+ extern void lazy_diagnostic_path_cc_tests ();
+ extern void opt_suggestions_cc_tests ();
  extern void optinfo_emit_json_cc_tests ();
  extern void opts_cc_tests ();
  extern void opts_diagnostic_cc_tests ();
*************** extern void ordered_hash_map_tests_cc_te
*** 250,260 ****
  extern void path_coverage_cc_tests ();
  extern void predict_cc_tests ();
  extern void pretty_print_cc_tests ();
- extern void range_tests ();
  extern void range_op_tests ();
! extern void relation_tests ();
! extern void gimple_range_tests ();
  extern void read_rtl_function_cc_tests ();
  extern void rtl_tests_cc_tests ();
  extern void sbitmap_cc_tests ();
  extern void selftest_cc_tests ();
--- 254,263 ----
  extern void path_coverage_cc_tests ();
  extern void predict_cc_tests ();
  extern void pretty_print_cc_tests ();
  extern void range_op_tests ();
! extern void range_tests ();
  extern void read_rtl_function_cc_tests ();
+ extern void relation_tests ();
  extern void rtl_tests_cc_tests ();
  extern void sbitmap_cc_tests ();
  extern void selftest_cc_tests ();
*************** extern void typed_splay_tree_cc_tests ()
*** 273,281 ****
  extern void vec_cc_tests ();
  extern void vec_perm_indices_cc_tests ();
  extern void wide_int_cc_tests ();
! extern void opt_suggestions_cc_tests ();
! extern void dbgcnt_cc_tests ();
! extern void ipa_modref_tree_cc_tests ();
  
  extern int num_passes;
  
--- 276,282 ----
  extern void vec_cc_tests ();
  extern void vec_perm_indices_cc_tests ();
  extern void wide_int_cc_tests ();
! extern void xml_cc_tests ();
  
  extern int num_passes;
  
diff -Nrcpad gcc-16-20250601/gcc/testsuite/ChangeLog gcc-16-20250608/gcc/testsuite/ChangeLog
*** gcc-16-20250601/gcc/testsuite/ChangeLog	Sun Jun  1 22:32:15 2025
--- gcc-16-20250608/gcc/testsuite/ChangeLog	Sun Jun  8 22:32:18 2025
***************
*** 1,3 ****
--- 1,455 ----
+ 2025-06-07  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/119650
+ 	* gm2/iso/fail/CHAR.mod: New test.
+ 	* gm2/iso/run/pass/CHAR.mod: New test.
+ 	* gm2/iso/run/pass/importself.mod: New test.
+ 	* gm2/pimlib/run/pass/testwrite.mod: New test.
+ 	* gm2/pimlib/run/pass/testwritechar.mod: New test.
+ 
+ 2025-06-06  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120555
+ 	* g++.dg/cpp1z/constexpr-if39.C: New test.
+ 
+ 2025-06-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.target/arc/fma-1.c: Make "a" extern so the optimizers can
+ 	see any value and optimize away the key computation.
+ 
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* c-c++-common/gomp/omp_get_num_devices_initial_device-2.c: New test.
+ 	* c-c++-common/gomp/omp_get_num_devices_initial_device.c: New test.
+ 	* gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90: New test.
+ 	* gfortran.dg/gomp/omp_get_num_devices_initial_device.f90: New test.
+ 
+ 2025-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c: Adjust
+ 	the asm check for vdivu.
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c: Ditto.
+ 
+ 2025-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c: Add asm check
+ 	for vdivu.vx combine.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c: Ditto.
+ 
+ 2025-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c: Add asm check
+ 	for vdivu.vx combine.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h: Add test
+ 	data for run test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c: New test.
+ 
+ 2025-06-06  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/120542
+ 	* gm2/iso/fail/badreturn.mod: New test.
+ 	* gm2/iso/fail/badreturn2.mod: New test.
+ 	* gm2/iso/pass/modulereturn.mod: New test.
+ 	* gm2/iso/pass/modulereturn2.mod: New test.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/aggr7.ads: New test.
+ 
+ 2025-06-06  Jiawei  <jiawei@iscas.ac.cn>
+ 	    Jiawei Chen  <jiawei@iscas.ac.cn>
+ 	    Yangyu Chen  <cyy@cyyself.name>
+ 	    Tang Haojin  <tanghaojin@outlook.com>
+ 
+ 	* gcc.target/riscv/mcpu-xiangshan-kunminghu.c: New test.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120032
+ 	* gcc.target/i386/pr120032-3.c: New testcase.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120032
+ 	* gcc.target/i386/pr120032-1.c: New testcase.
+ 	* gcc.target/i386/pr120032-2.c: Likewise.
+ 
+ 2025-06-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.target/riscv/nozicond-3.c: New test.
+ 
+ 2025-06-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120553
+ 	* gcc.target/i386/pr120553.c: New test.
+ 
+ 2025-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* gcc.dg/tree-ssa/pr120231-2.c: New test.
+ 	* gcc.dg/tree-ssa/pr120231-3.c: New test.
+ 	* gfortran.dg/inline_matmul_16.f90: Don't expect any _gfortran_matmul
+ 	strings in optimized dump.
+ 	* gfortran.dg/inline_matmul_26.f90: New test.
+ 	* g++.dg/tree-ssa/loop-split-1.C (d): New variable.
+ 	(main): Use std::log (i + d) instead of std::log (i).
+ 
+ 2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/89606
+ 	* gcc.target/aarch64/vld2-1.c: New test.
+ 
+ 2025-06-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/120224
+ 	* g++.dg/cpp0x/alias-decl-80.C: New test.
+ 
+ 2025-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120547
+ 	* gcc.dg/bitint-123.c: New test.
+ 
+ 2025-06-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.target/riscv/nozicond-1.c: New test.
+ 	* gcc.target/riscv/nozicond-2.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-ssu64xl.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-sstvecd.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-sstvala.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-sscounterenw.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-ssccptr.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-smrnmi.c: New test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-smcsrind.c: New test.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/opt7.ads: New test.
+ 	* gnat.dg/specs/opt7_pkg.ads: New helper.
+ 	* gnat.dg/specs/opt7_pkg.adb: Likewise.
+ 
+ 2025-06-05  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* gcc.target/aarch64/sve/pr96357.c: Change to avoid producing
+ 	a conditional FIX_TRUNC_EXPR, whilst still reproducing the bug
+ 	in PR96357.
+ 	* gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c: New test.
+ 	* gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c: Likewise.
+ 
+ 2025-06-05  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* g++.target/i386/pr112824-2.C: New test.
+ 
+ 2025-06-04  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* gcc.dg/tree-prof/clone-merge-1.c: New test.
+ 
+ 2025-06-04  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120502
+ 	* g++.dg/cpp2a/constexpr-prvalue2.C: New test.
+ 
+ 2025-06-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/14295
+ 	PR tree-optimization/108358
+ 	PR tree-optimization/114169
+ 	* gcc.dg/tree-ssa/20031106-6.c: Un-xfail. Add scan for forwprop1.
+ 	* g++.dg/opt/pr66119.C: Disable forwprop since that does
+ 	the copy prop now.
+ 	* gcc.dg/tree-ssa/pr108358-a.c: New test.
+ 	* gcc.dg/tree-ssa/pr114169-1.c: New test.
+ 	* gcc.c-torture/execute/builtins/pr22237-1-lib.c: New test.
+ 	* gcc.c-torture/execute/builtins/pr22237-1.c: New test.
+ 	* gcc.dg/tree-ssa/pr57361.c: Disable forwprop1.
+ 	* gcc.dg/tree-ssa/pr57361-1.c: New test.
+ 
+ 2025-06-04  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* gcc.target/aarch64/acle/uhadd_1.c: New test.
+ 
+ 2025-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* gcc.dg/tree-ssa/pr120231-1.c: New test.
+ 
+ 2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-60.c: New test.
+ 
+ 2025-06-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120447
+ 	* gcc.dg/pr120447.c: New test.
+ 
+ 2025-06-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR debug/120525
+ 	* gcc.dg/pr120525.c: New test.
+ 
+ 2025-06-04  Andre Vehreschild  <vehre@gcc.gnu.org>
+ 
+ 	PR fortran/120483
+ 	* gfortran.dg/save_8.f90: New test.
+ 
+ 2025-06-04  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-shlocofideleg.c: New test.
+ 
+ 2025-06-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* gcc.target/i386/pr49095-2.c: New test.
+ 
+ 2025-06-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* gcc.target/i386/pr79173-13.c: New test.
+ 	* gcc.target/i386/pr79173-14.c: Ditto.
+ 	* gcc.target/i386/pr79173-15.c: Ditto.
+ 	* gcc.target/i386/pr79173-16.c: Ditto.
+ 	* gcc.target/i386/pr79173-17.c: Ditto.
+ 	* gcc.target/i386/pr79173-18.c: Ditto.
+ 
+ 2025-06-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/99838
+ 	* gfortran.dg/coarray_data_2.f90: New test.
+ 
+ 2025-06-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/120078
+ 	* gcc.dg/Wjump-misses-init-3.c: New test.
+ 
+ 2025-06-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	* gcc.dg/gnu23-tag-composite-6.c: Update.
+ 
+ 2025-06-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/116892
+ 	* gcc.dg/pr116892.c: New test.
+ 
+ 2025-06-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	* g++.dg/modules/cpp-1.C
+ 	* g++.dg/modules/cpp-3.C
+ 	* g++.dg/modules/cpp-4.C: Specify -fno-modules.
+ 
+ 2025-06-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c: Adjust
+ 	the asm check for vdiv.
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c: Ditto.
+ 
+ 2025-06-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c: Add asm check
+ 	check for vdiv.vx combine.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c: Ditto.
+ 
+ 2025-06-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c: Add asm check
+ 	for vdiv.vx combine.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h: Add test
+ 	data for vdiv run test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c: New test.
+ 
+ 2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c: New test.
+ 
+ 2025-06-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/103750
+ 	* g++.target/i386/pr103750.C: New test.
+ 
+ 2025-06-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116824
+ 	* gcc.dg/tree-ssa/phiprop-2.c: New test.
+ 
+ 2025-06-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120451
+ 	* gcc.dg/tree-ssa/cswtch-6.c: New test.
+ 
+ 2025-06-02  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	PR middle-end/118939
+ 	* g++.target/arm/pr120424.C: New.
+ 	* gnat.dg/controlled9.adb: New.
+ 	* gnat.dg/controlled9_pkg.ads: New.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107600
+ 	* g++.dg/ext/is_destructible2.C: Add more cases.
+ 
+ 2025-06-02  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/arch-59.c: New test.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120506
+ 	* g++.dg/cpp2a/constinit21.C: New test.
+ 
+ 2025-06-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/118903
+ 	* g++.dg/coroutines/pr118903.C: New test.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107600
+ 	* g++.dg/ext/is_destructible2.C: New test.
+ 
+ 2025-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107600
+ 	* g++.dg/ext/has_trivial_destructor-3.C: New test.
+ 
+ 2025-06-02  Stafford Horne  <shorne@gmail.com>
+ 
+ 	* gcc.target/or1k/return-2.c: Fix test.
+ 
+ 2025-06-02  Stafford Horne  <shorne@gmail.com>
+ 
+ 	* gcc.target/or1k/call-1.c: New test.
+ 	* gcc.target/or1k/got-1.c: New test.
+ 
+ 2025-06-02  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* lib/target-supports.exp (check_effective_target_tls_link): New.
+ 	* g++.dg/tls/pr102496-1.C: Require tls_link.
+ 	* g++.dg/tls/pr77285-1.C: Likewise.
+ 
+ 2025-06-02  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* c-c++-common/gomp/declare-variant-2.c: Update expected output.
+ 	* c-c++-common/gomp/metadirective-condition-constexpr.c: New.
+ 	* c-c++-common/gomp/metadirective-condition.c: New.
+ 	* c-c++-common/gomp/metadirective-error-recovery.c: Update expected
+ 	output.
+ 	* g++.dg/gomp/metadirective-condition-class.C: New.
+ 	* g++.dg/gomp/metadirective-condition-template.C: New.
+ 
+ 2025-06-02  Liao Shihua  <shihua@iscas.ac.cn>
+ 
+ 	* gcc.target/riscv/rvv/autovec/param-autovec-mode.c: Change
+ 	`autovec-mode` to `riscv-autovec-mode` in dg-options.
+ 
+ 2025-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR libfortran/119856
+ 	* gfortran.dg/pr119856.f90: New test.
+ 
+ 2025-06-01  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/120380
+ 	* gcc.dg/pr120380.c: New test.
+ 
+ 2025-06-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120123
+ 	* g++.dg/cpp23/explicit-obj-lambda18.C: Move to...
+ 	* g++.dg/cpp2a/concepts-lambda24.C: ...here.
+ 
  2025-06-01  Gaius Mulley  <gaiusmod2@gmail.com>
  
  	PR modula2/120497
diff -Nrcpad gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/declare-variant-2.c gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
*** gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/declare-variant-2.c	Sun Jun  1 22:32:17 2025
--- gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/declare-variant-2.c	Sun Jun  8 22:32:19 2025
*************** void f18 (void);
*** 38,44 ****
  void f19 (void);
  #pragma omp declare variant (f1) match(user={condition()})	/* { dg-error "expected \[^\n\r]*expression before '\\)' token" } */
  void f20 (void);
! #pragma omp declare variant (f1) match(user={condition(f1)})	/* { dg-error "property must be integer expression" } */
  void f21 (void);
  #pragma omp declare variant (f1) match(user={condition(1, 2, 3)})	/* { dg-error "expected '\\)' before ',' token" } */
  void f22 (void);
--- 38,44 ----
  void f19 (void);
  #pragma omp declare variant (f1) match(user={condition()})	/* { dg-error "expected \[^\n\r]*expression before '\\)' token" } */
  void f20 (void);
! #pragma omp declare variant (f1) match(user={condition(f1)})
  void f21 (void);
  #pragma omp declare variant (f1) match(user={condition(1, 2, 3)})	/* { dg-error "expected '\\)' before ',' token" } */
  void f22 (void);
diff -Nrcpad gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/metadirective-condition-constexpr.c gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/metadirective-condition-constexpr.c
*** gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/metadirective-condition-constexpr.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/metadirective-condition-constexpr.c	Sun Jun  8 22:32:19 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target { c || c++11 } } } */
+ /* { dg-additional-options "-std=c23" { target c } } */
+ /* { dg-additional-options "-fdump-tree-original" } */
+ 
+ constexpr int flag = 1;
+ 
+ void f() {
+ #pragma omp metadirective when(user={condition(flag)} : nothing) \
+   otherwise(error at(execution))
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "__builtin_GOMP_error" "original" } } */
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/metadirective-condition.c gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/metadirective-condition.c
*** gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/metadirective-condition.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/metadirective-condition.c	Sun Jun  8 22:32:19 2025
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fdump-tree-original" } */
+ 
+ static int arr[10];
+ static int g (int a) { return -a; }
+ 
+ void f (int *ptr, float x) {
+ 
+   /* Implicit conversion float -> bool */
+   #pragma omp metadirective when(user={condition(x)} : nothing) otherwise(nothing)
+ 
+   /* Implicit conversion pointer -> bool */
+   #pragma omp metadirective when(user={condition(ptr)} : nothing) otherwise(nothing)
+ 
+   /* Array expression undergoes array->pointer conversion, OK but test is
+      always optimized away.  */
+   #pragma omp metadirective when(user={condition(arr)} : nothing) otherwise(nothing)
+ 
+   /* Function reference has pointer-to-function type, OK but test is
+      always optimized away.  */
+   #pragma omp metadirective when(user={condition(g)} : nothing) otherwise(nothing)
+ }
+ 
+ /* { dg-final { scan-tree-dump "x != 0.0" "original" } } */
+ /* { dg-final { scan-tree-dump "ptr != 0B" "original" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c
*** gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c	Sun Jun  1 22:32:17 2025
--- gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c	Sun Jun  8 22:32:19 2025
*************** void f (int aa, int bb)
*** 15,20 ****
    s2.b = bb + 1;
  
    /* A struct is not a valid argument for the condition selector.  */
!   #pragma omp metadirective when(user={condition(s1)} : nothing) otherwise(nothing)  /* { dg-error "property must be integer expression" } */
!   #pragma omp metadirective when(user={condition(s2)} : nothing) otherwise(nothing)  /* { dg-error "property must be integer expression" } */
  }
--- 15,25 ----
    s2.b = bb + 1;
  
    /* A struct is not a valid argument for the condition selector.  */
!   #pragma omp metadirective when(user={condition(s1)} : nothing) otherwise(nothing)
!   /* { dg-error "used struct type value where scalar is required" "" { target c } .-1 } */
!   /* { dg-error "could not convert .s1. from .s. to .bool." "" { target c++ } .-2 } */
!   #pragma omp metadirective when(user={condition(s2)} : nothing) otherwise(nothing)
!   /* { dg-error "used struct type value where scalar is required" "" { target c } .-1 } */
!   /* { dg-error "could not convert .s2. from .s. to .bool." "" { target c++ } .-2 } */
! 
  }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device-2.c gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device-2.c
*** gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device-2.c	Sun Jun  8 22:32:19 2025
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile }  */
+ /* { dg-additional-options "-O1 -fdump-tree-optimized -fno-builtin-omp_get_num_devices -fno-builtin-omp_get_initial_device" }  */
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern int omp_get_initial_device ();
+ extern int omp_get_num_devices ();
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ int f()
+ {
+ /* The following assumes that omp_get_initial_device () will not return
+    omp_initial_device (== -1), which is also permitted since OpenMP 6.0.  */
+   if (omp_get_initial_device () != omp_get_num_devices ()) __builtin_abort ();
+ 
+   if (omp_get_num_devices () != omp_get_num_devices ()) __builtin_abort ();
+ 
+   if (omp_get_initial_device () != omp_get_initial_device ()) __builtin_abort ();
+ 
+   return omp_get_num_devices ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "abort" 3 "optimized" } }  */
+ 
+ /* { dg-final { scan-tree-dump-times "omp_get_num_devices" 4 "optimized" } }  */
+ /* { dg-final { scan-tree-dump-times "omp_get_initial_device" 3 "optimized" } }  */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device.c gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device.c
*** gcc-16-20250601/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device.c	Sun Jun  8 22:32:19 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile }  */
+ /* { dg-additional-options "-O1 -fdump-tree-optimized" }  */
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern int omp_get_initial_device ();
+ extern int omp_get_num_devices ();
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ int f()
+ {
+ /* The following assumes that omp_get_initial_device () will not return
+    omp_initial_device (== -1), which is also permitted since OpenMP 6.0.  */
+   if (omp_get_initial_device () != omp_get_num_devices ()) __builtin_abort ();
+ 
+   if (omp_get_num_devices () != omp_get_num_devices ()) __builtin_abort ();
+ 
+   if (omp_get_initial_device () != omp_get_initial_device ()) __builtin_abort ();
+ 
+   return omp_get_num_devices ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "abort" "optimized" } }  */
+ 
+ /* { dg-final { scan-tree-dump-not "omp_get_num_devices;" "optimized" { target { ! offloading_enabled } } } }  */
+ /* { dg-final { scan-tree-dump "return 0;" "optimized" { target { ! offloading_enabled } } } }  */
+ 
+ /* { dg-final { scan-tree-dump-times "omp_get_num_devices;" 1 "optimized" { target offloading_enabled } } }  */
+ /* { dg-final { scan-tree-dump "_1 = __builtin_omp_get_num_devices \\(\\);\[\\r\\n\]+\[ \]+return _1;" "optimized" { target offloading_enabled } } }  */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/coroutines/pr118903.C gcc-16-20250608/gcc/testsuite/g++.dg/coroutines/pr118903.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/coroutines/pr118903.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/coroutines/pr118903.C	Sun Jun  8 22:32:19 2025
***************
*** 0 ****
--- 1,40 ----
+ // { dg-additional-options "-fsyntax-only" }
+ 
+ #include <coroutine>
+ 
+ struct awaitable {
+     constexpr bool await_ready() {
+         return true;
+     }
+     void await_suspend(std::coroutine_handle<void>) {
+ 
+     }
+     constexpr int await_resume() {
+         return 42;
+     }
+ };
+ 
+ struct super_simple_coroutine {
+     struct promise_type {
+         constexpr auto initial_suspend() {
+             return std::suspend_never();
+         }
+         constexpr auto final_suspend() const noexcept {
+             return std::suspend_never();
+         }
+         constexpr void unhandled_exception() {
+             // do nothing
+         }
+         constexpr auto get_return_object() {
+             return super_simple_coroutine{};
+         }
+         constexpr void return_void() {
+         }
+     };
+ };
+ 
+ auto fib (float f) -> super_simple_coroutine {
+     // if `co_await` is part of BodyStatement of a function
+     // it makes it coroutine
+     constexpr int x = co_await awaitable{}; // { dg-error {'co_await awaitable..' is not a constant expression} }
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/cpp0x/alias-decl-80.C gcc-16-20250608/gcc/testsuite/g++.dg/cpp0x/alias-decl-80.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/cpp0x/alias-decl-80.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/cpp0x/alias-decl-80.C	Sun Jun  8 22:32:19 2025
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/120224
+ // { dg-do compile { target c++11 } }
+ 
+ template<class> using void_t = void;
+ 
+ template<class T>
+ void f(void*); // #1
+ 
+ template<class T>
+ void f(void_t<typename T::type>*) { } // { dg-error "not a class" } defn of #1
+ 
+ template<class T>
+ void g(int, void*); // #2
+ 
+ template<class T>
+ void g(int, void_t<typename T::type>*) { } // { dg-error "not a class" } defn of #2
+ 
+ int main() {
+   f<int>(0); // { dg-error "no match" }
+   g<int>(0, 0); // { dg-error "no match" }
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/cpp1z/constexpr-if39.C gcc-16-20250608/gcc/testsuite/g++.dg/cpp1z/constexpr-if39.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/cpp1z/constexpr-if39.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/cpp1z/constexpr-if39.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,30 ----
+ // PR c++/120555
+ // { dg-do compile { target c++17 } }
+ 
+ struct A { int m; };
+ 
+ template<class T>
+ constexpr auto f() {
+   if constexpr (sizeof(T) == sizeof(int))
+     return 1;
+   else
+     return A{f<int>()};
+ }
+ 
+ static_assert(f<bool>().m == 1);
+ static_assert(f<int>() == 1);
+ 
+ template <class T> constexpr auto g();
+ 
+ template<class T>
+ constexpr auto f2() {
+   if constexpr (sizeof(T) == sizeof(int))
+     return 1;
+   else
+     return A{g<int>()};		// { dg-error "auto" }
+ }
+ 
+ template <class T> constexpr auto g() { return A{1}; }
+ 
+ static_assert(f2<bool>().m == 1);
+ static_assert(f2<int>() == 1);
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C gcc-16-20250608/gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/120502
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options -O }
+ 
+ struct non_trivial_if {
+   constexpr non_trivial_if() {}
+ };
+ struct allocator : non_trivial_if {};
+ struct padding {};
+ struct __short {
+   [[no_unique_address]] padding p;
+ };
+ struct basic_string {
+   union {
+     __short s;
+     int l;
+   };
+   [[no_unique_address]] allocator a;
+   constexpr basic_string() {}
+   ~basic_string() {}
+ };
+ struct time_zone {
+   basic_string __abbrev;
+   long __offset;
+ };
+ time_zone convert_to_time_zone() { return {}; }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/cpp2a/constinit21.C gcc-16-20250608/gcc/testsuite/g++.dg/cpp2a/constinit21.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/cpp2a/constinit21.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/cpp2a/constinit21.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/120506
+ // { dg-do compile { target c++20 } }
+ // Test that we give more information about why the init is non-constant
+ 
+ struct A
+ {
+   constexpr A(int c) : counter(c) { }
+ 
+   int counter;
+ };
+ 
+ 
+ struct B : A
+ {
+   constexpr B(int c) : A(c) { }
+ 
+   int i; // OOPS, not initialized
+ };
+ 
+ struct C
+ {
+   B sem;
+ 
+   constexpr C(int c) : sem(c) { }
+ };
+ 
+ constinit C s(0);		// { dg-error "incompletely initialized" }
+ // { dg-prune-output "constant" }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C gcc-16-20250608/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,21 ----
+ // { dg-do compile { target c++11 } }
+ 
+ struct X;
+ 
+ template<class T>
+ struct default_delete
+ {
+   void operator()(T*) { static_assert(sizeof(T), "type is not incomplete"); }
+ };
+ 
+ template<class T, class D = default_delete<T>>
+ struct unique_ptr
+ {
+   ~unique_ptr() { del(ptr); }
+ 
+   T* ptr;
+   D del;
+ };
+ 
+ 
+ constexpr bool b = __has_trivial_destructor(unique_ptr<X>);
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/ext/is_destructible2.C gcc-16-20250608/gcc/testsuite/g++.dg/ext/is_destructible2.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/ext/is_destructible2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/ext/is_destructible2.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/107600
+ // { dg-additional-options -Wno-c++17-extensions }
+ // { dg-do compile { target c++11 } }
+ 
+ struct A
+ {
+   A& operator= (const A&);
+   virtual ~A() = 0;
+ };
+ 
+ static_assert( __is_destructible(A) );
+ static_assert( __is_assignable(A, A) );
+ static_assert( not __is_destructible(int()) );
+ static_assert( not __is_nothrow_destructible(int()) );
+ static_assert( not __is_trivially_destructible(int()) );
+ static_assert( __is_destructible(int&) );
+ static_assert( __is_destructible(int&&) );
+ static_assert( __is_destructible(int(&)[1]) );
+ static_assert( __is_destructible(const int(&)[1]) );
+ static_assert( __is_destructible(void(&)()) );
+ static_assert( not __is_destructible(int[]) );
+ static_assert( not __is_destructible(const int[]) );
+ static_assert( not __is_destructible(int[][1]) );
+ static_assert( not __is_destructible(const int[][1]) );
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/gomp/metadirective-condition-class.C gcc-16-20250608/gcc/testsuite/g++.dg/gomp/metadirective-condition-class.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/gomp/metadirective-condition-class.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/gomp/metadirective-condition-class.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,43 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fdump-tree-original" } */
+ 
+ class c
+ {
+  public:
+   int x;
+   c (int xx) { x = xx; }
+   operator bool() { return x != 0; }
+ };
+ 
+ void f (c &objref)
+ {
+   #pragma omp metadirective when(user={condition(objref)} : nothing) otherwise(nothing)
+ }
+ 
+ 
+ template <typename T> class d
+ {
+  public:
+   T x;
+   d (T xx) { x = xx; }
+   operator bool() { return x != 0; }
+ };
+ 
+ template <typename T>
+ void g (d<T> &objref)
+ {
+   #pragma omp metadirective when(user={condition(objref)} : nothing) otherwise(nothing)
+ }
+ 
+ int main (void)
+ {
+   c obj1 (42);
+   d<int> obj2 (69);
+ 
+   f (obj1);
+   g (obj2);
+ }
+ 
+ /* { dg-final { scan-tree-dump "c::operator bool \\(\\(struct c .\\) objref\\)" "original" } } */
+ 
+ /* { dg-final { scan-tree-dump "d<int>::operator bool \\(\\(struct d .\\) objref\\)" "original" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/gomp/metadirective-condition-template.C gcc-16-20250608/gcc/testsuite/g++.dg/gomp/metadirective-condition-template.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/gomp/metadirective-condition-template.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.dg/gomp/metadirective-condition-template.C	Sun Jun  8 22:32:20 2025
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fdump-tree-original" } */
+ 
+ template<typename T, typename T2>
+ void f (T x, T2 y) 
+ {
+   #pragma omp metadirective when(user={condition(x)}, \
+ 				 target_device={device_num(y)} : flush)
+ }
+ 
+ class c
+ {
+  public:
+   int x;
+   c (int xx) { x = xx; }
+   operator bool() { return x != 0; }
+ };
+ 
+ template <typename T> class d
+ {
+  public:
+   T x;
+   d (T xx) { x = xx; }
+   operator bool() { return x != 0; }
+ };
+ 
+ int main (void)
+ {
+   c obj1 (42);
+   d<int> obj2 (69);
+ 
+   f (42, 0);
+   f (&obj1, 0);
+   f (obj1, 0);
+   f (obj2, 0);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "if \\(x != 0 &&" 1 "original" } } */
+ /* { dg-final { scan-tree-dump-times "if \\(x != 0B &&" 1 "original" } } */
+ /* { dg-final { scan-tree-dump-times "if \\(<<cleanup_point c::operator bool \\(&x\\)>> &&" 1 "original" } } */
+ /* { dg-final { scan-tree-dump-times "if \\(<<cleanup_point d<int>::operator bool \\(&x\\)>> &&" 1 "original" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/modules/cpp-1.C gcc-16-20250608/gcc/testsuite/g++.dg/modules/cpp-1.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/modules/cpp-1.C	Sun Jun  1 22:32:20 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/modules/cpp-1.C	Sun Jun  8 22:32:20 2025
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do preprocess }
+ // { dg-additional-options -fno-modules }
  
  module bob;
  #if 1
*************** import gru;
*** 11,14 ****
  EXPORT import mabel;
  int i;
  
! // { dg-final { scan-file cpp-1.i "cpp-1.C\"\n\n\nmodule bob;\n\nexport import stuart;\n\n\n\nimport gru;\n\n import mabel;\n" } }
--- 12,15 ----
  EXPORT import mabel;
  int i;
  
! // { dg-final { scan-file cpp-1.i "cpp-1.C\"\n\n\n\nmodule bob;\n\nexport import stuart;\n\n\n\nimport gru;\n\n import mabel;\n" } }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/modules/cpp-3.C gcc-16-20250608/gcc/testsuite/g++.dg/modules/cpp-3.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/modules/cpp-3.C	Sun Jun  1 22:32:20 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/modules/cpp-3.C	Sun Jun  8 22:32:20 2025
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do preprocess }
+ // { dg-additional-options -fno-modules }
  
  #define NAME(X) X;
  
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/modules/cpp-4.C gcc-16-20250608/gcc/testsuite/g++.dg/modules/cpp-4.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/modules/cpp-4.C	Sun Jun  1 22:32:20 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/modules/cpp-4.C	Sun Jun  8 22:32:20 2025
***************
*** 1,3 ****
--- 1,4 ----
+ // { dg-additional-options -fno-modules }
  // { dg-do preprocess }
  
  #if 1
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/opt/pr66119.C gcc-16-20250608/gcc/testsuite/g++.dg/opt/pr66119.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/opt/pr66119.C	Sun Jun  1 22:32:20 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/opt/pr66119.C	Sun Jun  8 22:32:20 2025
***************
*** 3,9 ****
     the value of MOVE_RATIO now is.  */
  
  /* { dg-do compile  { target { { i?86-*-* x86_64-*-* } && c++11 } }  }  */
! /* { dg-options "-O3 -mavx -fdump-tree-sra -march=slm -mtune=slm -fno-early-inlining" } */
  // { dg-skip-if "requires hosted libstdc++ for cstdlib malloc" { ! hostedlib } }
  
  #include <immintrin.h>
--- 3,9 ----
     the value of MOVE_RATIO now is.  */
  
  /* { dg-do compile  { target { { i?86-*-* x86_64-*-* } && c++11 } }  }  */
! /* { dg-options "-O3 -mavx -fdump-tree-sra -fno-tree-forwprop -march=slm -mtune=slm -fno-early-inlining" } */
  // { dg-skip-if "requires hosted libstdc++ for cstdlib malloc" { ! hostedlib } }
  
  #include <immintrin.h>
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/tls/pr102496-1.C gcc-16-20250608/gcc/testsuite/g++.dg/tls/pr102496-1.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/tls/pr102496-1.C	Sun Jun  1 22:32:21 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/tls/pr102496-1.C	Sun Jun  8 22:32:21 2025
***************
*** 1,6 ****
  // PR c++/102496
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls }
  // { dg-add-options tls }
  // { dg-additional-sources pr102496-2.C }
  
--- 1,6 ----
  // PR c++/102496
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls_link }
  // { dg-add-options tls }
  // { dg-additional-sources pr102496-2.C }
  
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/tls/pr77285-1.C gcc-16-20250608/gcc/testsuite/g++.dg/tls/pr77285-1.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/tls/pr77285-1.C	Sun Jun  1 22:32:21 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/tls/pr77285-1.C	Sun Jun  8 22:32:21 2025
***************
*** 1,5 ****
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls }
  // { dg-add-options tls }
  // { dg-additional-sources pr77285-2.C }
  
--- 1,5 ----
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls_link }
  // { dg-add-options tls }
  // { dg-additional-sources pr77285-2.C }
  
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C gcc-16-20250608/gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C
*** gcc-16-20250601/gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C	Sun Jun  1 22:32:21 2025
--- gcc-16-20250608/gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C	Sun Jun  8 22:32:21 2025
***************
*** 6,11 ****
--- 6,12 ----
  #include <cmath>
  
  constexpr unsigned s = 100000000;
+ double d = 0.0;
  
  int main()
  {
*************** int main()
*** 19,25 ****
          if(i == 0)
              a[i] = b[i] * c[i];
          else
!             a[i] = (b[i] + c[i]) * c[i-1] * std::log(i);
      }
  }
  /* { dg-final { scan-tree-dump-times "loop split" 1 "lsplit" } } */
--- 20,26 ----
          if(i == 0)
              a[i] = b[i] * c[i];
          else
!             a[i] = (b[i] + c[i]) * c[i-1] * std::log(i + d);
      }
  }
  /* { dg-final { scan-tree-dump-times "loop split" 1 "lsplit" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.target/arm/pr120424.C gcc-16-20250608/gcc/testsuite/g++.target/arm/pr120424.C
*** gcc-16-20250601/gcc/testsuite/g++.target/arm/pr120424.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.target/arm/pr120424.C	Sun Jun  8 22:32:22 2025
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv7 -O2 -fstack-clash-protection -fnon-call-exceptions" } */
+ /* { dg-final { scan-assembler-not {#-8} } } */
+ /* LRA register elimination gets confused when register spilling
+    causes arm_frame_pointer_required to switch from false to true, and
+    ends up using a stack slot below sp.  */
+ 
+ void f() {
+   int i = 0, j = 0;
+   asm ("" : : "m" (i), "m" (j));
+ }
+ 
+ void g(void (*fn[])(), int i)
+ {
+   auto fn0 = fn[i+0];
+   auto fn1 = fn[i+1];
+   auto fn2 = fn[i+2];
+   auto fn3 = fn[i+3];
+   fn0();
+   fn1();
+   if (!fn2)
+     throw i+2;
+   fn2();
+   fn3();
+   fn0();
+   fn1();
+ }
+ 
+ int
+ main()
+ {
+   void (*fn[4])() = { f, f, f, f };
+   g (fn, 0);
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.target/i386/pr103750.C gcc-16-20250608/gcc/testsuite/g++.target/i386/pr103750.C
*** gcc-16-20250601/gcc/testsuite/g++.target/i386/pr103750.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.target/i386/pr103750.C	Sun Jun  8 22:32:22 2025
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -march=x86-64-v4 -std=c++17" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  } } */
+ 
+ #include <x86intrin.h>
+ 
+ /*
+ **_Z8qustrchrPDsS_Ds:
+ **...
+ **.L[0-9]+:
+ **	vpcmpeqw	\(%[a-x]+\), %ymm0, %k1
+ **	vpcmpeqw	32\(%[a-x]+\), %ymm0, %k0
+ **	kortestw	%k0, %k1
+ **	je	.L[0-9]+
+ **...
+ */
+ 
+ const char16_t *
+ qustrchr(char16_t *n, char16_t *e, char16_t c) noexcept
+ {
+     __m256i mch256 = _mm256_set1_epi16(c);
+     for ( ; n < e; n += 32) {
+         __m256i data1 = _mm256_loadu_si256(reinterpret_cast<const __m256i *>(n));
+         __m256i data2 = _mm256_loadu_si256(reinterpret_cast<const __m256i *>(n) + 1);
+         __mmask16 mask1 = _mm256_cmpeq_epu16_mask(data1, mch256);
+         __mmask16 mask2 = _mm256_cmpeq_epu16_mask(data2, mch256);
+         if (_kortestz_mask16_u8(mask1, mask2))
+             continue;
+ 
+         unsigned idx = _tzcnt_u32(mask1);
+         if (mask1 == 0) {
+             idx = __tzcnt_u16(mask2);
+             n += 16;
+         }
+         return n + idx;
+     }
+     return e;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/g++.target/i386/pr112824-2.C gcc-16-20250608/gcc/testsuite/g++.target/i386/pr112824-2.C
*** gcc-16-20250601/gcc/testsuite/g++.target/i386/pr112824-2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/g++.target/i386/pr112824-2.C	Sun Jun  8 22:32:22 2025
***************
*** 0 ****
--- 1,10 ----
+ /* PR target/112824 */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c++23 -O3 -march=skylake-avx512 -mprefer-vector-width=512" } */
+ /* { dg-final { scan-assembler-not "vmov.*\[ \\t\]+\[^\n\]*%rsp" } } */
+ 
+ #include "pr112824-1.C"
+ 
+ void prod(Dual<Dual<double,8>,2> &c, const Dual<Dual<double,8>,2> &a, const Dual<Dual<double,8>,2>&b){
+     c = a*b;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1-lib.c gcc-16-20250608/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1-lib.c
*** gcc-16-20250601/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1-lib.c	Sun Jun  8 22:32:23 2025
***************
*** 0 ****
--- 1,27 ----
+ extern void abort (void);
+ 
+ void *
+ memcpy (void *dst, const void *src, __SIZE_TYPE__ n)
+ {
+   const char *srcp;
+   char *dstp;
+ 
+   srcp = src;
+   dstp = dst;
+ 
+   if (dst < src)
+     {
+       if (dst + n > src)
+ 	abort ();
+     }
+   else
+     {
+       if (src + n > dst)
+ 	abort ();
+     }
+ 
+   while (n-- != 0)
+     *dstp++ = *srcp++;
+ 
+   return dst;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1.c gcc-16-20250608/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1.c	Sun Jun  8 22:32:23 2025
***************
*** 0 ****
--- 1,57 ----
+ extern void abort (void);
+ extern void exit (int);
+ struct s { unsigned char a[256]; };
+ union u { struct { struct s b; int c; } d; struct { int c; struct s b; } e; };
+ static union u v;
+ static union u v0;
+ static struct s *p = &v.d.b;
+ static struct s *q = &v.e.b;
+ 
+ struct outers
+ {
+   struct s inner;
+ };
+ 
+ static inline struct s rp (void) { return *p; }
+ static inline struct s rq (void) { return *q; }
+ static void pq (void)
+ {
+   struct outers o = {rq () };
+   *p = o.inner;
+ }
+ static void qp (void)
+ {
+   struct outers o = {rp () };
+   *q  = o.inner;
+ }
+ 
+ static void
+ init (struct s *sp)
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+     sp->a[i] = i;
+ }
+ 
+ static void
+ check (struct s *sp)
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+     if (sp->a[i] != i)
+       abort ();
+ }
+ 
+ void
+ main_test (void)
+ {
+   v = v0;
+   init (p);
+   qp ();
+   check (q);
+   v = v0;
+   init (q);
+   pq ();
+   check (p);
+   exit (0);
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/Wjump-misses-init-3.c gcc-16-20250608/gcc/testsuite/gcc.dg/Wjump-misses-init-3.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/Wjump-misses-init-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/Wjump-misses-init-3.c	Sun Jun  8 22:32:24 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wc++-compat" } */
+ 
+ void f()
+ {
+ 	goto skip;	/* { dg-warning "jump skips variable initialization" } */
+ 	int i = 1;
+ skip:	;
+ }
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/bitint-123.c gcc-16-20250608/gcc/testsuite/gcc.dg/bitint-123.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/bitint-123.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/bitint-123.c	Sun Jun  8 22:32:24 2025
***************
*** 0 ****
--- 1,26 ----
+ /* PR middle-end/120547 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-O2" } */
+ /* { dg-add-options float64 } */
+ /* { dg-require-effective-target float64 } */
+ 
+ #define CHECK(x, y) \
+   if ((_Float64) x != (_Float64) y				\
+       || (_Float64) (x + 1) != (_Float64) (y + 1))		\
+     __builtin_abort ()
+ 
+ int
+ main ()
+ {
+   unsigned long long a = 0x20000000000001ULL << 7;
+   volatile unsigned long long b = a;
+   CHECK (a, b);
+ #if __BITINT_MAXWIDTH__ >= 4096
+   unsigned _BitInt(4096) c = ((unsigned _BitInt(4096)) 0x20000000000001ULL) << 253;
+   volatile unsigned _BitInt(4096) d = c;
+   CHECK (c, d);
+   unsigned _BitInt(4096) e = ((unsigned _BitInt(4096)) 0x20000000000001ULL) << 931;
+   volatile unsigned _BitInt(4096) f = e;
+   CHECK (e, f);
+ #endif
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c gcc-16-20250608/gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c	Sun Jun  1 22:32:23 2025
--- gcc-16-20250608/gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c	Sun Jun  8 22:32:24 2025
***************
*** 1,11 ****
  /* { dg-do compile } */
  /* { dg-options "-std=gnu23" } */
  
  int f()
  {
      typedef struct foo bar;
!     struct foo { typeof(({ (struct foo { bar * x; }){ }; })) * x; } *q;
!     typeof(q->x) p;
!     1 ? p : q;
  }
  
--- 1,31 ----
  /* { dg-do compile } */
  /* { dg-options "-std=gnu23" } */
  
+ #define NEST(...) typeof(({ (__VA_ARGS__){ }; }))
+ 
  int f()
  {
      typedef struct foo bar;
!     struct foo { NEST(struct foo { bar *x; }) *x; } *q;
!     typeof(q->x) p0;
!     typeof(q->x) p1;
!     1 ? p0 : q;
!     1 ? p1 : q;
!     1 ? p0 : p1;
! }
! 
! int g()
! {
!     typedef struct fo2 bar;
!     struct fo2 { NEST(struct fo2 { NEST(struct fo2 { bar *x; }) * x; }) *x; } *q;
!     typeof(q->x) p0;
!     typeof(q->x->x) p1;
!     typeof(q->x->x->x) p2;
!     1 ? p0 : q;
!     1 ? p1 : q;
!     1 ? p2 : q;
!     1 ? p0 : p1;
!     1 ? p2 : p1;
!     1 ? p0 : p2;
  }
  
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/pr116892.c gcc-16-20250608/gcc/testsuite/gcc.dg/pr116892.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/pr116892.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/pr116892.c	Sun Jun  8 22:32:25 2025
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-g -std=gnu23" } */
+ 
+ enum fmt_type;
+ 
+ void foo(const enum fmt_type a);
+ 
+ enum [[gnu::packed]] fmt_type {
+   A
+ } const a;
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/pr120447.c gcc-16-20250608/gcc/testsuite/gcc.dg/pr120447.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/pr120447.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/pr120447.c	Sun Jun  8 22:32:25 2025
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-options "-Ofast" } */
+ /* { dg-additional-options "-mcpu=neoverse-v2" { target aarch64*-*-* } } */
+ 
+ char g;
+ long h;
+ typedef struct {
+   void *data;
+ } i;
+ i* a;
+ void b(i *j, char *p2);
+ void c(char *d) {
+   d = d ? " and " : " or ";
+   b(a, d);
+ }
+ void b(i *j, char *p2) {
+   h = __builtin_strlen(p2);
+   while (g)
+     ;
+   int *k = j->data;
+   char *l = p2, *m = p2 + h;
+   l += 4;
+   while (l < m)
+     *k++ = *l++;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/pr120525.c gcc-16-20250608/gcc/testsuite/gcc.dg/pr120525.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/pr120525.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/pr120525.c	Sun Jun  8 22:32:25 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile { target fpic } } */
+ /* { dg-options "-O2 -fpic -g" } */
+ /* { dg-additional-options "-m31" { target s390x-*-* } } */
+ 
+ typedef __SIZE_TYPE__ uintptr_t;
+ static __thread uintptr_t start_sp;
+ static inline uintptr_t
+ __thread_stack_pointer (void)
+ {
+   return (uintptr_t) __builtin_frame_address (0);
+ }
+ 
+ void
+ update_data (void)
+ {
+   if (__builtin_expect ((!start_sp), 0))
+     start_sp = __thread_stack_pointer ();
+ 
+   uintptr_t sp = __thread_stack_pointer ();
+   if (__builtin_expect ((sp > start_sp), 0))
+     start_sp = sp;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-prof/clone-merge-1.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-prof/clone-merge-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-prof/clone-merge-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-prof/clone-merge-1.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-options "-O3 -fno-early-inlining -fdump-ipa-afdo-all" } */
+ __attribute__ ((used))
+ int a[1000];
+ 
+ __attribute__ ((noinline))
+ void
+ test2(int sz)
+ {
+   a[sz]++;
+   asm volatile (""::"m"(a));
+ }
+ 
+ __attribute__ ((noinline))
+ void
+ test1 (int sz)
+ {
+   for (int i = 0; i < 1000; i++)
+     if (i % 2)
+       test2 (sz);
+     else
+       test2 (i);
+ 
+ }
+ int main()
+ {
+   for (int i = 0; i < 1000; i++)
+     test1 (1000);
+   return 0;
+ }
+ /* We will have profiles for test2 and test2.constprop.0 that will have to be
+    merged,  */
+ /* { dg-final-use-autofdo { scan-ipa-dump "note: Merging profile for test2" "afdo"} } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c	Sun Jun  1 22:32:24 2025
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c	Sun Jun  8 22:32:26 2025
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fno-tree-sra -fdump-tree-optimized" } */
  
  extern void link_error (void);
  
--- 1,7 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fno-tree-sra -fdump-tree-optimized -fdump-tree-forwprop1-details" } */
! 
! /* PR tree-optimization/14295 */
  
  extern void link_error (void);
  
*************** struct s foo (struct s r)
*** 25,28 ****
  
  /* There should be no references to any of "temp_struct*"
     temporaries.  */
! /* { dg-final { scan-tree-dump-times "temp_struct" 0 "optimized" { xfail *-*-* } } } */
--- 27,32 ----
  
  /* There should be no references to any of "temp_struct*"
     temporaries.  */
! /* { dg-final { scan-tree-dump-times "temp_struct" 0 "optimized" } } */
! /* Also check that forwprop pass did the copy prop. */
! /* { dg-final { scan-tree-dump-times "after previous" 3 "forwprop1" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,43 ----
+ /* PR tree-optimization/120451 */
+ /* { dg-do compile { target elf } } */
+ /* { dg-options "-O2" } */
+ 
+ void foo (int, int);
+ 
+ __attribute__((noinline, noclone)) void
+ f1 (int v, int w)
+ {
+   int i, j;
+   if (w)
+     {
+       i = 129;
+       j = i - 1;
+       goto lab;
+     }
+   switch (v)
+     {
+     case 170:
+       j = 7;
+       i = 27;
+       break;
+     case 171:
+       i = 8;
+       j = 122;
+       break;
+     case 172:
+       i = 21;
+       j = -19;
+       break;
+     case 173:
+       i = 18;
+       j = 17;
+       break;
+     default:
+       __builtin_abort ();
+     }
+ 
+  lab:
+   foo (i, j);
+ }
+ 
+ /* { dg-final { scan-assembler ".rodata.cst16" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,19 ----
+   /* { dg-do compile } */
+   /* { dg-options "-O2 -ftree-vectorize -fdump-tree-ifcvt-stats" } */
+ 
+ void
+ test (int *dst, float *arr, int *pred, int n)
+ {
+   for (int i = 0; i < n; i++)
+     {
+       int pred_i = pred[i];
+       float arr_i = arr[i];
+ 
+       dst[i] = pred_i ? (int)arr_i : 5;
+     }
+ }
+ 
+ /* We expect this to fail if_convertible_loop_p so long as we have no
+    conditional IFN for FIX_TRUNC_EXPR.  */
+ 
+ /* { dg-final { scan-tree-dump-times "Applying if-conversion" 0 "ifcvt" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize -fno-trapping-math -fdump-tree-ifcvt-stats" } */
+ 
+ #include "ifcvt-fix-trunc-1.c"
+ 
+ /* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "ifcvt" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/phiprop-2.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/phiprop-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/phiprop-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/phiprop-2.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-phiopt1 -fdump-tree-phiprop1-details" } */
+ 
+ /* PR tree-optimization/116824 */
+ 
+ int g(int i, int *tt)
+ {
+   const int t = 10;
+   const int *a;
+   {
+     if (t < i)
+     {
+       *tt = 1;
+       a = &t;
+     }
+     else
+     {
+       *tt = 1;
+       a = &i;
+     }
+   }
+   return *a;
+ }
+ 
+ /* Check that phiprop1 can do the insert of the loads. */
+ /* { dg-final { scan-tree-dump-times "Inserting PHI for result of load" 1 "phiprop1"} } */
+ /* { dg-final { scan-tree-dump-times "MIN_EXPR " 1 "phiopt1" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr108358-a.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr108358-a.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr108358-a.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr108358-a.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Os -fdump-tree-optimized" } */
+ 
+ /* PR tree-optimization/108358 */
+ 
+ struct a {
+   int b;
+   int c;
+   short d;
+   int e;
+   int f;
+ };
+ struct g {
+   struct a f;
+   struct a h;
+ };
+ int i;
+ void foo();
+ void bar31_(void);
+ int main() {
+   struct g j, l = {2, 1, 6, 1, 1, 7, 5, 1, 0, 1};
+   for (; i; ++i)
+     bar31_();
+   j = l;
+   struct g m = j;
+   struct g k = m;
+   if (k.h.b)
+     ;
+   else
+     foo();
+ }
+ /* The call to foo should be optimized away. */
+ /* { dg-final { scan-tree-dump-not "foo " "optimized" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop-details -fdump-tree-optimized" } */
+ 
+ 
+ /* PR tree-optimization/114169 */
+ 
+ #include <stdint.h>
+ 
+ struct S1 {
+    uint32_t  f0;
+    uint8_t  f1;
+    uint64_t  f2;
+    uint64_t  f3;
+    int32_t  f4;
+ };
+ 
+ union U8 {
+    struct S1  f0;
+    int32_t  f1;
+    int64_t  f2;
+    uint8_t  f3;
+    const int64_t  f4;
+ };
+ 
+ /* --- GLOBAL VARIABLES --- */
+ struct S1 g_16 = {4294967293UL,1UL,1UL,0xA9C1C73B017290B1LL,0x5ADF851FL};
+ union U8 g_37 = {{1UL,1UL,0x2361AE7D51263067LL,0xEEFD7F9B64A47447LL,0L}};
+ struct S1 g_50 = {0x0CFC2012L,1UL,0x43E1243B3BE7B8BBLL,0x03C5CEC10C1A6FE1LL,1L};
+ 
+ 
+ /* --- FORWARD DECLARATIONS --- */
+ 
+ void func_32(union U8 e) {
+   e.f3 = e.f0.f4;
+   g_16 = e.f0 = g_50;
+ }
+ /* The union e should not make a difference here.  */
+ /* { dg-final { scan-tree-dump-times "after previous" 1 "forwprop1" } } */
+ /* { dg-final { scan-tree-dump "g_16 = g_50;" "optimized" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr120231-1.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr120231-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr120231-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr120231-1.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,67 ----
+ /* PR tree-optimization/120231 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ /* { dg-add-options float32 } */
+ /* { dg-add-options float64 } */
+ /* { dg-add-options float128 } */
+ /* { dg-require-effective-target float32 } */
+ /* { dg-require-effective-target float64 } */
+ /* { dg-require-effective-target float128 } */
+ /* { dg-final { scan-tree-dump-not "link_failure \\\(\\\);" "optimized" } } */
+ 
+ void link_failure (void);
+ 
+ void
+ foo (_Float64 x)
+ {
+   if (x >= -64.0f64 && x <= 0x1.p+140f64)
+     {
+       _Float32 z = x;
+       _Float128 w = z;
+       _Float128 v = x;
+       if (__builtin_isnan (z)
+ 	  || __builtin_isnan (w)
+ 	  || __builtin_isnan (v)
+ 	  || z < -64.0f32
+ 	  || w < -64.0f128
+ 	  || __builtin_isinf (v)
+ 	  || v < -64.0f128
+ 	  || v > 0x1.p+140f128)
+ 	link_failure ();
+     }
+ }
+ 
+ void
+ bar (_Float64 x)
+ {
+   _Float32 z = x;
+   if (z >= -64.0f32 && z <= 0x1.p+38f32)
+     {
+       if (__builtin_isnan (x)
+ 	  || __builtin_isinf (x)
+ 	  || x < -0x1.000001p+6f64
+ 	  || x > 0x1.000001p+38f64)
+ 	link_failure ();
+     }
+ }
+ 
+ void
+ baz (_Float64 x)
+ {
+   _Float128 w = x;
+   if (w >= -64.0f128 && w <= 0x1.p+1026f128)
+     {
+       if (__builtin_isnan (x)
+ 	  || __builtin_isinf (x)
+ 	  || x < -64.0f64)
+ 	link_failure ();
+     }
+   if (w >= 128.25f128 && w <= 0x1.p+1020f128)
+     {
+       if (__builtin_isnan (x)
+ 	  || __builtin_isinf (x)
+ 	  || x < 128.25f64
+ 	  || x > 0x1.p+1020f64)
+ 	link_failure ();
+     }
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,107 ----
+ /* PR tree-optimization/120231 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ /* { dg-add-options float64 } */
+ /* { dg-require-effective-target float64 } */
+ /* { dg-final { scan-tree-dump-not "link_failure \\\(\\\);" "optimized" } } */
+ 
+ void link_failure (void);
+ 
+ static _Float64 __attribute__((noinline))
+ f1 (signed char x)
+ {
+   return x;
+ }
+ 
+ static _Float64 __attribute__((noinline))
+ f2 (signed char x)
+ {
+   if (x >= -37 && x <= 42)
+     return x;
+   return 0.0f64;
+ }
+ 
+ void
+ f3 (signed char x)
+ {
+   _Float64 y = f1 (x);
+   if (y < (_Float64) (-__SCHAR_MAX__ - 1) || y > (_Float64) __SCHAR_MAX__)
+     link_failure ();
+   y = f2 (x);
+   if (y < -37.0f64 || y > 42.0f64)
+     link_failure ();
+ }
+ 
+ static _Float64 __attribute__((noinline))
+ f4 (long long x)
+ {
+   return x;
+ }
+ 
+ static _Float64 __attribute__((noinline))
+ f5 (long long x)
+ {
+   if (x >= -0x3ffffffffffffffeLL && x <= 0x3ffffffffffffffeLL)
+     return x;
+   return 0.0f64;
+ }
+ 
+ void
+ f6 (long long x)
+ {
+   _Float64 y = f4 (x);
+   if (y < (_Float64) (-__LONG_LONG_MAX__ - 1) || y > (_Float64) __LONG_LONG_MAX__)
+     link_failure ();
+   y = f5 (x);
+   if (y < (_Float64) -0x3ffffffffffffffeLL || y > (_Float64) 0x3ffffffffffffffeLL)
+     link_failure ();
+ }
+ 
+ static signed char __attribute__((noinline))
+ f7 (_Float64 x)
+ {
+   if (x >= -78.5f64 && x <= 98.25f64)
+     return x;
+   return 0;
+ }
+ 
+ static unsigned char __attribute__((noinline))
+ f8 (_Float64 x)
+ {
+   if (x >= -0.75f64 && x <= 231.625f64)
+     return x;
+   return 31;
+ }
+ 
+ static long long __attribute__((noinline))
+ f9 (_Float64 x)
+ {
+   if (x >= -3372587051122780362.75f64 && x <= 3955322825938799366.25f64)
+     return x;
+   return 0;
+ }
+ 
+ static unsigned long long __attribute__((noinline))
+ f10 (_Float64 x)
+ {
+   if (x >= 31.25f64 && x <= 16751991430751148048.125f64)
+     return x;
+   return 4700;
+ }
+ 
+ void
+ f11 (_Float64 x)
+ {
+   signed char a = f7 (x);
+   if (a < -78 || a > 98)
+     link_failure ();
+   unsigned char b = f8 (x);
+   if (b > 231)
+     link_failure ();
+   long long c = f9 (x);
+   if (c < -3372587051122780160LL || c > 3955322825938799616LL)
+     link_failure ();
+   unsigned long long d = f10 (x);
+   if (d < 31 || d > 16751991430751148032ULL)
+     link_failure ();
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,40 ----
+ /* PR tree-optimization/120231 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ /* { dg-add-options float64 } */
+ /* { dg-require-effective-target float64 } */
+ /* { dg-final { scan-tree-dump-not "link_failure \\\(\\\);" "optimized" } } */
+ 
+ void link_failure (void);
+ 
+ void
+ foo (long long x)
+ {
+   _Float64 y = x;
+   if (y >= -8577328745032543176.25f64 && y <= 699563045341050951.75f64)
+     {
+       if (x < -8577328745032544256LL || x > 699563045341051136LL)
+ 	link_failure ();
+     }
+   if (y >= -49919160463252.125f64 && y <= 757060336735329.625f64)
+     {
+       if (x < -49919160463252LL || x > 757060336735329LL)
+ 	link_failure ();
+     }
+ }
+ 
+ void
+ bar (_Float64 x)
+ {
+   long long y = x;
+   if (y >= -6923230004751524066LL && y <= 2202103129706786704LL)
+     {
+       if (x < -6923230004751524864.0f64 || x > 2202103129706786816.0f64)
+ 	link_failure ();
+     }
+   if (y >= -171621738469699LL && y <= 45962470357748LL)
+     {
+       if (x <= -1716217384696970.f64 || x >= 45962470357749.0f64)
+ 	link_failure ();
+     }
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr35286.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr35286.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr35286.c	Sun Jun  1 22:32:24 2025
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr35286.c	Sun Jun  8 22:32:26 2025
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fno-code-hoisting -fno-tree-cselim -fdump-tree-pre-stats" } */
  int g2;
  struct A {
      int a; int b;
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fno-code-hoisting -fno-tree-cselim -fno-ssa-phiopt -fdump-tree-pre-stats" } */
  int g2;
  struct A {
      int a; int b;
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr57361-1.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr57361-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr57361-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr57361-1.c	Sun Jun  8 22:32:26 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fdump-tree-forwprop1-details" } */
+ 
+ struct A { int x; double y; };
+ void f (struct A *a) {
+   *a = *a;
+ }
+ 
+ /* xfailed until figuring out the best way to handle aliasing barriers. */
+ /* { dg-final { scan-tree-dump "into a NOP" "forwprop1" { xfail *-*-* } } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr57361.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr57361.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/pr57361.c	Sun Jun  1 22:32:24 2025
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/pr57361.c	Sun Jun  8 22:32:26 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O -fdump-tree-dse1-details" } */
  
  struct A { int x; double y; };
  void f (struct A *a) {
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O -fdump-tree-dse1-details -fno-tree-forwprop" } */
  
  struct A { int x; double y; };
  void f (struct A *a) {
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c	Sun Jun  1 22:32:24 2025
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c	Sun Jun  8 22:32:26 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fdump-tree-split-paths-details -fno-finite-loops -fno-tree-dominator-opts -fno-tree-vrp -w" } */
  
  struct __sFILE
  {
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fno-ssa-phiopt -fdump-tree-split-paths-details -fno-finite-loops -fno-tree-dominator-opts -fno-tree-vrp -w" } */
  
  struct __sFILE
  {
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
*** gcc-16-20250601/gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c	Sun Jun  1 22:32:24 2025
--- gcc-16-20250608/gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c	Sun Jun  8 22:32:26 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fno-tree-sink -fdump-tree-split-paths-details -w" } */
  
  
  struct _reent
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fno-ssa-phiopt -fno-tree-sink -fdump-tree-split-paths-details -w" } */
  
  
  struct _reent
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c gcc-16-20250608/gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c	Sun Jun  8 22:32:27 2025
***************
*** 0 ****
--- 1,34 ----
+ /* Test if SIMD fused unsigned halving adds are generated */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ #include <arm_neon.h>
+ 
+ #define FUSED_SIMD_UHADD(vectype, q, ts, mask) \
+   vectype simd_uhadd ## q ## _ ## ts ## _1 (vectype a) \
+   { \
+     vectype v1 = vand ## q ## _ ## ts (a, vdup ## q ## _n_ ## ts (mask)); \
+     vectype v2 = vdup ## q ## _n_ ## ts (mask); \
+     return vshr ## q ## _n_ ## ts (vadd ## q ## _ ## ts (v1, v2), 1); \
+   } \
+   \
+   vectype simd_uhadd ## q ## _ ## ts ## _2 (vectype a, vectype b) \
+   { \
+     vectype v1 = vand ## q ## _ ## ts (a, vdup ## q ## _n_ ## ts (mask)); \
+     vectype v2 = vand ## q ## _ ## ts (b, vdup ## q ## _n_ ## ts (mask)); \
+     return vshr ## q ## _n_ ## ts (vadd ## q ## _ ## ts (v1, v2), 1); \
+   }
+ 
+ FUSED_SIMD_UHADD (uint8x8_t, , u8, 0x7f)
+ FUSED_SIMD_UHADD (uint8x16_t, q, u8, 0x7f)
+ FUSED_SIMD_UHADD (uint16x4_t, , u16, 0x7fff)
+ FUSED_SIMD_UHADD (uint16x8_t, q, u16, 0x7fff)
+ FUSED_SIMD_UHADD (uint32x2_t, , u32, 0x7fffffff)
+ FUSED_SIMD_UHADD (uint32x4_t, q, u32, 0x7fffffff)
+ 
+ /* { dg-final { scan-assembler-times {\tuhadd\tv[0-9]+\.8b,} 2 } } */
+ /* { dg-final { scan-assembler-times {\tuhadd\tv[0-9]+\.16b,} 2 } } */
+ /* { dg-final { scan-assembler-times {\tuhadd\tv[0-9]+\.4h,} 2 } } */
+ /* { dg-final { scan-assembler-times {\tuhadd\tv[0-9]+\.8h,} 2 } } */
+ /* { dg-final { scan-assembler-times {\tuhadd\tv[0-9]+\.2s,} 2 } } */
+ /* { dg-final { scan-assembler-times {\tuhadd\tv[0-9]+\.4s,} 2 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c gcc-16-20250608/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c	Sun Jun  1 22:32:26 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/aarch64/sve/pr96357.c	Sun Jun  8 22:32:27 2025
*************** int d;
*** 5,14 ****
  
  void
  f1(char f, char *g, char *h, char *l, char *n) {
!   double i = d, j = 1.0 - f, k = j ? d : j;
!   if (k == 1.0)
!     i = 0.0;
!   *l = *n = *g = *h = i * 0.5;
  }
  
  void
--- 5,14 ----
  
  void
  f1(char f, char *g, char *h, char *l, char *n) {
!   double j = 1.0 - f, k = j ? d : j;
! 
!   char i = (k == 1.0) ? 10 : 50;
!   *l = *n = *g = *h = i;
  }
  
  void
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/aarch64/vld2-1.c gcc-16-20250608/gcc/testsuite/gcc.target/aarch64/vld2-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/aarch64/vld2-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/aarch64/vld2-1.c	Sun Jun  8 22:32:28 2025
***************
*** 0 ****
--- 1,45 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop1-details" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
+ /* PR tree-optimization/89606 */
+ 
+ #include <arm_neon.h>
+ 
+ /*
+ **func1:
+ **	ld2	{v0.2d - v1.2d}, \[x0\]
+ **	ld2	{v0.d - v1.d}\[1\], \[x1\]
+ **	ret
+ */
+ float64x2x2_t func1(const double *p1, const double *p2)
+ {
+     float64x2x2_t v = vld2q_f64(p1);
+     return vld2q_lane_f64(p2, v, 1);
+ }
+ 
+ /*
+ **func2:
+ **	ld2	{v0.2s - v1.2s}, \[x0\]
+ **	ld2	{v0.s - v1.s}\[1\], \[x1\]
+ **	ret
+ */
+ float32x2x2_t func2(const float *p1, const float *p2)
+ {
+     float32x2x2_t v = vld2_f32(p1);
+     return vld2_lane_f32(p2, v, 1);
+ }
+ 
+ /*
+ **func3:
+ **	ld2	{v([0-9]+).2s - v([0-9]+).2s}, \[x1\]
+ **	ld2	{v\1.s - v\2.s}\[1\], \[x2\]
+ **	stp	d\1, d\2, \[x0\]
+ **	ret
+ */
+ void func3(float32x2x2_t *p, const float *p1, const float *p2)
+ {
+     float32x2x2_t v = vld2_f32(p1);
+     *p = vld2_lane_f32(p2, v, 1);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "after previous" 3 "forwprop1" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/arc/fma-1.c gcc-16-20250608/gcc/testsuite/gcc.target/arc/fma-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/arc/fma-1.c	Sun Jun  1 22:32:26 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/arc/fma-1.c	Sun Jun  8 22:32:28 2025
***************
*** 2,8 ****
  /* { dg-skip-if "FPU not available" { arc700 || arc6xx } } */
  /* { dg-options "-s -std=gnu11  -O2 -frounding-math -mfpu=fpus_all" } */
  
! const float a, b = 7.8539818525e01;
  
  /* Check if the fma operation is generated correctly.  */
  
--- 2,9 ----
  /* { dg-skip-if "FPU not available" { arc700 || arc6xx } } */
  /* { dg-options "-s -std=gnu11  -O2 -frounding-math -mfpu=fpus_all" } */
  
! const float b = 7.8539818525e01;
! extern const float a;
  
  /* Check if the fma operation is generated correctly.  */
  
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120032-1.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120032-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120032-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120032-1.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mlzcnt" } */
+ 
+ unsigned int
+ ZSTD_countLeadingZeros32_fallback(unsigned int val)
+ {
+   static const unsigned int DeBruijnClz[32]
+     = { 0, 9, 1, 10, 13, 21, 2, 29,
+ 	11, 14, 16, 18, 22, 25, 3, 30,
+ 	8, 12, 20, 28, 15, 17, 24, 7,
+ 	19, 27, 23, 6, 26, 5, 4, 31};
+   if (val == 0)
+     __builtin_abort ();
+   val |= val >> 1;
+   val |= val >> 2;
+   val |= val >> 4;
+   val |= val >> 8;
+   val |= val >> 16;
+   return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27];
+ }
+ 
+ /* { dg-final { scan-assembler "lzcnt" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120032-2.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120032-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120032-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120032-2.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mlzcnt" } */
+ 
+ unsigned int
+ ZSTD_countLeadingZeros32_fallback(unsigned int val)
+ {
+   static const unsigned char DeBruijnClz[32]
+     = { 0, 9, 1, 10, 13, 21, 2, 29,
+ 	11, 14, 16, 18, 22, 25, 3, 30,
+ 	8, 12, 20, 28, 15, 17, 24, 7,
+ 	19, 27, 23, 6, 26, 5, 4, 31};
+   if (val == 0)
+     __builtin_abort ();
+   val |= val >> 1;
+   val |= val >> 2;
+   val |= val >> 4;
+   val |= val >> 8;
+   val |= val >> 16;
+   return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27];
+ }
+ 
+ /* { dg-final { scan-assembler "lzcnt" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120032-3.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120032-3.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120032-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120032-3.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mlzcnt" } */
+ 
+ unsigned int
+ ZSTD_countLeadingZeros32_fallback(unsigned int val)
+ {
+   static const unsigned int DeBruijnClz[32]
+     = { 0, 9, 1, 10, 13, 21, 2, 29,
+ 	11, 14, 16, 18, 22, 25, 3, 30,
+ 	8, 12, 20, 28, 15, 17, 24, 7,
+ 	19, 27, 23, 6, 26, 5, 4, 31};
+   val |= val >> 1;
+   val |= val >> 2;
+   val |= val >> 4;
+   val |= val >> 8;
+   val |= val >> 16;
+   return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27];
+ }
+ 
+ /* { dg-final { scan-assembler "lzcnt" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120553.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120553.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr120553.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr120553.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2" } */
+ 
+ long long foo (long long c) { return c >= 0 ? 0x400000000ll : -1ll; }
+ 
+ /* { dg-final { scan-assembler "bts" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr49095-2.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr49095-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr49095-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr49095-2.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,73 ----
+ /* PR rtl-optimization/49095 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-Os -fno-shrink-wrap -masm=att -mapxf" } */
+ 
+ void foo (void *);
+ 
+ int *
+ f1 (int *x)
+ {
+   if (!--*x)
+     foo (x);
+   return x;
+ }
+ 
+ int
+ g1 (int x)
+ {
+   if (!--x)
+     foo ((void *) 0);
+   return x;
+ }
+ 
+ #define F(T, OP, OPN) \
+ T *			\
+ f##T##OPN (T *x, T y)	\
+ {			\
+   *x OP y;		\
+   if (!*x)		\
+     foo (x);		\
+   return x;		\
+ }			\
+ 			\
+ T			\
+ g##T##OPN (T x, T y)	\
+ {			\
+   x OP y;		\
+   if (!x)		\
+     foo ((void *) 0);	\
+   return x;		\
+ }			\
+ 			\
+ T *			\
+ h##T##OPN (T *x)	\
+ {			\
+   *x OP 24;		\
+   if (!*x)		\
+     foo (x);		\
+   return x;		\
+ }			\
+ 			\
+ T			\
+ i##T##OPN (T x, T y)	\
+ {			\
+   x OP 24;		\
+   if (!x)		\
+     foo ((void *) 0);	\
+   return x;		\
+ }
+ 
+ #define G(T) \
+ F (T, +=, plus)		\
+ F (T, -=, minus)	\
+ F (T, &=, and)		\
+ F (T, |=, or)		\
+ F (T, ^=, xor)
+ 
+ G (char)
+ G (short)
+ G (int)
+ G (long)
+ 
+ /* { dg-final { scan-assembler-not "test\[lq\]" } } */
+ /* { dg-final { scan-assembler-not "\\(%\[re\]di\\), %" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-13.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-13.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-13.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-13.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,59 ----
+ /* PR middle-end/79173 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2 -fno-stack-protector -masm=att -mapxf" } */
+ /* { dg-final { scan-assembler-times "addq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "subq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "addl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "subl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ 
+ static unsigned long
+ uaddc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out)
+ {
+   unsigned long r;
+   unsigned long c1 = __builtin_add_overflow (x, y, &r);
+   unsigned long c2 = __builtin_add_overflow (r, carry_in, &r);
+   *carry_out = c1 + c2;
+   return r;
+ }
+ 
+ static unsigned long
+ usubc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out)
+ {
+   unsigned long r;
+   unsigned long c1 = __builtin_sub_overflow (x, y, &r);
+   unsigned long c2 = __builtin_sub_overflow (r, carry_in, &r);
+   *carry_out = c1 + c2;
+   return r;
+ }
+ 
+ void
+ foo (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = uaddc (p[0], q[0], 0, &c);
+   p[1] = uaddc (p[1], q[1], c, &c);
+   p[2] = uaddc (p[2], q[2], c, &c);
+   p[3] = uaddc (p[3], q[3], c, &c);
+ }
+ 
+ void
+ bar (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = usubc (p[0], q[0], 0, &c);
+   p[1] = usubc (p[1], q[1], c, &c);
+   p[2] = usubc (p[2], q[2], c, &c);
+   p[3] = usubc (p[3], q[3], c, &c);
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-14.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-14.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-14.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-14.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,59 ----
+ /* PR middle-end/79173 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2 -fno-stack-protector -masm=att -mapxf" } */
+ /* { dg-final { scan-assembler-times "addq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "subq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "addl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "subl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ 
+ static unsigned long
+ uaddc (unsigned long x, unsigned long y, _Bool carry_in, _Bool *carry_out)
+ {
+   unsigned long r;
+   _Bool c1 = __builtin_add_overflow (x, y, &r);
+   _Bool c2 = __builtin_add_overflow (r, carry_in, &r);
+   *carry_out = c1 | c2;
+   return r;
+ }
+ 
+ static unsigned long
+ usubc (unsigned long x, unsigned long y, _Bool carry_in, _Bool *carry_out)
+ {
+   unsigned long r;
+   _Bool c1 = __builtin_sub_overflow (x, y, &r);
+   _Bool c2 = __builtin_sub_overflow (r, carry_in, &r);
+   *carry_out = c1 | c2;
+   return r;
+ }
+ 
+ void
+ foo (unsigned long *p, unsigned long *q)
+ {
+   _Bool c;
+   p[0] = uaddc (p[0], q[0], 0, &c);
+   p[1] = uaddc (p[1], q[1], c, &c);
+   p[2] = uaddc (p[2], q[2], c, &c);
+   p[3] = uaddc (p[3], q[3], c, &c);
+ }
+ 
+ void
+ bar (unsigned long *p, unsigned long *q)
+ {
+   _Bool c;
+   p[0] = usubc (p[0], q[0], 0, &c);
+   p[1] = usubc (p[1], q[1], c, &c);
+   p[2] = usubc (p[2], q[2], c, &c);
+   p[3] = usubc (p[3], q[3], c, &c);
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-15.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-15.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-15.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-15.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,61 ----
+ /* PR middle-end/79173 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2 -fno-stack-protector -masm=att -mapxf" } */
+ /* { dg-final { scan-assembler-times "addq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "subq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "addl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "subl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ 
+ static unsigned long
+ uaddc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out)
+ {
+   unsigned long r;
+   unsigned long c1 = __builtin_add_overflow (x, y, &r);
+   unsigned long c2 = __builtin_add_overflow (r, carry_in, &r);
+   *carry_out = c1 + c2;
+   return r;
+ }
+ 
+ static unsigned long
+ usubc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out)
+ {
+   unsigned long r;
+   unsigned long c1 = __builtin_sub_overflow (x, y, &r);
+   unsigned long c2 = __builtin_sub_overflow (r, carry_in, &r);
+   *carry_out = c1 + c2;
+   return r;
+ }
+ 
+ unsigned long
+ foo (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = uaddc (p[0], q[0], 0, &c);
+   p[1] = uaddc (p[1], q[1], c, &c);
+   p[2] = uaddc (p[2], q[2], c, &c);
+   p[3] = uaddc (p[3], q[3], c, &c);
+   return c;
+ }
+ 
+ unsigned long
+ bar (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = usubc (p[0], q[0], 0, &c);
+   p[1] = usubc (p[1], q[1], c, &c);
+   p[2] = usubc (p[2], q[2], c, &c);
+   p[3] = usubc (p[3], q[3], c, &c);
+   return c;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-16.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-16.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,61 ----
+ /* PR middle-end/79173 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2 -fno-stack-protector -masm=att -mapxf" } */
+ /* { dg-final { scan-assembler-times "addq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "subq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "sbbq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "addl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "subl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "sbbl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ 
+ static unsigned long
+ uaddc (unsigned long x, unsigned long y, _Bool carry_in, _Bool *carry_out)
+ {
+   unsigned long r;
+   _Bool c1 = __builtin_add_overflow (x, y, &r);
+   _Bool c2 = __builtin_add_overflow (r, carry_in, &r);
+   *carry_out = c1 ^ c2;
+   return r;
+ }
+ 
+ static unsigned long
+ usubc (unsigned long x, unsigned long y, _Bool carry_in, _Bool *carry_out)
+ {
+   unsigned long r;
+   _Bool c1 = __builtin_sub_overflow (x, y, &r);
+   _Bool c2 = __builtin_sub_overflow (r, carry_in, &r);
+   *carry_out = c1 ^ c2;
+   return r;
+ }
+ 
+ _Bool
+ foo (unsigned long *p, unsigned long *q)
+ {
+   _Bool c;
+   p[0] = uaddc (p[0], q[0], 0, &c);
+   p[1] = uaddc (p[1], q[1], c, &c);
+   p[2] = uaddc (p[2], q[2], c, &c);
+   p[3] = uaddc (p[3], q[3], c, &c);
+   return c;
+ }
+ 
+ _Bool
+ bar (unsigned long *p, unsigned long *q)
+ {
+   _Bool c;
+   p[0] = usubc (p[0], q[0], 0, &c);
+   p[1] = usubc (p[1], q[1], c, &c);
+   p[2] = usubc (p[2], q[2], c, &c);
+   p[3] = usubc (p[3], q[3], c, &c);
+   return c;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-17.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-17.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-17.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-17.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,32 ----
+ /* PR middle-end/79173 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2 -fno-stack-protector -masm=att -mapxf" } */
+ /* { dg-final { scan-assembler-times "addq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "addl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ 
+ static unsigned long
+ uaddc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out)
+ {
+   unsigned long r = x + y;
+   unsigned long c1 = r < x;
+   r += carry_in;
+   unsigned long c2 = r < carry_in;
+   *carry_out = c1 + c2;
+   return r;
+ }
+ 
+ void
+ foo (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = uaddc (p[0], q[0], 0, &c);
+   p[1] = uaddc (p[1], q[1], c, &c);
+   p[2] = uaddc (p[2], q[2], c, &c);
+   p[3] = uaddc (p[3], q[3], c, &c);
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-18.c gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-18.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/i386/pr79173-18.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/i386/pr79173-18.c	Sun Jun  8 22:32:30 2025
***************
*** 0 ****
--- 1,33 ----
+ /* PR middle-end/79173 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2 -fno-stack-protector -masm=att -mapxf" } */
+ /* { dg-final { scan-assembler-times "addq\t%r\[^\n\r]*, \\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 8\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 16\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "adcq\t%r\[^\n\r]*, 24\\\(%rdi\\\)" 1 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "addl\t%e\[^\n\r]*, \\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 4\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 8\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ /* { dg-final { scan-assembler-times "adcl\t%e\[^\n\r]*, 12\\\(%e\[^\n\r]*\\\)" 1 { target ia32 } } } */
+ 
+ static unsigned long
+ uaddc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out)
+ {
+   unsigned long r = x + y;
+   unsigned long c1 = r < x;
+   r += carry_in;
+   unsigned long c2 = r < carry_in;
+   *carry_out = c1 + c2;
+   return r;
+ }
+ 
+ unsigned long
+ foo (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = uaddc (p[0], q[0], 0, &c);
+   p[1] = uaddc (p[1], q[1], c, &c);
+   p[2] = uaddc (p[2], q[2], c, &c);
+   p[3] = uaddc (p[3], q[3], c, &c);
+   return c;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/or1k/call-1.c gcc-16-20250608/gcc/testsuite/gcc.target/or1k/call-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/or1k/call-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/or1k/call-1.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mcmodel=large" } */
+ 
+ /* Generate local and global function calls. */
+ 
+ extern int geti (void);
+ 
+ __attribute__ ((noinline)) int
+ calc (int a, int b)
+ {
+   return a * b + 255;
+ }
+ 
+ int
+ main (void)
+ {
+   return geti () + calc (3, 4);
+ }
+ 
+ /* Ensure the 2 calls use register not immediate jumps.  */
+ /* { dg-final { scan-assembler-times "l.movhi\\s+" 2 } } */
+ /* { dg-final { scan-assembler-times "l.jalr\\s+" 2 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/or1k/got-1.c gcc-16-20250608/gcc/testsuite/gcc.target/or1k/got-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/or1k/got-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/or1k/got-1.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fPIC -mcmodel=large" } */
+ 
+ /* Generate references to the GOT. */
+ 
+ extern int geti (void);
+ extern int j;
+ 
+ int
+ calc (int a)
+ {
+   return a * j + geti ();
+ }
+ 
+ /* Ensure the 2 references use gotha relocations and that the function call does
+    not use an immediate jump instruction.  */
+ /* { dg-final { scan-assembler-times "gotha" 2 } } */
+ /* { dg-final { scan-assembler "l.jalr\\s+" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/or1k/return-2.c gcc-16-20250608/gcc/testsuite/gcc.target/or1k/return-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/or1k/return-2.c	Sun Jun  1 22:32:28 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/or1k/return-2.c	Sun Jun  8 22:32:31 2025
*************** struct a getstruct (long aa) {
*** 16,19 ****
  /* Ensure our return value is returned on stack.  */
  /* { dg-final { scan-assembler-not "r12," } } */
  /* { dg-final { scan-assembler "l.or\\s+r11, r3, r3" } } */
! /* { dg-final { scan-assembler-times "l.sw\\s+\\d+.r11.," 3 } } */
--- 16,19 ----
  /* Ensure our return value is returned on stack.  */
  /* { dg-final { scan-assembler-not "r12," } } */
  /* { dg-final { scan-assembler "l.or\\s+r11, r3, r3" } } */
! /* { dg-final { scan-assembler-times "l.sw\\s+\\d+.r3.," 3 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-59.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-59.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-59.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-59.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_smcntrpmf -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-60.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-60.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-60.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-60.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_svbare -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-shlocofideleg.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-shlocofideleg.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-shlocofideleg.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-shlocofideleg.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_shlcofideleg -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-smcsrind.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-smcsrind.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-smcsrind.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-smcsrind.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_smcsrind -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-smrnmi.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-smrnmi.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-smrnmi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-smrnmi.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_smrnmi -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-ssccptr.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-ssccptr.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-ssccptr.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-ssccptr.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_ssccptr -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-sscounterenw.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-sscounterenw.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-sscounterenw.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-sscounterenw.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_sscounterenw -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-sstvala.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-sstvala.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-sstvala.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-sstvala.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_sstvala -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-sstvecd.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-sstvecd.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-sstvecd.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-sstvecd.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_sstvecd -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-ssu64xl.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-ssu64xl.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/arch-ssu64xl.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/arch-ssu64xl.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64i_ssu64xl -mabi=lp64" } */
+ int foo()
+ {
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-kunminghu.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-kunminghu.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-kunminghu.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-kunminghu.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,95 ----
+ /* { dg-do compile { target { rv64 } } } */
+ /* { dg-skip-if "-march given" { *-*-* } { "-march=*" } } */
+ /* { dg-options "-mcpu=xiangshan-kunminghu" } */
+ /* XiangShan Kunminghu => rv64imafdcbvh_sdtrig_sha_shcounterenw_shgatpa
+                       _shlcofideleg_shtvala_shvsatpa_shvstvala_shvstvecd
+                       _smaia_smcsrind_smdbltrp_smmpm_smnpm_smrnmi_smstateen
+                       _ssaia_ssccptr_sscofpmf_sscounterenw_sscsrind_ssdbltrp
+                       _ssnpm_sspm_ssstateen_ssstrict_sstc_sstvala_sstvecd
+                       _ssu64xl_supm_svade_svbare_svinval_svnapot_svpbmt
+                       _za64rs_zacas_zawrs_zba_zbb_zbc_zbkb_zbkc_zbkx_zbs_zcb
+                       _zcmop_zfa_zfh_zfhmin_zic64b_zicbom_zicbop_zicboz_ziccif
+                       _zicclsm_ziccrse_zicntr_zicond_zicsr_zifencei_zihintpause
+                       _zihpm_zimop_zkn_zknd_zkne_zknh_zksed_zksh_zkt_zvbb
+                       _zvfh_zvfhmin_zvkt_zvl128b_zvl32b_zvl64b */
+ 
+ #if !((__riscv_xlen == 64)		\
+       && !defined(__riscv_32e)		\
+       && defined(__riscv_mul)		\
+       && defined(__riscv_atomic)	\
+       && (__riscv_flen == 64)		\
+       && defined(__riscv_compressed)	\
+       && defined(__riscv_v)		\
+       && defined(__riscv_zic64b)	\
+       && defined(__riscv_zicbom)	\
+       && defined(__riscv_zicbop)	\
+       && defined(__riscv_zicboz)	\
+       && defined(__riscv_ziccif)	\
+       && defined(__riscv_zicclsm)	\
+       && defined(__riscv_ziccrse)	\
+       && defined(__riscv_zicntr)	\
+       && defined(__riscv_zicond)	\
+       && defined(__riscv_zicsr)	\
+       && defined(__riscv_zifencei)	\
+       && defined(__riscv_zihintpause)	\
+       && defined(__riscv_zihpm)	\
+       && defined(__riscv_zimop)	\
+       && defined(__riscv_za64rs)	\
+       && defined(__riscv_zacas)	\
+       && defined(__riscv_zawrs)	\
+       && defined(__riscv_zba)	\
+       && defined(__riscv_zbb)	\
+       && defined(__riscv_zbc)	\
+       && defined(__riscv_zbs)	\
+       && defined(__riscv_zbkb)	\
+       && defined(__riscv_zbkc)	\
+       && defined(__riscv_zbkx)	\
+       && defined(__riscv_zcb)	\
+       && defined(__riscv_zcmop)	\
+       && defined(__riscv_zfa)	\
+       && defined(__riscv_zfh)	\
+       && defined(__riscv_zknd)	\
+       && defined(__riscv_zkne)	\
+       && defined(__riscv_zknh)	\
+       && defined(__riscv_zksed)	\
+       && defined(__riscv_zksh)	\
+       && defined(__riscv_zkt)	\
+       && defined(__riscv_zvbb)	\
+       && defined(__riscv_zvfh)	\
+       && defined(__riscv_zvkt)	\
+       && defined(__riscv_sdtrig)	\
+       && defined(__riscv_sha)		\
+       && defined(__riscv_shlcofideleg)	\
+       && defined(__riscv_smaia)	\
+       && defined(__riscv_smcsrind)	\
+       && defined(__riscv_smdbltrp)	\
+       && defined(__riscv_smmpm)	\
+       && defined(__riscv_smnpm)	\
+       && defined(__riscv_smrnmi)	\
+       && defined(__riscv_smstateen)	\
+       && defined(__riscv_ssaia)	\
+       && defined(__riscv_ssccptr)	\
+       && defined(__riscv_sscofpmf)	\
+       && defined(__riscv_sscounterenw)	\
+       && defined(__riscv_sscsrind)	\
+       && defined(__riscv_ssdbltrp)	\
+       && defined(__riscv_ssnpm)	\
+       && defined(__riscv_sspm)	\
+       && defined(__riscv_ssstrict)	\
+       && defined(__riscv_sstc)		\
+       && defined(__riscv_sstvala)	\
+       && defined(__riscv_sstvecd)	\
+       && defined(__riscv_ssu64xl)	\
+       && defined(__riscv_supm)		\
+       && defined(__riscv_svade)	\
+       && defined(__riscv_svbare)	\
+       && defined(__riscv_svinval)	\
+       && defined(__riscv_svnapot)	\
+       && defined(__riscv_svpbmt))
+ #error "unexpected arch"
+ #endif
+ 
+ int main()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/nozicond-1.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/nozicond-1.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/nozicond-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/nozicond-1.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target { rv64 } } } */
+ /* { dg-additional-options "-march=rv64gc_zicond -mabi=lp64d -mbranch-cost=4" } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */
+ 
+ 
+ long foo1 (long c) { return c >= 0 ? 1 : -1; }
+ long foo2 (long c) { return c < 0 ? -1 : 1; }
+ 
+ /* { dg-final { scan-assembler-times {srai\t}  2 } } */
+ /* { dg-final { scan-assembler-times {ori\t}  2 } } */
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/nozicond-2.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/nozicond-2.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/nozicond-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/nozicond-2.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target { rv64 } } } */
+ /* { dg-additional-options "-march=rv64gc_zicond -mabi=lp64d -mbranch-cost=4" } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */
+ 
+ 
+ long foo1 (long c) { return c < 0 ? 1 : -1; }
+ long foo2 (long c) { return c >= 0 ? -1 : 1; }
+ 
+ /* We don't support 4->3 splitters, so this fails.  We could perhaps
+    try to catch it in the expander as a special case rather than waiting
+    for combine.  */
+ /* { dg-final { scan-assembler-times {srai\t} 2 { xfail *-*-* } } } */
+ /* { dg-final { scan-assembler-times {ori\t} 2 { xfail *-*-* } } } */
+ /* { dg-final { scan-assembler-times {not\t} 2 { xfail *-*-* } } } */
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/nozicond-3.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/nozicond-3.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/nozicond-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/nozicond-3.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target { rv64 } } } */
+ /* { dg-additional-options "-march=rv64gc_zicond -mabi=lp64d -mbranch-cost=4" } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" "-Os" "-Oz" } } */
+ 
+ long foo1 (long n) { return n / 4096; }
+ 
+ /* { dg-final { scan-assembler-times {srai\t} 2 } } */
+ /* { dg-final { scan-assembler-times {srli\t} 1 } } */
+ /* { dg-final { scan-assembler-times {add\t} 1 } } */
+ /* { dg-final { scan-assembler-not {czero} } } */
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c	Sun Jun  8 22:32:31 2025
***************
*** 3,15 ****
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 5 } } */
! /* { dg-final { scan-assembler-times {\tvdiv\.vx} 3 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 5 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vx} 3 } } */
  
! /* { dg-final { scan-assembler-times {\tvfdiv\.vv} 3 } } */
! /* { dg-final { scan-assembler-times {\tvfdiv\.vf} 3 } } */
  
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 16 "optimized" } } */
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 6 "optimized" } } */
--- 3,15 ----
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdiv\.vx} } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdivu\.vx} } } */
  
! /* { dg-final { scan-assembler-times {\tvfdiv\.vv} 6 } } */
! /* { dg-final { scan-assembler-not {\tvfdiv\.vf} } } */
  
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 16 "optimized" } } */
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 6 "optimized" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c	Sun Jun  8 22:32:31 2025
***************
*** 3,12 ****
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 5 } } */
! /* { dg-final { scan-assembler-times {\tvdiv\.vx} 3 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 5 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vx} 3 } } */
  
  /* Division by constant is done by calculating a reciprocal and
     then multiplying.  Hence we do not expect 6 vfdivs.  */
--- 3,12 ----
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdiv\.vx} } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdivu\.vx} } } */
  
  /* Division by constant is done by calculating a reciprocal and
     then multiplying.  Hence we do not expect 6 vfdivs.  */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c	Sun Jun  8 22:32:31 2025
***************
*** 3,15 ****
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 4 } } */
! /* { dg-final { scan-assembler-times {\tvdiv\.vx} 4 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 4 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vx} 4 } } */
  
! /* { dg-final { scan-assembler-times {\tvfdiv\.vv} 3 } } */
! /* { dg-final { scan-assembler-times {\tvfdiv\.vf} 3 } } */
  
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 16 "optimized" } } */
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 6 "optimized" } } */
--- 3,15 ----
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdiv\.vx} } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdivu\.vx} } } */
  
! /* { dg-final { scan-assembler-times {\tvfdiv\.vv} 6 } } */
! /* { dg-final { scan-assembler-not {\tvfdiv\.vf} } } */
  
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 16 "optimized" } } */
  /* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 6 "optimized" } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c	Sun Jun  8 22:32:31 2025
***************
*** 3,12 ****
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 4 } } */
! /* { dg-final { scan-assembler-times {\tvdiv\.vx} 4 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 4 } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vx} 4 } } */
  
  /* Division by constant is done by calculating a reciprocal and
     then multiplying.  Hence we do not expect 6 vfdivs.  */
--- 3,12 ----
  
  #include "vdiv-template.h"
  
! /* { dg-final { scan-assembler-times {\tvdiv\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdiv\.vx} } } */
! /* { dg-final { scan-assembler-times {\tvdivu\.vv} 8 } } */
! /* { dg-final { scan-assembler-not {\tvdivu\.vx} } } */
  
  /* Division by constant is done by calculating a reciprocal and
     then multiplying.  Hence we do not expect 6 vfdivs.  */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.c	Sun Jun  8 22:32:31 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O3 -march=rv64gcv -mabi=lp64d --param=autovec-mode=V4QI -fdump-tree-vect-details" } */
  
  /* By default we will use RVVM1SI mode for vectorization because N is not
     known.  Check that we use V4QI and create an epilogue when the autovec-mode
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O3 -march=rv64gcv -mabi=lp64d --param=riscv-autovec-mode=V4QI -fdump-tree-vect-details" } */
  
  /* By default we will use RVVM1SI mode for vectorization because N is not
     known.  Check that we use V4QI and create an epilogue when the autovec-mode
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d --param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_0(_Float16, +, add)
+ DEF_VF_MULOP_CASE_0(_Float16, -, sub)
+ 
+ /* { dg-final { scan-assembler-times {vfmadd.vf} 1 } } */
+ /* { dg-final { scan-assembler-times {vfmsub.vf} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_0(float, +, add)
+ DEF_VF_MULOP_CASE_0(float, -, sub)
+ 
+ /* { dg-final { scan-assembler-times {vfmadd.vf} 1 } } */
+ /* { dg-final { scan-assembler-times {vfmsub.vf} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_0(double, +, add)
+ DEF_VF_MULOP_CASE_0(double, -, sub)
+ 
+ /* { dg-final { scan-assembler-times {vfmadd.vf} 1 } } */
+ /* { dg-final { scan-assembler-times {vfmsub.vf} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d --param=fpr2vr-cost=1" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_0(_Float16, +, add)
+ DEF_VF_MULOP_CASE_0(_Float16, -, sub)
+ 
+ /* { dg-final { scan-assembler-not {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler-not {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=1" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_0(float, +, add)
+ DEF_VF_MULOP_CASE_0(float, -, sub)
+ 
+ /* { dg-final { scan-assembler-not {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler-not {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=1" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_0(float, +, add)
+ DEF_VF_MULOP_CASE_0(float, -, sub)
+ 
+ /* { dg-final { scan-assembler-not {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler-not {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d --param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_1(_Float16, +, add, VF_MULOP_BODY_X16)
+ DEF_VF_MULOP_CASE_1(_Float16, -, sub, VF_MULOP_BODY_X16)
+ 
+ /* { dg-final { scan-assembler {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_1(float, +, add, VF_MULOP_BODY_X16)
+ DEF_VF_MULOP_CASE_1(float, -, sub, VF_MULOP_BODY_X16)
+ 
+ /* { dg-final { scan-assembler {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_1(double, +, add, VF_MULOP_BODY_X16)
+ DEF_VF_MULOP_CASE_1(double, -, sub, VF_MULOP_BODY_X16)
+ 
+ /* { dg-final { scan-assembler {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d --param=fpr2vr-cost=4" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_1(_Float16, +, add, VF_MULOP_BODY_X16)
+ DEF_VF_MULOP_CASE_1(_Float16, -, sub, VF_MULOP_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler-not {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=4" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_1(float, +, add, VF_MULOP_BODY_X16)
+ DEF_VF_MULOP_CASE_1(float, -, sub, VF_MULOP_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler-not {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d --param=fpr2vr-cost=4" } */
+ 
+ #include "vf_mulop.h"
+ 
+ DEF_VF_MULOP_CASE_1(double, +, add, VF_MULOP_BODY_X16)
+ DEF_VF_MULOP_CASE_1(double, -, sub, VF_MULOP_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfmadd.vf} } } */
+ /* { dg-final { scan-assembler-not {vfmsub.vf} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,61 ----
+ #ifndef HAVE_DEFINED_VF_MULOP_H
+ #define HAVE_DEFINED_VF_MULOP_H
+ 
+ #include <stdint.h>
+ 
+ #define DEF_VF_MULOP_CASE_0(T, OP, NAME)                                       \
+   void test_vf_mulop_##NAME##_##T##_case_0(T *restrict out, T *restrict in,    \
+                                            T x, unsigned n) {                  \
+     for (unsigned i = 0; i < n; i++)                                           \
+       out[i] = in[i] OP out[i] * x;                                            \
+   }
+ #define DEF_VF_MULOP_CASE_0_WRAP(T, OP, NAME) DEF_VF_MULOP_CASE_0(T, OP, NAME)
+ #define RUN_VF_MULOP_CASE_0(T, NAME, out, in, x, n)                            \
+   test_vf_mulop_##NAME##_##T##_case_0(out, in, x, n)
+ #define RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)                       \
+   RUN_VF_MULOP_CASE_0(T, NAME, out, in, x, n)
+ 
+ #define VF_MULOP_BODY(op)                                                      \
+   out[k + 0] = in[k + 0] op tmp * out[k + 0];                                  \
+   out[k + 1] = in[k + 1] op tmp * out[k + 1];                                  \
+   k += 2;
+ 
+ #define VF_MULOP_BODY_X4(op)                                                   \
+   VF_MULOP_BODY(op)                                                            \
+   VF_MULOP_BODY(op)
+ 
+ #define VF_MULOP_BODY_X8(op)                                                   \
+   VF_MULOP_BODY_X4(op)                                                         \
+   VF_MULOP_BODY_X4(op)
+ 
+ #define VF_MULOP_BODY_X16(op)                                                  \
+   VF_MULOP_BODY_X8(op)                                                         \
+   VF_MULOP_BODY_X8(op)
+ 
+ #define VF_MULOP_BODY_X32(op)                                                  \
+   VF_MULOP_BODY_X16(op)                                                        \
+   VF_MULOP_BODY_X16(op)
+ 
+ #define VF_MULOP_BODY_X64(op)                                                  \
+   VF_MULOP_BODY_X32(op)                                                        \
+   VF_MULOP_BODY_X32(op)
+ 
+ #define VF_MULOP_BODY_X128(op)                                                 \
+   VF_MULOP_BODY_X64(op)                                                        \
+   VF_MULOP_BODY_X64(op)
+ 
+ #define DEF_VF_MULOP_CASE_1(T, OP, NAME, BODY)                                       \
+   void test_vf_mulop_##NAME##_##T##_case_1(T *restrict out, T *restrict in,    \
+                                            T x, unsigned n) {                  \
+     unsigned k = 0;                                                            \
+     T tmp = x + 3;                                                             \
+                                                                                \
+     while (k < n) {                                                            \
+       tmp = tmp * 0x3f;                                                        \
+       BODY(OP)                                                                 \
+     }                                                                          \
+   }
+ #define DEF_VF_MULOP_CASE_1_WRAP(T, OP, NAME, BODY)                            \
+   DEF_VF_MULOP_CASE_1(T, OP, NAME, BODY)
+ 
+ #endif
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,413 ----
+ #ifndef HAVE_DEFINED_VF_MULOP_DATA_H
+ #define HAVE_DEFINED_VF_MULOP_DATA_H
+ 
+ #define N 16
+ 
+ #define TEST_MULOP_DATA(T, NAME)      test_##T##_##NAME##_data
+ #define TEST_MULOP_DATA_WRAP(T, NAME) TEST_MULOP_DATA(T, NAME)
+ 
+ 
+ _Float16 TEST_MULOP_DATA(_Float16, add)[][4][N] =
+ {
+   {
+     {     0.30f16 },
+     {
+           1.48f16,       1.48f16,       1.48f16,       1.48f16,
+           0.80f16,       0.80f16,       0.80f16,       0.80f16,
+           0.62f16,       0.62f16,       0.62f16,       0.62f16,
+           1.18f16,       1.18f16,       1.18f16,       1.18f16,
+     },
+     {
+           1.25f16,       1.25f16,       1.25f16,       1.25f16,
+           1.89f16,       1.89f16,       1.89f16,       1.89f16,
+           1.57f16,       1.57f16,       1.57f16,       1.57f16,
+           1.21f16,       1.21f16,       1.21f16,       1.21f16,
+     },
+     {
+           1.85f16,       1.85f16,       1.85f16,       1.85f16,
+           1.37f16,       1.37f16,       1.37f16,       1.37f16,
+           1.09f16,       1.09f16,       1.09f16,       1.09f16,
+           1.54f16,       1.54f16,       1.54f16,       1.54f16,
+     }
+   },
+   {
+     {   -0.505f16 },
+     {
+          -2.38f16,      -2.38f16,      -2.38f16,      -2.38f16,
+          -2.06f16,      -2.06f16,      -2.06f16,      -2.06f16,
+          -1.69f16,      -1.69f16,      -1.69f16,      -1.69f16,
+           -1.1f16,       -1.1f16,       -1.1f16,       -1.1f16,
+     },
+     {
+          -1.77f16,      -1.77f16,      -1.77f16,      -1.77f16,
+           -1.6f16,       -1.6f16,       -1.6f16,       -1.6f16,
+            -1.f16,        -1.f16,        -1.f16,        -1.f16,
+          -1.23f16,      -1.23f16,      -1.23f16,      -1.23f16,
+     },
+     {
+          -1.49f16,      -1.49f16,      -1.49f16,      -1.49f16,
+          -1.25f16,      -1.25f16,      -1.25f16,      -1.25f16,
+          -1.18f16,      -1.18f16,      -1.18f16,      -1.18f16,
+         -0.479f16,     -0.479f16,     -0.479f16,     -0.479f16,
+     }
+   },
+   {
+     {   4.95e-04f16 },
+     {
+     1.4266e-05f16, 1.4266e-05f16, 1.4266e-05f16, 1.4266e-05f16,
+     1.8129e-05f16, 1.8129e-05f16, 1.8129e-05f16, 1.8129e-05f16,
+     -8.4710e-06f16, -8.4710e-06f16, -8.4710e-06f16, -8.4710e-06f16,
+     3.7876e-05f16, 3.7876e-05f16, 3.7876e-05f16, 3.7876e-05f16,
+     },
+     {
+     2.2808e-02f16, 2.2808e-02f16, 2.2808e-02f16, 2.2808e-02f16,
+     3.9633e-02f16, 3.9633e-02f16, 3.9633e-02f16, 3.9633e-02f16,
+     9.9657e-02f16, 9.9657e-02f16, 9.9657e-02f16, 9.9657e-02f16,
+     7.7189e-02f16, 7.7189e-02f16, 7.7189e-02f16, 7.7189e-02f16,
+     },
+     {
+     2.5547e-05f16, 2.5547e-05f16, 2.5547e-05f16, 2.5547e-05f16,
+     3.7732e-05f16, 3.7732e-05f16, 3.7732e-05f16, 3.7732e-05f16,
+     4.0820e-05f16, 4.0820e-05f16, 4.0820e-05f16, 4.0820e-05f16,
+     7.6054e-05f16, 7.6054e-05f16, 7.6054e-05f16, 7.6054e-05f16,
+     }
+   },
+ };
+ 
+ float TEST_MULOP_DATA(float, add)[][4][N] =
+ {
+   {
+     { 43.71f },
+     {
+       -410.28f,    -410.28f,    -410.28f,    -410.28f,
+       -276.91f,    -276.91f,    -276.91f,    -276.91f,
+       -103.38f,    -103.38f,    -103.38f,    -103.38f,
+       -378.24f,    -378.24f,    -378.24f,    -378.24f,
+    },
+    {
+          9.56f,       9.56f,       9.56f,       9.56f,
+          6.39f,       6.39f,       6.39f,       6.39f,
+          2.40f,       2.40f,       2.40f,       2.40f,
+          8.80f,       8.80f,       8.80f,       8.80f,
+    },
+    {
+          7.59f,       7.59f,       7.59f,       7.59f,
+          2.40f,       2.40f,       2.40f,       2.40f,
+          1.52f,       1.52f,       1.52f,       1.52f,
+          6.41f,       6.41f,       6.41f,       6.41f,
+    }
+   },
+   {
+     { 2.04f },
+     {
+        -110.22f,    -110.22f,    -110.22f,    -110.22f,
+         -25.13f,     -25.13f,     -25.13f,     -25.13f,
+        -108.18f,    -108.18f,    -108.18f,    -108.18f,
+        -107.14f,    -107.14f,    -107.14f,    -107.14f,
+     },
+     {
+          64.82f,      64.82f,      64.82f,      64.82f,
+          31.65f,      31.65f,      31.65f,      31.65f,
+          87.32f,      87.32f,      87.32f,      87.32f,
+          58.70f,      58.70f,      58.70f,      58.70f,
+     },
+     {
+          22.01f,      22.01f,      22.01f,      22.01f,
+          39.44f,      39.44f,      39.44f,      39.44f,
+          69.95f,      69.95f,      69.95f,      69.95f,
+          12.61f,      12.61f,      12.61f,      12.61f,
+     }
+   },
+   {
+     { 20.35f },
+     {
+         881.43f,     881.43f,     881.43f,     881.43f,
+        3300.17f,    3300.17f,    3300.17f,    3300.17f,
+        5217.85f,    5217.85f,    5217.85f,    5217.85f,
+          66.57f,      66.57f,      66.57f,      66.57f,
+     },
+     {
+          64.82f,      64.82f,      64.82f,      64.82f,
+          31.65f,      31.65f,      31.65f,      31.65f,
+          87.32f,      87.32f,      87.32f,      87.32f,
+          58.70f,      58.70f,      58.70f,      58.70f,
+     },
+     {
+        2200.52f,    2200.52f,    2200.52f,    2200.52f,
+        3944.25f,    3944.25f,    3944.25f,    3944.25f,
+        6994.81f,    6994.81f,    6994.81f,    6994.81f,
+        1261.12f,    1261.12f,    1261.12f,    1261.12f,
+     }
+   },
+ };
+ 
+ double TEST_MULOP_DATA(double, add)[][4][N] =
+ {
+   {
+     {   1.16e+12 },
+     {
+     1.8757e+45, 1.8757e+45, 1.8757e+45, 1.8757e+45,
+     7.5140e+45, 7.5140e+45, 7.5140e+45, 7.5140e+45,
+     8.2069e+45, 8.2069e+45, 8.2069e+45, 8.2069e+45,
+     4.9456e+45, 4.9456e+45, 4.9456e+45, 4.9456e+45,
+     },
+     {
+     9.0242e+32, 9.0242e+32, 9.0242e+32, 9.0242e+32,
+     3.6908e+32, 3.6908e+32, 3.6908e+32, 3.6908e+32,
+     3.9202e+32, 3.9202e+32, 3.9202e+32, 3.9202e+32,
+     5.0276e+32, 5.0276e+32, 5.0276e+32, 5.0276e+32,
+     },
+     {
+     2.9201e+45, 2.9201e+45, 2.9201e+45, 2.9201e+45,
+     7.9411e+45, 7.9411e+45, 7.9411e+45, 7.9411e+45,
+     8.6606e+45, 8.6606e+45, 8.6606e+45, 8.6606e+45,
+     5.5275e+45, 5.5275e+45, 5.5275e+45, 5.5275e+45,
+     }
+   },
+   {
+     {  -7.29e+23 },
+     {
+     -6.4993e+65, -6.4993e+65, -6.4993e+65, -6.4993e+65,
+     -4.6760e+65, -4.6760e+65, -4.6760e+65, -4.6760e+65,
+     -8.1564e+65, -8.1564e+65, -8.1564e+65, -8.1564e+65,
+     -8.2899e+65, -8.2899e+65, -8.2899e+65, -8.2899e+65,
+     },
+     {
+     -7.7764e+41, -7.7764e+41, -7.7764e+41, -7.7764e+41,
+     -1.9756e+41, -1.9756e+41, -1.9756e+41, -1.9756e+41,
+     -4.8980e+41, -4.8980e+41, -4.8980e+41, -4.8980e+41,
+     -8.1062e+41, -8.1062e+41, -8.1062e+41, -8.1062e+41,
+     },
+     {
+     -8.2928e+64, -8.2928e+64, -8.2928e+64, -8.2928e+64,
+     -3.2356e+65, -3.2356e+65, -3.2356e+65, -3.2356e+65,
+     -4.5850e+65, -4.5850e+65, -4.5850e+65, -4.5850e+65,
+     -2.3794e+65, -2.3794e+65, -2.3794e+65, -2.3794e+65,
+     }
+   },
+   {
+     {   2.02e-03 },
+     {
+     -1.2191e-35, -1.2191e-35, -1.2191e-35, -1.2191e-35,
+     -1.0471e-36, -1.0471e-36, -1.0471e-36, -1.0471e-36,
+     -9.7582e-36, -9.7582e-36, -9.7582e-36, -9.7582e-36,
+     -2.2097e-36, -2.2097e-36, -2.2097e-36, -2.2097e-36,
+     },
+     {
+     9.7703e-33, 9.7703e-33, 9.7703e-33, 9.7703e-33,
+     4.1632e-33, 4.1632e-33, 4.1632e-33, 4.1632e-33,
+     8.1964e-33, 8.1964e-33, 8.1964e-33, 8.1964e-33,
+     4.7314e-33, 4.7314e-33, 4.7314e-33, 4.7314e-33,
+     },
+     {
+     7.5586e-36, 7.5586e-36, 7.5586e-36, 7.5586e-36,
+     7.3684e-36, 7.3684e-36, 7.3684e-36, 7.3684e-36,
+     6.8101e-36, 6.8101e-36, 6.8101e-36, 6.8101e-36,
+     7.3543e-36, 7.3543e-36, 7.3543e-36, 7.3543e-36,
+     }
+   },
+ };
+ 
+ _Float16 TEST_MULOP_DATA(_Float16, sub)[][4][N] =
+ {
+   {
+     {      0.676f16 },
+     {
+           1.39f16,       1.39f16,       1.39f16,       1.39f16,
+           1.68f16,       1.68f16,       1.68f16,       1.68f16,
+           1.63f16,       1.63f16,       1.63f16,       1.63f16,
+           2.12f16,       2.12f16,       2.12f16,       2.12f16,
+     },
+     {
+           1.04f16,       1.04f16,       1.04f16,       1.04f16,
+           1.64f16,       1.64f16,       1.64f16,       1.64f16,
+           1.95f16,       1.95f16,       1.95f16,       1.95f16,
+           1.39f16,       1.39f16,       1.39f16,       1.39f16,
+     },
+     {
+          0.687f16,      0.687f16,      0.687f16,      0.687f16,
+          0.568f16,      0.568f16,      0.568f16,      0.568f16,
+          0.315f16,      0.315f16,      0.315f16,      0.315f16,
+           1.18f16,       1.18f16,       1.18f16,       1.18f16,
+     }
+ },
+   {
+     {     -0.324f16 },
+     {
+         -0.679f16,     -0.679f16,     -0.679f16,     -0.679f16,
+         -0.992f16,     -0.992f16,     -0.992f16,     -0.992f16,
+          -1.34f16,      -1.34f16,      -1.34f16,      -1.34f16,
+         -0.297f16,     -0.297f16,     -0.297f16,     -0.297f16,
+     },
+     {
+          -1.96f16,      -1.96f16,      -1.96f16,      -1.96f16,
+          -1.36f16,      -1.36f16,      -1.36f16,      -1.36f16,
+          -1.05f16,      -1.05f16,      -1.05f16,      -1.05f16,
+          -1.61f16,      -1.61f16,      -1.61f16,      -1.61f16,
+     },
+     {
+          -1.31f16,      -1.31f16,      -1.31f16,      -1.31f16,
+          -1.43f16,      -1.43f16,      -1.43f16,      -1.43f16,
+          -1.68f16,      -1.68f16,      -1.68f16,      -1.68f16,
+          -0.82f16,      -0.82f16,      -0.82f16,      -0.82f16,
+     }
+   },
+   {
+     {   7.08e+01f16 },
+     {
+       4.49e+03f16,   4.49e+03f16,   4.49e+03f16,   4.49e+03f16,
+       7.73e+03f16,   7.73e+03f16,   7.73e+03f16,   7.73e+03f16,
+       8.42e+03f16,   8.42e+03f16,   8.42e+03f16,   8.42e+03f16,
+       9.12e+03f16,   9.12e+03f16,   9.12e+03f16,   9.12e+03f16,
+     },
+     {
+       1.40e+01f16,   1.40e+01f16,   1.40e+01f16,   1.40e+01f16,
+       6.80e+01f16,   6.80e+01f16,   6.80e+01f16,   6.80e+01f16,
+       9.54e+01f16,   9.54e+01f16,   9.54e+01f16,   9.54e+01f16,
+       4.49e+01f16,   4.49e+01f16,   4.49e+01f16,   4.49e+01f16,
+     },
+     {
+       3.50e+03f16,   3.50e+03f16,   3.50e+03f16,   3.50e+03f16,
+       2.91e+03f16,   2.91e+03f16,   2.91e+03f16,   2.91e+03f16,
+       1.66e+03f16,   1.66e+03f16,   1.66e+03f16,   1.66e+03f16,
+       5.94e+03f16,   5.94e+03f16,   5.94e+03f16,   5.94e+03f16,
+     }
+   },
+ };
+ 
+ float TEST_MULOP_DATA(float, sub)[][4][N] =
+ {
+   {
+   {8.51f },
+   {
+        24.21f,      24.21f,      24.21f,      24.21f,
+        40.31f,      40.31f,      40.31f,      40.31f,
+        59.68f,      59.68f,      59.68f,      59.68f,
+        45.42f,      45.42f,      45.42f,      45.42f,
+   },
+   {
+         1.94f,       1.94f,       1.94f,       1.94f,
+         4.24f,       4.24f,       4.24f,       4.24f,
+         6.48f,       6.48f,       6.48f,       6.48f,
+         4.68f,       4.68f,       4.68f,       4.68f,
+   },
+   {
+         7.70f,       7.70f,       7.70f,       7.70f,
+         4.23f,       4.23f,       4.23f,       4.23f,
+         4.54f,       4.54f,       4.54f,       4.54f,
+         5.59f,       5.59f,       5.59f,       5.59f,
+   },
+ },
+   {
+     { 85.14f },
+     {
+        1731.29f,    1731.29f,    1731.29f,    1731.29f,
+        3656.53f,    3656.53f,    3656.53f,    3656.53f,
+        5565.07f,    5565.07f,    5565.07f,    5565.07f,
+        4042.14f,    4042.14f,    4042.14f,    4042.14f,
+     },
+     {
+          19.43f,      19.43f,      19.43f,      19.43f,
+          42.45f,      42.45f,      42.45f,      42.45f,
+          64.83f,      64.83f,      64.83f,      64.83f,
+          46.82f,      46.82f,      46.82f,      46.82f,
+     },
+     {
+          77.02f,      77.02f,      77.02f,      77.02f,
+          42.34f,      42.34f,      42.34f,      42.34f,
+          45.44f,      45.44f,      45.44f,      45.44f,
+          55.89f,      55.89f,      55.89f,      55.89f,
+     }
+   },
+   {
+     { 99.01f },
+     {
+        6240.43f,    6240.43f,    6240.43f,    6240.43f,
+        2179.23f,    2179.23f,    2179.23f,    2179.23f,
+        5346.65f,    5346.65f,    5346.65f,    5346.65f,
+        2649.91f,    2649.91f,    2649.91f,    2649.91f,
+     },
+     {
+          59.46f,      59.46f,      59.46f,      59.46f,
+          16.96f,      16.96f,      16.96f,      16.96f,
+          52.55f,      52.55f,      52.55f,      52.55f,
+          24.70f,      24.70f,      24.70f,      24.70f,
+     },
+     {
+         353.30f,     353.30f,     353.30f,     353.30f,
+         500.02f,     500.02f,     500.02f,     500.02f,
+         143.67f,     143.67f,     143.67f,     143.67f,
+         204.36f,     204.36f,     204.36f,     204.36f,
+     }
+   },
+ };
+ 
+ double TEST_MULOP_DATA(double, sub)[][4][N] =
+ {
+   {
+     { 80.54 },
+     {
+        5731.60,    5731.60,    5731.60,    5731.60,
+        6682.41,    6682.41,    6682.41,    6682.41,
+        7737.53,    7737.53,    7737.53,    7737.53,
+        4922.68,    4922.68,    4922.68,    4922.68,
+     },
+     {
+          67.14,      67.14,      67.14,      67.14,
+          78.23,      78.23,      78.23,      78.23,
+          94.35,      94.35,      94.35,      94.35,
+          49.68,      49.68,      49.68,      49.68,
+     },
+     {
+         324.14,     324.14,     324.14,     324.14,
+         381.77,     381.77,     381.77,     381.77,
+         138.58,     138.58,     138.58,     138.58,
+         921.45,     921.45,     921.45,     921.45,
+     }
+   },
+   {
+     {   8.05e+01 },
+     {
+       8.65e+27,   8.65e+27,   8.65e+27,   8.65e+27,
+       1.01e+28,   1.01e+28,   1.01e+28,   1.01e+28,
+       8.99e+27,   8.99e+27,   8.99e+27,   8.99e+27,
+       1.32e+28,   1.32e+28,   1.32e+28,   1.32e+28,
+     },
+     {
+       6.71e+25,   6.71e+25,   6.71e+25,   6.71e+25,
+       7.82e+25,   7.82e+25,   7.82e+25,   7.82e+25,
+       9.44e+25,   9.44e+25,   9.44e+25,   9.44e+25,
+       4.97e+25,   4.97e+25,   4.97e+25,   4.97e+25,
+     },
+     {
+       3.24e+27,   3.24e+27,   3.24e+27,   3.24e+27,
+       3.82e+27,   3.82e+27,   3.82e+27,   3.82e+27,
+       1.39e+27,   1.39e+27,   1.39e+27,   1.39e+27,
+       9.21e+27,   9.21e+27,   9.21e+27,   9.21e+27,
+     }
+   },
+   {
+     {   2.02e-03 },
+     {
+     2.7308e-35, 2.7308e-35, 2.7308e-35, 2.7308e-35,
+     1.5784e-35, 1.5784e-35, 1.5784e-35, 1.5784e-35,
+     2.3378e-35, 2.3378e-35, 2.3378e-35, 2.3378e-35,
+     1.6918e-35, 1.6918e-35, 1.6918e-35, 1.6918e-35,
+     },
+     {
+     9.7703e-33, 9.7703e-33, 9.7703e-33, 9.7703e-33,
+     4.1632e-33, 4.1632e-33, 4.1632e-33, 4.1632e-33,
+     8.1964e-33, 8.1964e-33, 8.1964e-33, 8.1964e-33,
+     4.7314e-33, 4.7314e-33, 4.7314e-33, 4.7314e-33,
+     },
+     {
+     7.5586e-36, 7.5586e-36, 7.5586e-36, 7.5586e-36,
+     7.3684e-36, 7.3684e-36, 7.3684e-36, 7.3684e-36,
+     6.8101e-36, 6.8101e-36, 6.8101e-36, 6.8101e-36,
+     7.3543e-36, 7.3543e-36, 7.3543e-36, 7.3543e-36,
+     }
+   },
+ };
+ 
+ 
+ #endif
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,34 ----
+ #ifndef HAVE_DEFINED_VF_MULOP_RUN_H
+ #define HAVE_DEFINED_VF_MULOP_RUN_H
+ 
+ #include <math.h>
+ 
+ #define TYPE_FABS(x, T)                                                        \
+   (__builtin_types_compatible_p (T, double) ? fabs (x) : fabsf (x))
+ 
+ int
+ main ()
+ {
+   unsigned i, k;
+ 
+   for (i = 0; i < sizeof (TEST_DATA) / sizeof (TEST_DATA[0]); i++)
+     {
+       T x = TEST_DATA[i][0][0];
+       T *in = TEST_DATA[i][1];
+       T *out = TEST_DATA[i][2];
+       T *expect = TEST_DATA[i][3];
+ 
+       TEST_RUN (T, NAME, out, in, x, N);
+ 
+       for (k = 0; k < N; k++)
+ 	{
+ 	  T diff = expect[k] - out[k];
+ 	  if (TYPE_FABS (diff, T) > .01 * TYPE_FABS (expect[k], T))
+ 	    __builtin_abort ();
+ 	}
+     }
+ 
+   return 0;
+ }
+ 
+ #endif
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "--param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ #include "vf_mulop_data.h"
+ 
+ #define T    _Float16
+ #define NAME add
+ 
+ DEF_VF_MULOP_CASE_0_WRAP(T, +, NAME)
+ 
+ #define TEST_DATA                        TEST_MULOP_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vf_mulop_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "--param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ #include "vf_mulop_data.h"
+ 
+ #define T    float
+ #define NAME add
+ 
+ DEF_VF_MULOP_CASE_0_WRAP(T, +, NAME)
+ 
+ #define TEST_DATA                        TEST_MULOP_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vf_mulop_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "--param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ #include "vf_mulop_data.h"
+ 
+ #define T    double
+ #define NAME add
+ 
+ DEF_VF_MULOP_CASE_0_WRAP(T, +, NAME)
+ 
+ #define TEST_DATA                        TEST_MULOP_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vf_mulop_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "--param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ #include "vf_mulop_data.h"
+ 
+ #define T    _Float16
+ #define NAME sub
+ 
+ DEF_VF_MULOP_CASE_0_WRAP(T, -, NAME)
+ 
+ #define TEST_DATA                        TEST_MULOP_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vf_mulop_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "--param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ #include "vf_mulop_data.h"
+ 
+ #define T    float
+ #define NAME sub
+ 
+ DEF_VF_MULOP_CASE_0_WRAP(T, -, NAME)
+ 
+ #define TEST_DATA                        TEST_MULOP_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vf_mulop_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "--param=fpr2vr-cost=0" } */
+ 
+ #include "vf_mulop.h"
+ #include "vf_mulop_data.h"
+ 
+ #define T    double
+ #define NAME sub
+ 
+ DEF_VF_MULOP_CASE_0_WRAP(T, -, NAME)
+ 
+ #define TEST_DATA                        TEST_MULOP_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VF_MULOP_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vf_mulop_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vmul.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdiv.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vmul.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdiv.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vmul.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdiv.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vmul.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdiv.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdivu.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdivu.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdivu.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vor.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vxor.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vdivu.vx} 1 } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
  DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, *, mul)
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0(T, -, rsub)
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_0_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_0_WRAP(T, &, and)
  DEF_VX_BINARY_CASE_0_WRAP(T, |, or)
  DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, div)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_0_WRAP(T, ^, xor)
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X16)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X4)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X4)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X16)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X4)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X4)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X16)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X8)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X4)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X4)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X8)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X4)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X4)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X16)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X8)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X4)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X4)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler-not {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_
*** 12,17 ****
--- 12,18 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, *, mul, VX_
*** 20,22 ****
--- 21,24 ----
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
  /* { dg-final { scan-assembler-not {vmul.vx} } } */
+ /* { dg-final { scan-assembler {vdiv.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X8)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X8)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X8)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X4)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X4)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X4)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY)
  
  /* { dg-final { scan-assembler-not {vadd.vx} } } */
  /* { dg-final { scan-assembler-not {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler-not {vand.vx} } } */
  /* { dg-final { scan-assembler-not {vor.vx} } } */
  /* { dg-final { scan-assembler-not {vxor.vx} } } */
+ /* { dg-final { scan-assembler-not {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c	Sun Jun  8 22:32:31 2025
*************** DEF_VX_BINARY_REVERSE_CASE_1_WRAP(T, -,
*** 11,16 ****
--- 11,17 ----
  DEF_VX_BINARY_CASE_1_WRAP(T, &, and, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, |, or, VX_BINARY_BODY_X16)
  DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_BINARY_BODY_X16)
+ DEF_VX_BINARY_CASE_1_WRAP(T, /, div, VX_BINARY_BODY_X16)
  
  /* { dg-final { scan-assembler {vadd.vx} } } */
  /* { dg-final { scan-assembler {vsub.vx} } } */
*************** DEF_VX_BINARY_CASE_1_WRAP(T, ^, xor, VX_
*** 18,20 ****
--- 19,22 ----
  /* { dg-final { scan-assembler {vand.vx} } } */
  /* { dg-final { scan-assembler {vor.vx} } } */
  /* { dg-final { scan-assembler {vxor.vx} } } */
+ /* { dg-final { scan-assembler {vdivu.vx} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h	Sun Jun  8 22:32:31 2025
*************** int64_t TEST_BINARY_DATA(int64_t, mul)[]
*** 2554,2557 ****
--- 2554,2949 ----
    },
  };
  
+ int8_t TEST_BINARY_DATA(int8_t, div)[][3][N] =
+ {
+   {
+     { 1 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+   },
+   {
+     { 127 },
+     {
+        127,  127,  127,  127,
+         -1,   -1,   -1,   -1,
+       -128, -128, -128, -128,
+         -2,   -2,   -2,   -2,
+     },
+     {
+          1,    1,    1,    1,
+          0,    0,    0,    0,
+         -1,   -1,   -1,   -1,
+          0,    0,    0,    0,
+     },
+   },
+   {
+     { -128 },
+     {
+       -128, -128, -128, -128,
+          1,    1,    1,    1,
+        127,  127,  127,  127,
+          2,    2,    2,    2,
+     },
+     {
+          1,    1,    1,    1,
+          0,    0,    0,    0,
+          0,    0,    0,    0,
+          0,    0,    0,    0,
+     },
+   },
+ };
+ 
+ int16_t TEST_BINARY_DATA(int16_t, div)[][3][N] =
+ {
+   {
+     { 1 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+   },
+   {
+     { 32767 },
+     {
+        32767,  32767,  32767,  32767,
+           -1,     -1,     -1,     -1,
+       -32768, -32768, -32768, -32768,
+           -2,     -2,     -2,     -2,
+     },
+     {
+            1,      1,      1,      1,
+            0,      0,      0,      0,
+           -1,     -1,     -1,     -1,
+            0,      0,      0,      0,
+     },
+   },
+   {
+     { -32768 },
+     {
+       -32768, -32768, -32768, -32768,
+            1,      1,      1,      1,
+        32767,  32767,  32767,  32767,
+            2,      2,      2,      2,
+     },
+     {
+            1,      1,      1,      1,
+            0,      0,      0,      0,
+            0,      0,      0,      0,
+            0,      0,      0,      0,
+     },
+   },
+ };
+ 
+ int32_t TEST_BINARY_DATA(int32_t, div)[][3][N] =
+ {
+   {
+     { 1 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+   },
+   {
+     { 2147483647 },
+     {
+        2147483647,  2147483647,  2147483647,  2147483647,
+                -1,          -1,          -1,          -1,
+       -2147483648, -2147483648, -2147483648, -2147483648,
+                -2,          -2,          -2,          -2,
+     },
+     {
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+                -1,          -1,          -1,          -1,
+                 0,           0,           0,           0,
+     },
+   },
+   {
+     { -2147483648 },
+     {
+       -2147483648, -2147483648, -2147483648, -2147483648,
+                 1,           1,           1,           1,
+        2147483647,  2147483647,  2147483647,  2147483647,
+                 2,           2,           2,           2,
+     },
+     {
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+                 0,           0,           0,           0,
+                 0,           0,           0,           0,
+     },
+   },
+ };
+ 
+ int64_t TEST_BINARY_DATA(int64_t, div)[][3][N] =
+ {
+   {
+     { 1 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+       -1, -1, -1, -1,
+       -2, -2, -2, -2,
+     },
+   },
+   {
+     { 9223372036854775807ll },
+     {
+         9223372036854775807ll,   9223372036854775807ll,   9223372036854775807ll,   9223372036854775807ll,
+                            -1,                      -1,                      -1,                      -1,
+       -9223372036854775808ull, -9223372036854775808ull, -9223372036854775808ull, -9223372036854775808ull,
+                            -2,                      -2,                      -2,                      -2,
+     },
+     {
+                             1,                       1,                       1,                       1,
+                             0,                       0,                       0,                       0,
+                            -1,                      -1,                      -1,                      -1,
+                             0,                       0,                       0,                       0,
+     },
+   },
+   {
+     { -9223372036854775808ull },
+     {
+       -9223372036854775808ull, -9223372036854775808ull, -9223372036854775808ull, -9223372036854775808ull,
+                            1,                      1,                      1,                      1,
+        9223372036854775807ll,  9223372036854775807ll,  9223372036854775807ll,  9223372036854775807ll,
+                            2,                      2,                      2,                      2,
+     },
+     {
+                             1,                       1,                       1,                       1,
+                             0,                       0,                       0,                       0,
+                             0,                       0,                       0,                       0,
+                             0,                       0,                       0,                       0,
+     },
+   },
+ };
+ 
+ uint8_t TEST_BINARY_DATA(uint8_t, div)[][3][N] =
+ {
+   {
+     { 2 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+        4,  4,  4,  4,
+        7,  7,  7,  7,
+     },
+     {
+        1,  1,  1,  1,
+        0,  0,  0,  0,
+        2,  2,  2,  2,
+        3,  3,  3,  3,
+     },
+   },
+   {
+     { 127 },
+     {
+        127,  127,  127,  127,
+          1,    1,    1,    1,
+        128,  128,  128,  128,
+          2,    2,    2,    2,
+     },
+     {
+          1,    1,    1,    1,
+          0,    0,    0,    0,
+          1,    1,    1,    1,
+          0,    0,    0,    0,
+     },
+   },
+   {
+     { 128 },
+     {
+        127,  127,  127,  127,
+        255,  255,  255,  255,
+        128,  128,  128,  128,
+          1,    1,    1,    1,
+     },
+     {
+          0,    0,    0,    0,
+          1,    1,    1,    1,
+          1,    1,    1,    1,
+          0,    0,    0,    0,
+     },
+   },
+ };
+ 
+ uint16_t TEST_BINARY_DATA(uint16_t, div)[][3][N] =
+ {
+   {
+     { 2 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+        4,  4,  4,  4,
+        7,  7,  7,  7,
+     },
+     {
+        1,  1,  1,  1,
+        0,  0,  0,  0,
+        2,  2,  2,  2,
+        3,  3,  3,  3,
+     },
+   },
+   {
+     { 32767 },
+     {
+        32767,  32767,  32767,  32767,
+            1,      1,      1,      1,
+        32768,  32768,  32768,  32768,
+            2,      2,      2,      2,
+     },
+     {
+            1,      1,      1,      1,
+            0,      0,      0,      0,
+            1,      1,      1,      1,
+            0,      0,      0,      0,
+     },
+   },
+   {
+     { 32768 },
+     {
+        32767,  32767,  32767,  32767,
+        65535,  65535,  65535,  65535,
+        32768,  32768,  32768,  32768,
+            1,      1,      1,      1,
+     },
+     {
+            0,      0,      0,      0,
+            1,      1,      1,      1,
+            1,      1,      1,      1,
+            0,      0,      0,      0,
+     },
+   },
+ };
+ 
+ uint32_t TEST_BINARY_DATA(uint32_t, div)[][3][N] =
+ {
+   {
+     { 2 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+        4,  4,  4,  4,
+        7,  7,  7,  7,
+     },
+     {
+        1,  1,  1,  1,
+        0,  0,  0,  0,
+        2,  2,  2,  2,
+        3,  3,  3,  3,
+     },
+   },
+   {
+     { 2147483647 },
+     {
+        2147483647,  2147483647,  2147483647,  2147483647,
+                 1,           1,           1,           1,
+        2147483648,  2147483648,  2147483648,  2147483648,
+                 2,           2,           2,           2,
+     },
+     {
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+     },
+   },
+   {
+     { 2147483648 },
+     {
+        2147483647,  2147483647,  2147483647,  2147483647,
+        4294967295,  4294967295,  4294967295,  4294967295,
+        2147483648,  2147483648,  2147483648,  2147483648,
+                 1,           1,           1,           1,
+     },
+     {
+                 0,           0,           0,           0,
+                 1,           1,           1,           1,
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+     },
+   },
+ };
+ 
+ uint64_t TEST_BINARY_DATA(uint64_t, div)[][3][N] =
+ {
+   {
+     { 2 },
+     {
+        2,  2,  2,  2,
+        1,  1,  1,  1,
+        4,  4,  4,  4,
+        7,  7,  7,  7,
+     },
+     {
+        1,  1,  1,  1,
+        0,  0,  0,  0,
+        2,  2,  2,  2,
+        3,  3,  3,  3,
+     },
+   },
+   {
+     { 9223372036854775807ull },
+     {
+        9223372036854775807ull,  9223372036854775807ull,  9223372036854775807ull,  9223372036854775807ull,
+                 1,           1,           1,           1,
+        9223372036854775808ull,  9223372036854775808ull,  9223372036854775808ull,  9223372036854775808ull,
+                 2,           2,           2,           2,
+     },
+     {
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+                 1,           1,           1,           1,
+                 0,           0,           0,           0,
+     },
+   },
+   {
+     { 9223372036854775808ull },
+     {
+         9223372036854775807ull,   9223372036854775807ull,   9223372036854775807ull,   9223372036854775807ull,
+        18446744073709551615ull,  18446744073709551615ull,  18446744073709551615ull,  18446744073709551615ull,
+         9223372036854775808ull,   9223372036854775808ull,   9223372036854775808ull,   9223372036854775808ull,
+                              1,                        1,                        1,                        1,
+     },
+     {
+                              0,                        0,                        0,                        0,
+                              1,                        1,                        1,                        1,
+                              1,                        1,                        1,                        1,
+                              0,                        0,                        0,                        0,
+     },
+   },
+ };
+ 
  #endif
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    int16_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    int32_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    int64_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    int8_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    uint16_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    uint32_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    uint64_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_binary.h"
+ #include "vx_binary_data.h"
+ 
+ #define T    uint8_t
+ #define NAME div
+ 
+ DEF_VX_BINARY_CASE_0_WRAP(T, /, NAME)
+ 
+ #define TEST_DATA                        TEST_BINARY_DATA_WRAP(T, NAME)
+ #define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
+ 
+ #include "vx_binary_run.h"
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c	Sun Jun  1 22:32:29 2025
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c	Sun Jun  8 22:32:31 2025
*************** test_float_point_dynamic_frm (vfloat32m1
*** 33,39 ****
  }
  
  /* { dg-final { scan-assembler-times {vfadd\.v[vf]\s+v[0-9]+,\s*v[0-9]+,\s*[fav]+[0-9]+} 2 } } */
! /* { dg-final { scan-assembler-times {frrm\s+[axs][0-9]+} 2 } } */
  /* { dg-final { scan-assembler-times {fsrm\s+[axs][0-9]+} 2 } } */
  /* { dg-final { scan-assembler-times {fsrmi\s+[01234]} 2 } } */
  /* { dg-final { scan-assembler-not {fsrmi\s+[axs][0-9]+,\s*[01234]} } } */
--- 33,39 ----
  }
  
  /* { dg-final { scan-assembler-times {vfadd\.v[vf]\s+v[0-9]+,\s*v[0-9]+,\s*[fav]+[0-9]+} 2 } } */
! /* { dg-final { scan-assembler-times {frrm\s+[axs][0-9]+} 3 } } */
  /* { dg-final { scan-assembler-times {fsrm\s+[axs][0-9]+} 2 } } */
  /* { dg-final { scan-assembler-times {fsrmi\s+[01234]} 2 } } */
  /* { dg-final { scan-assembler-not {fsrmi\s+[axs][0-9]+,\s*[01234]} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/base/pr119164.c gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/base/pr119164.c
*** gcc-16-20250601/gcc/testsuite/gcc.target/riscv/rvv/base/pr119164.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gcc.target/riscv/rvv/base/pr119164.c	Sun Jun  8 22:32:31 2025
***************
*** 0 ****
--- 1,22 ----
+ /* Reduced from SPEC2017 blender: node_texture_util.c.
+    The conditional function call was tripping mode switching state machine */
+ 
+ /* { dg-do compile } */
+ /* { dg-options " -Ofast -march=rv64gcv_zvl256b -ftree-vectorize -mrvv-vector-bits=zvl" } */
+ 
+ void *a;
+ float *b;
+ short c;
+ void d();
+ void e() {
+   if (a)
+     d();
+   if (c) {
+     b[0] = b[0] * 0.5f + 0.5f;
+     b[1] = b[1] * 0.5f + 0.5f;
+   }
+ }
+ 
+ /* { dg-final { scan-assembler-not {frrm\s+[axs][0-9]+} } } */
+ /* { dg-final { scan-assembler-not {fsrmi\s+[01234]} } } */
+ /* { dg-final { scan-assembler-not {fsrm\s+[axs][0-9]+} } } */
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/coarray_data_2.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/coarray_data_2.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/coarray_data_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/coarray_data_2.f90	Sun Jun  8 22:32:34 2025
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fcoarray=lib -Warray-temporaries" }
+ !
+ ! PR fortran/99838 - ICE due to missing locus with data statement for coarray
+ !
+ ! Contributed by Gerhard Steinmetz
+ 
+ program p
+   type t
+      integer :: a
+   end type
+   type(t) :: x(3)[*]
+   data x%a /1, 2, 3/ ! { dg-warning "Creating array temporary" }
+ end
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90	Sun Jun  8 22:32:35 2025
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-O1 -fdump-tree-optimized -fno-builtin-omp_get_num_devices -fno-builtin-omp_get_initial_device" }
+ integer function f() result(ret)
+   interface
+     integer function omp_get_initial_device (); end
+     integer function omp_get_num_devices (); end
+   end interface
+ 
+   if (omp_get_initial_device () /= omp_get_num_devices ()) error stop
+ 
+   if (omp_get_num_devices () /= omp_get_num_devices ()) error stop
+ 
+   if (omp_get_initial_device () /= omp_get_initial_device ()) error stop
+ 
+   ret = omp_get_num_devices ()
+ end
+ 
+ ! { dg-final { scan-tree-dump-times "error_stop" 3 "optimized" } }
+ 
+ ! { dg-final { scan-tree-dump-times "omp_get_num_devices" 4 "optimized" } }
+ ! { dg-final { scan-tree-dump-times "omp_get_initial_device" 3 "optimized" } }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device.f90	Sun Jun  8 22:32:35 2025
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-O1 -fdump-tree-optimized" }
+ integer function f() result(ret)
+   interface
+     integer function omp_get_initial_device (); end
+     integer function omp_get_num_devices (); end
+   end interface
+ 
+   if (omp_get_initial_device () /= omp_get_num_devices ()) error stop
+ 
+   if (omp_get_num_devices () /= omp_get_num_devices ()) error stop
+ 
+   if (omp_get_initial_device () /= omp_get_initial_device ()) error stop
+ 
+   ret = omp_get_num_devices ()
+ end
+ 
+ ! { dg-final { scan-tree-dump-not "error_stop" "optimized" } }
+ 
+ ! { dg-final { scan-tree-dump-not "omp_get_num_devices;" "optimized" { target { ! offloading_enabled } } } }
+ ! { dg-final { scan-tree-dump "return 0;" "optimized" { target { ! offloading_enabled } } } }
+ 
+ ! { dg-final { scan-tree-dump-times "omp_get_num_devices;" 1 "optimized" { target offloading_enabled } } }
+ ! { dg-final { scan-tree-dump "_1 = __builtin_omp_get_num_devices \\(\\);\[\\r\\n\]+\[ \]+return _1;" "optimized" { target offloading_enabled } } }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/inline_matmul_16.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/inline_matmul_16.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/inline_matmul_16.f90	Sun Jun  1 22:32:31 2025
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/inline_matmul_16.f90	Sun Jun  8 22:32:36 2025
*************** program main
*** 58,61 ****
       end do
    end do
  end program main
! ! { dg-final { scan-tree-dump-times "_gfortran_matmul" 1 "optimized" } }
--- 58,61 ----
       end do
    end do
  end program main
! ! { dg-final { scan-tree-dump-not "_gfortran_matmul" "optimized" } }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/inline_matmul_26.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/inline_matmul_26.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/inline_matmul_26.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/inline_matmul_26.f90	Sun Jun  8 22:32:36 2025
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ ! { dg-options "-ffrontend-optimize -fdump-tree-optimized -Wrealloc-lhs -finline-matmul-limit=1000 -O" }
+ ! PR 66094: Check functionality for MATMUL(TRANSPOSE(A),B)) for two-dimensional arrays
+ program main
+   implicit none
+   integer :: in, im, icnt
+   integer, volatile :: ten
+ 
+   ten = 10
+   ! cycle through a few test cases...
+   do in = 2,ten 
+      do im = 2,ten
+         do icnt = 2,ten
+            block
+              real, dimension(icnt,in) :: a2
+              real, dimension(icnt,im) :: b2
+              real, dimension(in,im) :: c2,cr
+              integer :: i,j,k
+              call random_number(a2)
+              call random_number(b2)
+              c2 = 0
+              do i=1,size(a2,2)
+                 do j=1, size(b2,2)
+                    do k=1, size(a2,1)
+                       c2(i,j) = c2(i,j) + a2(k,i) * b2(k,j)
+                    end do
+                 end do
+              end do
+              cr = matmul(transpose(a2), b2)
+              if (any(abs(c2-cr) > 1e-4)) STOP 7
+            end block
+         end do
+      end do
+   end do
+ end program main
+ ! { dg-final { scan-tree-dump-times "_gfortran_matmul" 1 "optimized" } }
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/pr119856.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/pr119856.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/pr119856.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/pr119856.f90	Sun Jun  8 22:32:37 2025
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! PR119856, the error should occur in both write statements.
+ program badfmt
+   implicit none
+ 
+   character(10):: fmt = "(AI5)"  ! Not a PARAMETER so not examined
+                                  ! at compile time
+   integer :: ioerr
+   ioerr = 0
+   write (*, fmt, iostat=ioerr) 'value =', 42
+   if (ioerr /= 5006) stop 10
+ !
+   write (*, fmt, iostat=ioerr) 'value =', 43
+   if (ioerr /= 5006) stop 13
+ end program badfmt
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gfortran.dg/save_8.f90 gcc-16-20250608/gcc/testsuite/gfortran.dg/save_8.f90
*** gcc-16-20250601/gcc/testsuite/gfortran.dg/save_8.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gfortran.dg/save_8.f90	Sun Jun  8 22:32:37 2025
***************
*** 0 ****
--- 1,13 ----
+ !{ dg-do run }
+ 
+ ! Check PR120483 is fixed.
+ ! Contributed by Thomas Koenig  <tkoenig@gcc.gnu.org>
+ !            and Peter Güntert  <peter@guentert.com> 
+ 
+ program save_8
+   implicit none
+   character(len=:), allocatable, save :: s1
+   s1 = 'ABC'
+   if (s1(3:3) /= 'C') stop 1
+ end program save_8
+ 
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/fail/CHAR.mod gcc-16-20250608/gcc/testsuite/gm2/iso/fail/CHAR.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/fail/CHAR.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/fail/CHAR.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,7 ----
+ MODULE CHAR ;
+ 
+ IMPORT CHAR ;
+ 
+ BEGIN
+    CHAR.Write ("h")
+ END CHAR.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/fail/badreturn.mod gcc-16-20250608/gcc/testsuite/gm2/iso/fail/badreturn.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/fail/badreturn.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/fail/badreturn.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,5 ----
+ MODULE badreturn ;
+ 
+ BEGIN
+    RETURN 0
+ END badreturn.
\ No newline at end of file
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/fail/badreturn2.mod gcc-16-20250608/gcc/testsuite/gm2/iso/fail/badreturn2.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/fail/badreturn2.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/fail/badreturn2.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,12 ----
+ MODULE badreturn2 ;
+ 
+ 
+ PROCEDURE foo ;
+ BEGIN
+    RETURN 0
+ END foo ;
+ 
+ 
+ BEGIN
+    foo
+ END badreturn2.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/pass/modulereturn.mod gcc-16-20250608/gcc/testsuite/gm2/iso/pass/modulereturn.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/pass/modulereturn.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/pass/modulereturn.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,5 ----
+ MODULE modulereturn ;
+ 
+ BEGIN
+    RETURN
+ END modulereturn.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/pass/modulereturn2.mod gcc-16-20250608/gcc/testsuite/gm2/iso/pass/modulereturn2.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/pass/modulereturn2.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/pass/modulereturn2.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,10 ----
+ MODULE modulereturn2 ;
+ 
+ 
+ BEGIN
+    RETURN
+ EXCEPT
+    RETURN
+ FINALLY
+    RETURN
+ END modulereturn2.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/run/pass/CHAR.mod gcc-16-20250608/gcc/testsuite/gm2/iso/run/pass/CHAR.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/run/pass/CHAR.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/run/pass/CHAR.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,7 ----
+ MODULE CHAR ;
+ 
+ FROM libc IMPORT printf ;
+ 
+ BEGIN
+    printf ("hello world\n")
+ END CHAR.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/iso/run/pass/importself.mod gcc-16-20250608/gcc/testsuite/gm2/iso/run/pass/importself.mod
*** gcc-16-20250601/gcc/testsuite/gm2/iso/run/pass/importself.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/iso/run/pass/importself.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,14 ----
+ MODULE importself ;
+ 
+ IMPORT importself ;
+ 
+ 
+ PROCEDURE foo ;
+ BEGIN
+ 
+ END foo ;
+ 
+ BEGIN
+    foo ;
+    importself.foo
+ END importself.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod gcc-16-20250608/gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod
*** gcc-16-20250601/gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,8 ----
+ MODULE testwrite ;
+ 
+ IMPORT ARRAYOFCHAR ;
+ FROM FIO IMPORT StdOut ;
+ 
+ BEGIN
+    ARRAYOFCHAR.Write (StdOut, "hello world") ; ARRAYOFCHAR.WriteLn (StdOut)
+ END testwrite.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod gcc-16-20250608/gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod
*** gcc-16-20250601/gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod	Sun Jun  8 22:32:38 2025
***************
*** 0 ****
--- 1,13 ----
+ MODULE testwritechar ;
+ 
+ IMPORT CHAR ;
+ FROM FIO IMPORT StdOut ;
+ 
+ BEGIN
+    CHAR.Write (StdOut, 'h') ;
+    CHAR.Write (StdOut, 'e') ;
+    CHAR.Write (StdOut, 'l') ;
+    CHAR.Write (StdOut, 'l') ;
+    CHAR.Write (StdOut, 'o') ;
+    CHAR.WriteLn (StdOut)
+ END testwritechar.
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gnat.dg/controlled9.adb gcc-16-20250608/gcc/testsuite/gnat.dg/controlled9.adb
*** gcc-16-20250601/gcc/testsuite/gnat.dg/controlled9.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gnat.dg/controlled9.adb	Sun Jun  8 22:32:39 2025
***************
*** 0 ****
--- 1,10 ----
+ --  { dg-do run }
+ --  { dg-options "-O1 -fstack-check" }
+ --  from PR middle-end/118939
+ 
+ with Controlled9_Pkg;
+ procedure Controlled9 is
+    S : constant Controlled9_Pkg.T_Access := new Controlled9_Pkg.T;
+ begin
+    null;
+ end Controlled9;	
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gnat.dg/controlled9_pkg.ads gcc-16-20250608/gcc/testsuite/gnat.dg/controlled9_pkg.ads
*** gcc-16-20250601/gcc/testsuite/gnat.dg/controlled9_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gnat.dg/controlled9_pkg.ads	Sun Jun  8 22:32:39 2025
***************
*** 0 ****
--- 1,5 ----
+ with Ada.Finalization;
+ package Controlled9_Pkg is
+    type T is new Ada.Finalization.Controlled with null record;
+    type T_Access is access all T;
+ end Controlled9_Pkg;
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gnat.dg/specs/aggr7.ads gcc-16-20250608/gcc/testsuite/gnat.dg/specs/aggr7.ads
*** gcc-16-20250601/gcc/testsuite/gnat.dg/specs/aggr7.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gnat.dg/specs/aggr7.ads	Sun Jun  8 22:32:39 2025
***************
*** 0 ****
--- 1,11 ----
+ -- { dg-do compile }
+ 
+ package Aggr7 is
+ 
+   type Arr is array (Integer range <>) of Boolean;
+ 
+   Data : constant Arr := (False, True);
+ 
+   function Get_Data return Arr is (Data);
+ 
+ end Aggr7;
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gnat.dg/specs/opt7.ads gcc-16-20250608/gcc/testsuite/gnat.dg/specs/opt7.ads
*** gcc-16-20250601/gcc/testsuite/gnat.dg/specs/opt7.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gnat.dg/specs/opt7.ads	Sun Jun  8 22:32:39 2025
***************
*** 0 ****
--- 1,15 ----
+ -- { dg-do compile }
+ -- { dg-options "-O2 -gnatn" }
+ 
+ with Opt7_Pkg; use Opt7_Pkg;
+ 
+ package Opt7 is
+ 
+   type Rec is record
+     E : Enum;
+   end record;
+ 
+   function Image (R : Rec) return String is
+     (if R.E = A then Image (R.E) else "");
+ 
+ end Opt7;
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gnat.dg/specs/opt7_pkg.adb gcc-16-20250608/gcc/testsuite/gnat.dg/specs/opt7_pkg.adb
*** gcc-16-20250601/gcc/testsuite/gnat.dg/specs/opt7_pkg.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gnat.dg/specs/opt7_pkg.adb	Sun Jun  8 22:32:39 2025
***************
*** 0 ****
--- 1,15 ----
+ package body Opt7_Pkg is
+ 
+   type Constant_String_Access is access constant String;
+ 
+   type Enum_Name is array (Enum) of Constant_String_Access;
+ 
+   Enum_Name_Table : constant Enum_Name :=
+     (A => new String'("A"), B => new String'("B"));
+ 
+   function Image (E : Enum) return String is
+   begin
+     return Enum_Name_Table (E).all;
+   end Image;
+ 
+ end Opt7_Pkg;
diff -Nrcpad gcc-16-20250601/gcc/testsuite/gnat.dg/specs/opt7_pkg.ads gcc-16-20250608/gcc/testsuite/gnat.dg/specs/opt7_pkg.ads
*** gcc-16-20250601/gcc/testsuite/gnat.dg/specs/opt7_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/testsuite/gnat.dg/specs/opt7_pkg.ads	Sun Jun  8 22:32:39 2025
***************
*** 0 ****
--- 1,9 ----
+ -- { dg-excess-errors "no code generated" }
+ 
+ package Opt7_Pkg is
+ 
+   type Enum is (A, B);
+ 
+   function Image (E : Enum) return String with Inline;
+ 
+ end Opt7_Pkg;
diff -Nrcpad gcc-16-20250601/gcc/testsuite/lib/target-supports.exp gcc-16-20250608/gcc/testsuite/lib/target-supports.exp
*** gcc-16-20250601/gcc/testsuite/lib/target-supports.exp	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/testsuite/lib/target-supports.exp	Sun Jun  8 22:32:40 2025
*************** proc check_effective_target_tls {} {
*** 1098,1103 ****
--- 1098,1113 ----
      }]
  }
  
+ # Return 1 if we can link using TLS, 0 otherwise.
+ 
+ proc check_effective_target_tls_link {} {
+     return [check_no_compiler_messages tls_link executable {
+ 	__thread int i;
+ 	int main (void) { return i; }
+ 	void g (int j) { i = j; }
+     }]
+ }
+ 
  # Return 1 if *native* thread local storage (TLS) is supported, 0 otherwise.
  
  proc check_effective_target_tls_native {} {
diff -Nrcpad gcc-16-20250601/gcc/text-art/widget.cc gcc-16-20250608/gcc/text-art/widget.cc
*** gcc-16-20250601/gcc/text-art/widget.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/text-art/widget.cc	Sun Jun  8 22:32:40 2025
*************** test_wrapper_widget ()
*** 200,205 ****
--- 200,214 ----
  }
  
  static void
+ test_empty_wrapper_widget ()
+ {
+   style_manager sm;
+   wrapper_widget w (nullptr);
+   canvas c (w.to_canvas (sm));
+   ASSERT_CANVAS_STREQ (c, false, "");
+ }
+ 
+ static void
  test_vbox_1 ()
  {
    style_manager sm;
*************** text_art_widget_cc_tests ()
*** 263,268 ****
--- 272,278 ----
    test_test_widget ();
    test_text_widget ();
    test_wrapper_widget ();
+   test_empty_wrapper_widget ();
    test_vbox_1 ();
    test_vbox_2 ();
    test_canvas_widget ();
diff -Nrcpad gcc-16-20250601/gcc/text-art/widget.h gcc-16-20250608/gcc/text-art/widget.h
*** gcc-16-20250601/gcc/text-art/widget.h	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/text-art/widget.h	Sun Jun  8 22:32:40 2025
*************** class wrapper_widget : public widget
*** 146,160 ****
    }
    canvas::size_t calc_req_size () override
    {
!     return m_child->get_req_size ();
    }
    void update_child_alloc_rects () override
    {
!     m_child->set_alloc_rect (get_alloc_rect ());
    }
    void paint_to_canvas (canvas &canvas) override
    {
!     m_child->paint_to_canvas (canvas);
    }
   private:
    std::unique_ptr<widget> m_child;
--- 146,165 ----
    }
    canvas::size_t calc_req_size () override
    {
!     if (m_child)
!       return m_child->get_req_size ();
!     else
!       return canvas::size_t (0,0);
    }
    void update_child_alloc_rects () override
    {
!     if (m_child)
!       m_child->set_alloc_rect (get_alloc_rect ());
    }
    void paint_to_canvas (canvas &canvas) override
    {
!     if (m_child)
!       m_child->paint_to_canvas (canvas);
    }
   private:
    std::unique_ptr<widget> m_child;
diff -Nrcpad gcc-16-20250601/gcc/tree-eh.cc gcc-16-20250608/gcc/tree-eh.cc
*** gcc-16-20250601/gcc/tree-eh.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/tree-eh.cc	Sun Jun  8 22:32:40 2025
*************** operation_could_trap_helper_p (enum tree
*** 2538,2543 ****
--- 2538,2550 ----
        /* Constructing an object cannot trap.  */
        return false;
  
+     case FIX_TRUNC_EXPR:
+     case VEC_PACK_FIX_TRUNC_EXPR:
+     case VEC_UNPACK_FIX_TRUNC_HI_EXPR:
+     case VEC_UNPACK_FIX_TRUNC_LO_EXPR:
+       /* The FIX_TRUNC family are always potentially trapping.  */
+       return flag_trapping_math;
+ 
      case COND_EXPR:
      case VEC_COND_EXPR:
        /* Whether *COND_EXPR can trap depends on whether the
diff -Nrcpad gcc-16-20250601/gcc/tree-inline.cc gcc-16-20250608/gcc/tree-inline.cc
*** gcc-16-20250601/gcc/tree-inline.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/tree-inline.cc	Sun Jun  8 22:32:40 2025
*************** copy_bb (copy_body_data *id, basic_block
*** 2239,2245 ****
  		}
  	      else if (nargs != 0)
  		{
! 		  tree newlhs = create_tmp_reg_or_ssa_name (integer_type_node);
  		  count = build_int_cst (integer_type_node, nargs);
  		  new_stmt = gimple_build_assign (gimple_call_lhs (stmt),
  						  PLUS_EXPR, newlhs, count);
--- 2239,2245 ----
  		}
  	      else if (nargs != 0)
  		{
! 		  tree newlhs = make_ssa_name (integer_type_node);
  		  count = build_int_cst (integer_type_node, nargs);
  		  new_stmt = gimple_build_assign (gimple_call_lhs (stmt),
  						  PLUS_EXPR, newlhs, count);
diff -Nrcpad gcc-16-20250601/gcc/tree-sra.cc gcc-16-20250608/gcc/tree-sra.cc
*** gcc-16-20250601/gcc/tree-sra.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/tree-sra.cc	Sun Jun  8 22:32:40 2025
*************** sra_get_max_scalarization_size (void)
*** 3760,3766 ****
    /* If the user didn't set PARAM_SRA_MAX_SCALARIZATION_SIZE_<...>,
       fall back to a target default.  */
    unsigned HOST_WIDE_INT max_scalarization_size
!     = get_move_ratio (optimize_speed_p) * UNITS_PER_WORD;
  
    if (optimize_speed_p)
      {
--- 3760,3766 ----
    /* If the user didn't set PARAM_SRA_MAX_SCALARIZATION_SIZE_<...>,
       fall back to a target default.  */
    unsigned HOST_WIDE_INT max_scalarization_size
!     = get_move_ratio (optimize_speed_p) * MOVE_MAX;
  
    if (optimize_speed_p)
      {
diff -Nrcpad gcc-16-20250601/gcc/tree-ssa-ccp.cc gcc-16-20250608/gcc/tree-ssa-ccp.cc
*** gcc-16-20250601/gcc/tree-ssa-ccp.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/tree-ssa-ccp.cc	Sun Jun  8 22:32:40 2025
*************** get_default_value (tree var)
*** 298,304 ****
  	{
  	  val.lattice_val = VARYING;
  	  val.mask = -1;
! 	  if (flag_tree_bit_ccp)
  	    {
  	      wide_int nonzero_bits = get_nonzero_bits (var);
  	      tree value;
--- 298,304 ----
  	{
  	  val.lattice_val = VARYING;
  	  val.mask = -1;
! 	  if (flag_tree_bit_ccp && !VECTOR_TYPE_P (TREE_TYPE (var)))
  	    {
  	      wide_int nonzero_bits = get_nonzero_bits (var);
  	      tree value;
*************** evaluate_stmt (gimple *stmt)
*** 2491,2501 ****
        is_constant = (val.lattice_val == CONSTANT);
      }
  
    if (flag_tree_bit_ccp
        && ((is_constant && TREE_CODE (val.value) == INTEGER_CST)
! 	  || !is_constant)
!       && gimple_get_lhs (stmt)
!       && TREE_CODE (gimple_get_lhs (stmt)) == SSA_NAME)
      {
        tree lhs = gimple_get_lhs (stmt);
        wide_int nonzero_bits = get_nonzero_bits (lhs);
--- 2491,2501 ----
        is_constant = (val.lattice_val == CONSTANT);
      }
  
+   tree lhs = gimple_get_lhs (stmt);
    if (flag_tree_bit_ccp
+       && lhs && TREE_CODE (lhs) == SSA_NAME && !VECTOR_TYPE_P (TREE_TYPE (lhs))
        && ((is_constant && TREE_CODE (val.value) == INTEGER_CST)
! 	  || !is_constant))
      {
        tree lhs = gimple_get_lhs (stmt);
        wide_int nonzero_bits = get_nonzero_bits (lhs);
*************** insert_clobber_before_stack_restore (tre
*** 2567,2573 ****
        {
  	clobber = build_clobber (TREE_TYPE (var), CLOBBER_STORAGE_END);
  	clobber_stmt = gimple_build_assign (var, clobber);
! 
  	i = gsi_for_stmt (stmt);
  	gsi_insert_before (&i, clobber_stmt, GSI_SAME_STMT);
        }
--- 2567,2578 ----
        {
  	clobber = build_clobber (TREE_TYPE (var), CLOBBER_STORAGE_END);
  	clobber_stmt = gimple_build_assign (var, clobber);
! 	/* Manually update the vdef/vuse here. */
! 	gimple_set_vuse (clobber_stmt, gimple_vuse (stmt));
! 	gimple_set_vdef (clobber_stmt, make_ssa_name (gimple_vop (cfun)));
! 	gimple_set_vuse (stmt, gimple_vdef (clobber_stmt));
! 	SSA_NAME_DEF_STMT (gimple_vdef (clobber_stmt)) = clobber_stmt;
! 	update_stmt (stmt);
  	i = gsi_for_stmt (stmt);
  	gsi_insert_before (&i, clobber_stmt, GSI_SAME_STMT);
        }
*************** do_ssa_ccp (bool nonzero_p)
*** 3020,3026 ****
    ccp_propagate.ssa_propagate ();
    if (ccp_finalize (nonzero_p || flag_ipa_bit_cp))
      {
!       todo = (TODO_cleanup_cfg | TODO_update_ssa);
  
        /* ccp_finalize does not preserve loop-closed ssa.  */
        loops_state_clear (LOOP_CLOSED_SSA);
--- 3025,3031 ----
    ccp_propagate.ssa_propagate ();
    if (ccp_finalize (nonzero_p || flag_ipa_bit_cp))
      {
!       todo = TODO_cleanup_cfg;
  
        /* ccp_finalize does not preserve loop-closed ssa.  */
        loops_state_clear (LOOP_CLOSED_SSA);
diff -Nrcpad gcc-16-20250601/gcc/tree-ssa-forwprop.cc gcc-16-20250608/gcc/tree-ssa-forwprop.cc
*** gcc-16-20250601/gcc/tree-ssa-forwprop.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/tree-ssa-forwprop.cc	Sun Jun  8 22:32:40 2025
*************** optimize_memcpy_to_memset (gimple_stmt_i
*** 1343,1348 ****
--- 1343,1430 ----
      }
    return true;
  }
+ /* Optimizes
+    a = c;
+    b = a;
+    into
+    a = c;
+    b = c;
+    GSIP is the second statement and SRC is the common
+    between the statements.
+ */
+ static bool
+ optimize_agr_copyprop (gimple_stmt_iterator *gsip)
+ {
+   gimple *stmt = gsi_stmt (*gsip);
+   if (gimple_has_volatile_ops (stmt))
+     return false;
+ 
+   tree dest = gimple_assign_lhs (stmt);
+   tree src = gimple_assign_rhs1 (stmt);
+   /* If the statement is `src = src;` then ignore it. */
+   if (operand_equal_p (dest, src, 0))
+     return false;
+ 
+   tree vuse = gimple_vuse (stmt);
+   /* If the vuse is the default definition, then there is no store beforehand.  */
+   if (SSA_NAME_IS_DEFAULT_DEF (vuse))
+     return false;
+   gimple *defstmt = SSA_NAME_DEF_STMT (vuse);
+   if (!gimple_assign_load_p (defstmt)
+       || !gimple_store_p (defstmt))
+     return false;
+   if (gimple_has_volatile_ops (defstmt))
+     return false;
+ 
+   tree dest2 = gimple_assign_lhs (defstmt);
+   tree src2 = gimple_assign_rhs1 (defstmt);
+ 
+   /* If the original store is `src2 = src2;` skip over it. */
+   if (operand_equal_p (src2, dest2, 0))
+     return false;
+   if (!operand_equal_p (src, dest2, 0))
+     return false;
+ 
+ 
+   /* For 2 memory refences and using a temporary to do the copy,
+      don't remove the temporary as the 2 memory references might overlap.
+      Note t does not need to be decl as it could be field.
+      See PR 22237 for full details.
+      E.g.
+      t = *a;
+      *b = t;
+      Cannot be convert into
+      t = *a;
+      *b = *a;
+      Though the following is allowed to be done:
+      t = *a;
+      *a = t;
+      And convert it into:
+      t = *a;
+      *a = *a;
+   */
+   if (!operand_equal_p (src2, dest, 0)
+       && !DECL_P (dest) && !DECL_P (src2))
+     return false;
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "Simplified\n  ");
+       print_gimple_stmt (dump_file, stmt, 0, dump_flags);
+       fprintf (dump_file, "after previous\n  ");
+       print_gimple_stmt (dump_file, defstmt, 0, dump_flags);
+     }
+   gimple_assign_set_rhs_from_tree (gsip, unshare_expr (src2));
+   update_stmt (stmt);
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "into\n  ");
+       print_gimple_stmt (dump_file, stmt, 0, dump_flags);
+     }
+   statistics_counter_event (cfun, "copy prop for aggregate", 1);
+   return true;
+ }
  
  /* *GSI_P is a GIMPLE_CALL to a builtin function.
     Optimize
*************** simplify_rotate (gimple_stmt_iterator *g
*** 2426,2442 ****
  }
  
  
! /* Check whether an array contains a valid ctz table.  */
  static bool
! check_ctz_array (tree ctor, unsigned HOST_WIDE_INT mulc,
! 		 HOST_WIDE_INT &zero_val, unsigned shift, unsigned bits)
  {
    tree elt, idx;
!   unsigned HOST_WIDE_INT i, mask, raw_idx = 0;
    unsigned matched = 0;
  
-   mask = ((HOST_WIDE_INT_1U << (bits - shift)) - 1) << shift;
- 
    zero_val = 0;
  
    FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (ctor), i, idx, elt)
--- 2508,2523 ----
  }
  
  
! /* Check whether an array contains a valid table according to VALIDATE_FN.  */
! template<typename ValidateFn>
  static bool
! check_table_array (tree ctor, HOST_WIDE_INT &zero_val, unsigned bits,
! 		  ValidateFn validate_fn)
  {
    tree elt, idx;
!   unsigned HOST_WIDE_INT i, raw_idx = 0;
    unsigned matched = 0;
  
    zero_val = 0;
  
    FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (ctor), i, idx, elt)
*************** check_ctz_array (tree ctor, unsigned HOS
*** 2476,2482 ****
  	  matched++;
  	}
  
!       if (val >= 0 && val < bits && (((mulc << val) & mask) >> shift) == index)
  	matched++;
  
        if (matched > bits)
--- 2557,2563 ----
  	  matched++;
  	}
  
!       if (val >= 0 && val < bits && validate_fn (val, index))
  	matched++;
  
        if (matched > bits)
*************** check_ctz_array (tree ctor, unsigned HOS
*** 2486,2533 ****
    return false;
  }
  
! /* Check whether a string contains a valid ctz table.  */
  static bool
! check_ctz_string (tree string, unsigned HOST_WIDE_INT mulc,
! 		  HOST_WIDE_INT &zero_val, unsigned shift, unsigned bits)
  {
    unsigned HOST_WIDE_INT len = TREE_STRING_LENGTH (string);
-   unsigned HOST_WIDE_INT mask;
    unsigned matched = 0;
    const unsigned char *p = (const unsigned char *) TREE_STRING_POINTER (string);
  
    if (len < bits || len > bits * 2)
      return false;
  
-   mask = ((HOST_WIDE_INT_1U << (bits - shift)) - 1) << shift;
- 
    zero_val = p[0];
  
    for (unsigned i = 0; i < len; i++)
!     if (p[i] < bits && (((mulc << p[i]) & mask) >> shift) == i)
        matched++;
  
    return matched == bits;
  }
  
! /* Recognize count trailing zeroes idiom.
     The canonical form is array[((x & -x) * C) >> SHIFT] where C is a magic
     constant which when multiplied by a power of 2 creates a unique value
     in the top 5 or 6 bits.  This is then indexed into a table which maps it
     to the number of trailing zeroes.  Array[0] is returned so the caller can
     emit an appropriate sequence depending on whether ctz (0) is defined on
     the target.  */
  static bool
! optimize_count_trailing_zeroes (tree array_ref, tree x, tree mulc,
! 				tree tshift, HOST_WIDE_INT &zero_val)
  {
!   tree type = TREE_TYPE (array_ref);
!   tree array = TREE_OPERAND (array_ref, 0);
  
!   gcc_assert (TREE_CODE (mulc) == INTEGER_CST);
!   gcc_assert (TREE_CODE (tshift) == INTEGER_CST);
  
!   tree input_type = TREE_TYPE (x);
    unsigned input_bits = tree_to_shwi (TYPE_SIZE (input_type));
  
    /* Check the array element type is not wider than 32 bits and the input is
--- 2567,2652 ----
    return false;
  }
  
! /* Check whether a string contains a valid table according to VALIDATE_FN.  */
! template<typename ValidateFn>
  static bool
! check_table_string (tree string, HOST_WIDE_INT &zero_val,unsigned bits,
! 		    ValidateFn validate_fn)
  {
    unsigned HOST_WIDE_INT len = TREE_STRING_LENGTH (string);
    unsigned matched = 0;
    const unsigned char *p = (const unsigned char *) TREE_STRING_POINTER (string);
  
    if (len < bits || len > bits * 2)
      return false;
  
    zero_val = p[0];
  
    for (unsigned i = 0; i < len; i++)
!     if (p[i] < bits && validate_fn (p[i], i))
        matched++;
  
    return matched == bits;
  }
  
! /* Check whether CTOR contains a valid table according to VALIDATE_FN.  */
! template<typename ValidateFn>
! static bool
! check_table (tree ctor, tree type, HOST_WIDE_INT &zero_val, unsigned bits,
! 	     ValidateFn validate_fn)
! {
!   if (TREE_CODE (ctor) == CONSTRUCTOR)
!     return check_table_array (ctor, zero_val, bits, validate_fn);
!   else if (TREE_CODE (ctor) == STRING_CST
! 	   && TYPE_PRECISION (type) == CHAR_TYPE_SIZE)
!     return check_table_string (ctor, zero_val, bits, validate_fn);
!   return false;
! }
! 
! /* Match.pd function to match the ctz expression.  */
! extern bool gimple_ctz_table_index (tree, tree *, tree (*)(tree));
! extern bool gimple_clz_table_index (tree, tree *, tree (*)(tree));
! 
! /* Recognize count leading and trailing zeroes idioms.
     The canonical form is array[((x & -x) * C) >> SHIFT] where C is a magic
     constant which when multiplied by a power of 2 creates a unique value
     in the top 5 or 6 bits.  This is then indexed into a table which maps it
     to the number of trailing zeroes.  Array[0] is returned so the caller can
     emit an appropriate sequence depending on whether ctz (0) is defined on
     the target.  */
+ 
  static bool
! simplify_count_zeroes (gimple_stmt_iterator *gsi)
  {
!   gimple *stmt = gsi_stmt (*gsi);
!   tree array_ref = gimple_assign_rhs1 (stmt);
!   tree res_ops[3];
  
!   gcc_checking_assert (TREE_CODE (array_ref) == ARRAY_REF);
  
!   internal_fn fn = IFN_LAST;
!   /* For CTZ we recognize ((x & -x) * C) >> SHIFT where the array data
!      represents the number of trailing zeros.  */
!   if (gimple_ctz_table_index (TREE_OPERAND (array_ref, 1), &res_ops[0], NULL))
!     fn = IFN_CTZ;
!   /* For CLZ we recognize
!        x |= x >> 1;
!        x |= x >> 2;
!        x |= x >> 4;
!        x |= x >> 8;
!        x |= x >> 16;
!        (x * C) >> SHIFT
!      where 31 minus the array data represents the number of leading zeros.  */
!   else if (gimple_clz_table_index (TREE_OPERAND (array_ref, 1), &res_ops[0],
! 				   NULL))
!     fn = IFN_CLZ;
!   else
!     return false;
! 
!   HOST_WIDE_INT zero_val;
!   tree type = TREE_TYPE (array_ref);
!   tree array = TREE_OPERAND (array_ref, 0);
!   tree input_type = TREE_TYPE (res_ops[0]);
    unsigned input_bits = tree_to_shwi (TYPE_SIZE (input_type));
  
    /* Check the array element type is not wider than 32 bits and the input is
*************** optimize_count_trailing_zeroes (tree arr
*** 2537,2543 ****
    if (input_bits != 32 && input_bits != 64)
      return false;
  
!   if (!direct_internal_fn_supported_p (IFN_CTZ, input_type, OPTIMIZE_FOR_BOTH))
      return false;
  
    /* Check the lower bound of the array is zero.  */
--- 2656,2662 ----
    if (input_bits != 32 && input_bits != 64)
      return false;
  
!   if (!direct_internal_fn_supported_p (fn, input_type, OPTIMIZE_FOR_BOTH))
      return false;
  
    /* Check the lower bound of the array is zero.  */
*************** optimize_count_trailing_zeroes (tree arr
*** 2545,2646 ****
    if (!low || !integer_zerop (low))
      return false;
  
-   unsigned shiftval = tree_to_shwi (tshift);
- 
    /* Check the shift extracts the top 5..7 bits.  */
    if (shiftval < input_bits - 7 || shiftval > input_bits - 5)
      return false;
  
    tree ctor = ctor_for_folding (array);
    if (!ctor)
      return false;
! 
!   unsigned HOST_WIDE_INT val = tree_to_uhwi (mulc);
! 
!   if (TREE_CODE (ctor) == CONSTRUCTOR)
!     return check_ctz_array (ctor, val, zero_val, shiftval, input_bits);
! 
!   if (TREE_CODE (ctor) == STRING_CST
!       && TYPE_PRECISION (type) == CHAR_TYPE_SIZE)
!     return check_ctz_string (ctor, val, zero_val, shiftval, input_bits);
! 
!   return false;
! }
! 
! /* Match.pd function to match the ctz expression.  */
! extern bool gimple_ctz_table_index (tree, tree *, tree (*)(tree));
! 
! static bool
! simplify_count_trailing_zeroes (gimple_stmt_iterator *gsi)
! {
!   gimple *stmt = gsi_stmt (*gsi);
!   tree array_ref = gimple_assign_rhs1 (stmt);
!   tree res_ops[3];
!   HOST_WIDE_INT zero_val;
! 
!   gcc_checking_assert (TREE_CODE (array_ref) == ARRAY_REF);
! 
!   if (!gimple_ctz_table_index (TREE_OPERAND (array_ref, 1), &res_ops[0], NULL))
!     return false;
! 
!   if (optimize_count_trailing_zeroes (array_ref, res_ops[0],
! 				      res_ops[1], res_ops[2], zero_val))
      {
!       tree type = TREE_TYPE (res_ops[0]);
!       HOST_WIDE_INT ctz_val = 0;
!       HOST_WIDE_INT type_size = tree_to_shwi (TYPE_SIZE (type));
!       bool zero_ok
! 	= CTZ_DEFINED_VALUE_AT_ZERO (SCALAR_INT_TYPE_MODE (type), ctz_val) == 2;
!       int nargs = 2;
! 
!       /* If the input value can't be zero, don't special case ctz (0).  */
!       if (tree_expr_nonzero_p (res_ops[0]))
  	{
! 	  zero_ok = true;
! 	  zero_val = 0;
! 	  ctz_val = 0;
! 	  nargs = 1;
! 	}
! 
!       /* Skip if there is no value defined at zero, or if we can't easily
! 	 return the correct value for zero.  */
!       if (!zero_ok)
! 	return false;
!       if (zero_val != ctz_val && !(zero_val == 0 && ctz_val == type_size))
  	return false;
  
!       gimple_seq seq = NULL;
!       gimple *g;
!       gcall *call
! 	= gimple_build_call_internal (IFN_CTZ, nargs, res_ops[0],
! 				      nargs == 1 ? NULL_TREE
! 				      : build_int_cst (integer_type_node,
! 						       ctz_val));
!       gimple_set_location (call, gimple_location (stmt));
!       gimple_set_lhs (call, make_ssa_name (integer_type_node));
!       gimple_seq_add_stmt (&seq, call);
  
!       tree prev_lhs = gimple_call_lhs (call);
  
!       /* Emit ctz (x) & 31 if ctz (0) is 32 but we need to return 0.  */
!       if (zero_val == 0 && ctz_val == type_size)
! 	{
! 	  g = gimple_build_assign (make_ssa_name (integer_type_node),
! 				   BIT_AND_EXPR, prev_lhs,
! 				   build_int_cst (integer_type_node,
! 						  type_size - 1));
! 	  gimple_set_location (g, gimple_location (stmt));
! 	  gimple_seq_add_stmt (&seq, g);
! 	  prev_lhs = gimple_assign_lhs (g);
! 	}
  
!       g = gimple_build_assign (gimple_assign_lhs (stmt), NOP_EXPR, prev_lhs);
        gimple_seq_add_stmt (&seq, g);
!       gsi_replace_with_seq (gsi, seq, true);
!       return true;
      }
  
!   return false;
  }
  
  
--- 2664,2790 ----
    if (!low || !integer_zerop (low))
      return false;
  
    /* Check the shift extracts the top 5..7 bits.  */
+   unsigned shiftval = tree_to_shwi (res_ops[2]);
    if (shiftval < input_bits - 7 || shiftval > input_bits - 5)
      return false;
  
    tree ctor = ctor_for_folding (array);
    if (!ctor)
      return false;
!   unsigned HOST_WIDE_INT mulval = tree_to_uhwi (res_ops[1]);
!   if (fn == IFN_CTZ)
      {
!       auto checkfn = [&](unsigned data, unsigned i) -> bool
  	{
! 	  unsigned HOST_WIDE_INT mask
! 	    = ((HOST_WIDE_INT_1U << (input_bits - shiftval)) - 1) << shiftval;
! 	  return (((mulval << data) & mask) >> shiftval) == i;
! 	};
!       if (!check_table (ctor, type, zero_val, input_bits, checkfn))
  	return false;
+     }
+   else if (fn == IFN_CLZ)
+     {
+       auto checkfn = [&](unsigned data, unsigned i) -> bool
+ 	{
+ 	  unsigned HOST_WIDE_INT mask
+ 	    = ((HOST_WIDE_INT_1U << (input_bits - shiftval)) - 1) << shiftval;
+ 	  return (((((HOST_WIDE_INT_1U << (data + 1)) - 1) * mulval) & mask)
+ 		  >> shiftval) == i;
+ 	};
+     if (!check_table (ctor, type, zero_val, input_bits, checkfn))
+       return false;
+     }
  
!   HOST_WIDE_INT ctz_val = -1;
!   bool zero_ok;
!   if (fn == IFN_CTZ)
!     {
!       ctz_val = 0;
!       zero_ok = CTZ_DEFINED_VALUE_AT_ZERO (SCALAR_INT_TYPE_MODE (input_type),
! 					   ctz_val) == 2;
!     }
!   else if (fn == IFN_CLZ)
!     {
!       ctz_val = 32;
!       zero_ok = CLZ_DEFINED_VALUE_AT_ZERO (SCALAR_INT_TYPE_MODE (input_type),
! 					   ctz_val) == 2;
!       zero_val = input_bits - 1 - zero_val;
!     }
!   int nargs = 2;
  
!   /* If the input value can't be zero, don't special case ctz (0).  */
!   range_query *q = get_range_query (cfun);
!   if (q == get_global_range_query ())
!     q = enable_ranger (cfun);
!   int_range_max vr;
!   if (q->range_of_expr (vr, res_ops[0], stmt)
!       && !range_includes_zero_p (vr))
!     {
!       zero_ok = true;
!       zero_val = 0;
!       ctz_val = 0;
!       nargs = 1;
!     }
  
!   gimple_seq seq = NULL;
!   gimple *g;
!   gcall *call = gimple_build_call_internal (fn, nargs, res_ops[0],
! 					    nargs == 1 ? NULL_TREE
! 					    : build_int_cst (integer_type_node,
! 							     ctz_val));
!   gimple_set_location (call, gimple_location (stmt));
!   gimple_set_lhs (call, make_ssa_name (integer_type_node));
!   gimple_seq_add_stmt (&seq, call);
  
!   tree prev_lhs = gimple_call_lhs (call);
!   if (fn == IFN_CLZ)
!     {
!       g = gimple_build_assign (make_ssa_name (integer_type_node),
! 			       MINUS_EXPR,
! 			       build_int_cst (integer_type_node,
! 					      input_bits - 1),
! 			       prev_lhs);
!       gimple_set_location (g, gimple_location (stmt));
        gimple_seq_add_stmt (&seq, g);
!       prev_lhs = gimple_assign_lhs (g);
      }
  
!   if (zero_ok && zero_val == ctz_val)
!     ;
!   /* Emit ctz (x) & 31 if ctz (0) is 32 but we need to return 0.  */
!   else if (zero_ok && zero_val == 0 && ctz_val == input_bits)
!     {
!       g = gimple_build_assign (make_ssa_name (integer_type_node),
! 			       BIT_AND_EXPR, prev_lhs,
! 			       build_int_cst (integer_type_node,
! 					      input_bits - 1));
!       gimple_set_location (g, gimple_location (stmt));
!       gimple_seq_add_stmt (&seq, g);
!       prev_lhs = gimple_assign_lhs (g);
!     }
!   /* As fallback emit a conditional move.  */
!   else
!     {
!       g = gimple_build_assign (make_ssa_name (boolean_type_node), EQ_EXPR,
! 			       res_ops[0], build_zero_cst (input_type));
!       gimple_set_location (g, gimple_location (stmt));
!       gimple_seq_add_stmt (&seq, g);
!       tree cond = gimple_assign_lhs (g);
!       g = gimple_build_assign (make_ssa_name (integer_type_node),
! 			       COND_EXPR, cond,
! 			       build_int_cst (integer_type_node, zero_val),
! 			       prev_lhs);
!       gimple_set_location (g, gimple_location (stmt));
!       gimple_seq_add_stmt (&seq, g);
!       prev_lhs = gimple_assign_lhs (g);
!     }
! 
!   g = gimple_build_assign (gimple_assign_lhs (stmt), NOP_EXPR, prev_lhs);
!   gimple_seq_add_stmt (&seq, g);
!   gsi_replace_with_seq (gsi, seq, true);
!   return true;
  }
  
  
*************** pass_forwprop::execute (function *fun)
*** 4724,4729 ****
--- 4868,4878 ----
  			    changed = true;
  			    break;
  			  }
+ 			if (optimize_agr_copyprop (&gsi))
+ 			  {
+ 			    changed = true;
+ 			    break;
+ 			  }
  		      }
  
  		    if (TREE_CODE_CLASS (code) == tcc_comparison)
*************** pass_forwprop::execute (function *fun)
*** 4750,4756 ****
  			     && TREE_CODE (TREE_TYPE (rhs1)) == VECTOR_TYPE)
  		      changed |= simplify_vector_constructor (&gsi);
  		    else if (code == ARRAY_REF)
! 		      changed |= simplify_count_trailing_zeroes (&gsi);
  		    break;
  		  }
  
--- 4899,4905 ----
  			     && TREE_CODE (TREE_TYPE (rhs1)) == VECTOR_TYPE)
  		      changed |= simplify_vector_constructor (&gsi);
  		    else if (code == ARRAY_REF)
! 		      changed |= simplify_count_zeroes (&gsi);
  		    break;
  		  }
  
diff -Nrcpad gcc-16-20250601/gcc/tree-ssa-phiopt.cc gcc-16-20250608/gcc/tree-ssa-phiopt.cc
*** gcc-16-20250601/gcc/tree-ssa-phiopt.cc	Sun Jun  1 22:32:33 2025
--- gcc-16-20250608/gcc/tree-ssa-phiopt.cc	Sun Jun  8 22:32:40 2025
*************** cond_store_replacement (basic_block midd
*** 3605,3611 ****
  static bool
  cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb,
  				  basic_block join_bb, gimple *then_assign,
! 				  gimple *else_assign)
  {
    tree lhs_base, lhs, then_rhs, else_rhs, name;
    location_t then_locus, else_locus;
--- 3605,3612 ----
  static bool
  cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb,
  				  basic_block join_bb, gimple *then_assign,
! 				  gimple *else_assign,
! 				  gphi *vphi)
  {
    tree lhs_base, lhs, then_rhs, else_rhs, name;
    location_t then_locus, else_locus;
*************** cond_if_else_store_replacement_1 (basic_
*** 3672,3677 ****
--- 3673,3686 ----
    add_phi_arg (newphi, else_rhs, EDGE_SUCC (else_bb, 0), else_locus);
  
    new_stmt = gimple_build_assign (lhs, gimple_phi_result (newphi));
+   /* Update the vdef for the new store statement. */
+   tree newvphilhs = make_ssa_name (gimple_vop (cfun));
+   tree vdef = gimple_phi_result (vphi);
+   gimple_set_vuse (new_stmt, newvphilhs);
+   gimple_set_vdef (new_stmt, vdef);
+   gimple_phi_set_result (vphi, newvphilhs);
+   SSA_NAME_DEF_STMT (vdef) = new_stmt;
+   update_stmt (vphi);
    if (dump_file && (dump_flags & TDF_DETAILS))
      {
        fprintf(dump_file, "to use phi:\n");
*************** cond_if_else_store_replacement_1 (basic_
*** 3699,3708 ****
  }
  
  /* Return the single store in BB with VDEF or NULL if there are
!    other stores in the BB or loads following the store.  */
  
  static gimple *
! single_trailing_store_in_bb (basic_block bb, tree vdef)
  {
    if (SSA_NAME_IS_DEFAULT_DEF (vdef))
      return NULL;
--- 3708,3718 ----
  }
  
  /* Return the single store in BB with VDEF or NULL if there are
!    other stores in the BB or loads following the store. VPHI is
!    where the only use of the vdef should be.  */
  
  static gimple *
! single_trailing_store_in_bb (basic_block bb, tree vdef, gphi *vphi)
  {
    if (SSA_NAME_IS_DEFAULT_DEF (vdef))
      return NULL;
*************** single_trailing_store_in_bb (basic_block
*** 3717,3733 ****
        && gimple_code (SSA_NAME_DEF_STMT (gimple_vuse (store))) != GIMPLE_PHI)
      return NULL;
  
!   /* Verify there is no load or store after the store.  */
    use_operand_p use_p;
!   imm_use_iterator imm_iter;
!   FOR_EACH_IMM_USE_FAST (use_p, imm_iter, gimple_vdef (store))
!     if (USE_STMT (use_p) != store
! 	&& gimple_bb (USE_STMT (use_p)) == bb)
!       return NULL;
  
    return store;
  }
  
  /* Conditional store replacement.  We already know
     that the recognized pattern looks like so:
  
--- 3727,3788 ----
        && gimple_code (SSA_NAME_DEF_STMT (gimple_vuse (store))) != GIMPLE_PHI)
      return NULL;
  
!   /* Verify there is no load or store after the store, the vdef of the store
!      should only be used by the vphi joining the 2 bbs.  */
    use_operand_p use_p;
!   gimple *use_stmt;
!   if (!single_imm_use (gimple_vdef (store), &use_p, &use_stmt))
!     return NULL;
!   if (use_stmt != vphi)
!     return NULL;
  
    return store;
  }
  
+ /* Limited Conditional store replacement.  We already know
+    that the recognized pattern looks like so:
+ 
+    split:
+      if (cond) goto THEN_BB; else goto ELSE_BB (edge E1)
+    THEN_BB:
+      ...
+      ONLY_STORE = Y;
+      ...
+      goto JOIN_BB;
+    ELSE_BB:
+      ...
+      ONLY_STORE = Z;
+      ...
+      fallthrough (edge E0)
+    JOIN_BB:
+      some more
+ 
+    Handles only the case with single store in THEN_BB and ELSE_BB.  That is
+    cheap enough due to in phiopt and not worry about heurstics.  Moving the store
+    out might provide an opportunity for a phiopt to happen.  */
+ 
+ static bool
+ cond_if_else_store_replacement_limited (basic_block then_bb, basic_block else_bb,
+ 					basic_block join_bb)
+ {
+   gphi *vphi = get_virtual_phi (join_bb);
+   if (!vphi)
+     return false;
+ 
+   tree then_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (then_bb));
+   gimple *then_assign = single_trailing_store_in_bb (then_bb, then_vdef, vphi);
+   if (!then_assign)
+     return false;
+ 
+   tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb));
+   gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef, vphi);
+   if (!else_assign)
+     return false;
+ 
+   return cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb,
+ 					   then_assign, else_assign, vphi);
+ }
+ 
  /* Conditional store replacement.  We already know
     that the recognized pattern looks like so:
  
*************** cond_if_else_store_replacement (basic_bl
*** 3764,3788 ****
    /* Handle the case with single store in THEN_BB and ELSE_BB.  That is
       cheap enough to always handle as it allows us to elide dependence
       checking.  */
!   gphi *vphi = NULL;
!   for (gphi_iterator si = gsi_start_phis (join_bb); !gsi_end_p (si);
!        gsi_next (&si))
!     if (virtual_operand_p (gimple_phi_result (si.phi ())))
!       {
! 	vphi = si.phi ();
! 	break;
!       }
    if (!vphi)
      return false;
    tree then_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (then_bb));
!   tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb));
!   gimple *then_assign = single_trailing_store_in_bb (then_bb, then_vdef);
    if (then_assign)
      {
!       gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef);
        if (else_assign)
  	return cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb,
! 						 then_assign, else_assign);
      }
  
    /* If either vectorization or if-conversion is disabled then do
--- 3819,3838 ----
    /* Handle the case with single store in THEN_BB and ELSE_BB.  That is
       cheap enough to always handle as it allows us to elide dependence
       checking.  */
!   gphi *vphi = get_virtual_phi (join_bb);
    if (!vphi)
      return false;
    tree then_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (then_bb));
!   gimple *then_assign = single_trailing_store_in_bb (then_bb, then_vdef, vphi);
    if (then_assign)
      {
!       tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb));
!       gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef,
! 							 vphi);
        if (else_assign)
  	return cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb,
! 						 then_assign, else_assign,
! 						 vphi);
      }
  
    /* If either vectorization or if-conversion is disabled then do
*************** cond_if_else_store_replacement (basic_bl
*** 3921,3927 ****
        then_store = store_pair.first;
        else_store = store_pair.second;
        res = cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb,
!                                               then_store, else_store);
        ok = ok || res;
      }
  
--- 3971,3977 ----
        then_store = store_pair.first;
        else_store = store_pair.second;
        res = cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb,
! 					      then_store, else_store, vphi);
        ok = ok || res;
      }
  
*************** pass_phiopt::execute (function *)
*** 4456,4461 ****
--- 4506,4516 ----
  	      && !predictable_edge_p (EDGE_SUCC (bb, 0))
  	      && !predictable_edge_p (EDGE_SUCC (bb, 1)))
  	    hoist_adjacent_loads (bb, bb1, bb2, bb3);
+ 
+ 	  /* Try to see if there are only one store in each side of the if
+ 	     and try to remove that.  */
+ 	  if (EDGE_COUNT (bb3->preds) == 2)
+ 	    cond_if_else_store_replacement_limited (bb1, bb2, bb3);
  	}
  
        gimple_stmt_iterator gsi;
diff -Nrcpad gcc-16-20250601/gcc/tree-ssanames.cc gcc-16-20250608/gcc/tree-ssanames.cc
*** gcc-16-20250601/gcc/tree-ssanames.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/gcc/tree-ssanames.cc	Sun Jun  8 22:32:40 2025
*************** get_nonzero_bits_1 (const_tree name)
*** 508,513 ****
--- 508,521 ----
    /* Use element_precision instead of TYPE_PRECISION so complex and
       vector types get a non-zero precision.  */
    unsigned int precision = element_precision (TREE_TYPE (name));
+ 
+   if (VECTOR_TYPE_P (TREE_TYPE (name)))
+     {
+       tree elem = uniform_vector_p (name);
+       if (elem)
+ 	return get_nonzero_bits_1 (elem);
+     }
+ 
    if (TREE_CODE (name) != SSA_NAME)
      return wi::shwi (-1, precision);
  
diff -Nrcpad gcc-16-20250601/gcc/tree-switch-conversion.cc gcc-16-20250608/gcc/tree-switch-conversion.cc
*** gcc-16-20250601/gcc/tree-switch-conversion.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/gcc/tree-switch-conversion.cc	Sun Jun  8 22:32:40 2025
*************** switch_conversion::build_one_array (int
*** 1030,1035 ****
--- 1030,1038 ----
        TREE_CONSTANT (decl) = 1;
        TREE_READONLY (decl) = 1;
        DECL_IGNORED_P (decl) = 1;
+       /* The decl is mergable since we don't take the address ever and
+ 	 just reading from it. */
+       DECL_MERGEABLE (decl) = 1;
        if (offloading_function_p (cfun->decl))
  	DECL_ATTRIBUTES (decl)
  	  = tree_cons (get_identifier ("omp declare target"), NULL_TREE,
diff -Nrcpad gcc-16-20250601/gcc/tree-vect-data-refs.cc gcc-16-20250608/gcc/tree-vect-data-refs.cc
*** gcc-16-20250601/gcc/tree-vect-data-refs.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/gcc/tree-vect-data-refs.cc	Sun Jun  8 22:32:40 2025
*************** vect_analyze_data_ref_accesses (vec_info
*** 3685,3691 ****
  	      /* For datarefs with big gap, it's better to split them into different
  		 groups.
  		 .i.e a[0], a[1], a[2], .. a[7], a[100], a[101],..., a[107]  */
! 	      if ((unsigned HOST_WIDE_INT)(init_b - init_prev) * tree_to_uhwi (szb)
  		  > MAX_BITSIZE_MODE_ANY_MODE / BITS_PER_UNIT)
  		break;
  
--- 3685,3691 ----
  	      /* For datarefs with big gap, it's better to split them into different
  		 groups.
  		 .i.e a[0], a[1], a[2], .. a[7], a[100], a[101],..., a[107]  */
! 	      if ((unsigned HOST_WIDE_INT)(init_b - init_prev)
  		  > MAX_BITSIZE_MODE_ANY_MODE / BITS_PER_UNIT)
  		break;
  
*************** vect_can_force_dr_alignment_p (const_tre
*** 7249,7255 ****
      return false;
  
    if (decl_in_symtab_p (decl)
!       && !symtab_node::get (decl)->can_increase_alignment_p ())
      return false;
  
    if (TREE_STATIC (decl))
--- 7249,7256 ----
      return false;
  
    if (decl_in_symtab_p (decl)
!       && (!symtab_node::get (decl)
! 	  || !symtab_node::get (decl)->can_increase_alignment_p ()))
      return false;
  
    if (TREE_STATIC (decl))
diff -Nrcpad gcc-16-20250601/gcc/tree-vect-stmts.cc gcc-16-20250608/gcc/tree-vect-stmts.cc
*** gcc-16-20250601/gcc/tree-vect-stmts.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/gcc/tree-vect-stmts.cc	Sun Jun  8 22:32:40 2025
*************** get_group_load_store_type (vec_info *vin
*** 2097,2406 ****
       known at compile time.  */
    gcc_assert (!STMT_VINFO_STRIDED_P (first_stmt_info) || gap == 0);
  
!   /* Stores can't yet have gaps.  */
!   gcc_assert (slp_node || vls_type == VLS_LOAD || gap == 0);
! 
!   if (slp_node)
      {
!       /* For SLP vectorization we directly vectorize a subchain
! 	 without permutation.  */
!       if (! SLP_TREE_LOAD_PERMUTATION (slp_node).exists ())
! 	first_dr_info
! 	  = STMT_VINFO_DR_INFO (SLP_TREE_SCALAR_STMTS (slp_node)[0]);
!       if (STMT_VINFO_STRIDED_P (first_stmt_info))
! 	/* Try to use consecutive accesses of as many elements as possible,
! 	   separated by the stride, until we have a complete vector.
! 	   Fall back to scalar accesses if that isn't possible.  */
! 	*memory_access_type = VMAT_STRIDED_SLP;
!       else
  	{
! 	  int cmp = compare_step_with_zero (vinfo, stmt_info);
! 	  if (cmp < 0)
  	    {
! 	      if (single_element_p)
! 		/* ???  The VMAT_CONTIGUOUS_REVERSE code generation is
! 		   only correct for single element "interleaving" SLP.  */
! 		*memory_access_type = get_negative_load_store_type
! 			     (vinfo, stmt_info, vectype, vls_type, 1,
! 			      &neg_ldst_offset);
  	      else
! 		{
! 		  /* Try to use consecutive accesses of DR_GROUP_SIZE elements,
! 		     separated by the stride, until we have a complete vector.
! 		     Fall back to scalar accesses if that isn't possible.  */
! 		  if (multiple_p (nunits, group_size))
! 		    *memory_access_type = VMAT_STRIDED_SLP;
! 		  else
! 		    *memory_access_type = VMAT_ELEMENTWISE;
! 		}
! 	    }
! 	  else if (cmp == 0 && loop_vinfo)
! 	    {
! 	      gcc_assert (vls_type == VLS_LOAD);
! 	      *memory_access_type = VMAT_INVARIANT;
  	    }
! 	  /* Try using LOAD/STORE_LANES.  */
! 	  else if (slp_node->ldst_lanes
! 		   && (*lanes_ifn
! 			 = (vls_type == VLS_LOAD
! 			    ? vect_load_lanes_supported (vectype, group_size,
! 							 masked_p, elsvals)
! 			    : vect_store_lanes_supported (vectype, group_size,
! 							  masked_p))) != IFN_LAST)
! 	    *memory_access_type = VMAT_LOAD_STORE_LANES;
! 	  else if (!loop_vinfo && slp_node->avoid_stlf_fail)
  	    {
  	      *memory_access_type = VMAT_ELEMENTWISE;
  	      if (dump_enabled_p ())
  		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				 "using element-wise load to avoid disrupting "
! 				 "cross iteration store-to-load forwarding\n");
  	    }
  	  else
- 	    *memory_access_type = VMAT_CONTIGUOUS;
- 
- 	  /* If this is single-element interleaving with an element
- 	     distance that leaves unused vector loads around fall back
- 	     to elementwise access if possible - we otherwise least
- 	     create very sub-optimal code in that case (and
- 	     blow up memory, see PR65518).  */
- 	  if (loop_vinfo
- 	      && single_element_p
- 	      && (*memory_access_type == VMAT_CONTIGUOUS
- 		  || *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
- 	      && maybe_gt (group_size, TYPE_VECTOR_SUBPARTS (vectype)))
  	    {
- 	      if (SLP_TREE_LANES (slp_node) == 1)
- 		{
- 		  *memory_access_type = VMAT_ELEMENTWISE;
- 		  if (dump_enabled_p ())
- 		    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
- 				     "single-element interleaving not supported "
- 				     "for not adjacent vector loads, using "
- 				     "elementwise access\n");
- 		}
- 	      else
- 		{
- 		  if (dump_enabled_p ())
- 		    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
- 				     "single-element interleaving not supported "
- 				     "for not adjacent vector loads\n");
- 		  return false;
- 		}
- 	    }
- 
- 	  /* For single-element interleaving also fall back to elementwise
- 	     access in case we did not lower a permutation and cannot
- 	     code generate it.  */
- 	  auto_vec<tree> temv;
- 	  unsigned n_perms;
- 	  if (loop_vinfo
- 	      && single_element_p
- 	      && SLP_TREE_LANES (slp_node) == 1
- 	      && (*memory_access_type == VMAT_CONTIGUOUS
- 		  || *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
- 	      && SLP_TREE_LOAD_PERMUTATION (slp_node).exists ()
- 	      && !vect_transform_slp_perm_load
- 		    (loop_vinfo, slp_node, temv, NULL,
- 		     LOOP_VINFO_VECT_FACTOR (loop_vinfo), true, &n_perms))
- 	    {
- 	      *memory_access_type = VMAT_ELEMENTWISE;
  	      if (dump_enabled_p ())
  		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				 "single-element interleaving permutation not "
! 				 "supported, using elementwise access\n");
! 	    }
! 
! 	  overrun_p = (loop_vinfo && gap != 0
! 		       && *memory_access_type != VMAT_ELEMENTWISE);
! 	  if (overrun_p && vls_type != VLS_LOAD)
! 	    {
! 	      dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			       "Grouped store with gaps requires"
! 			       " non-consecutive accesses\n");
  	      return false;
  	    }
  
! 	  unsigned HOST_WIDE_INT dr_size
! 	    = vect_get_scalar_dr_size (first_dr_info);
! 	  poly_int64 off = 0;
! 	  if (*memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	    off = (TYPE_VECTOR_SUBPARTS (vectype) - 1) * -dr_size;
! 
! 	  /* An overrun is fine if the trailing elements are smaller
! 	     than the alignment boundary B.  Every vector access will
! 	     be a multiple of B and so we are guaranteed to access a
! 	     non-gap element in the same B-sized block.  */
! 	  if (overrun_p
! 	      && gap < (vect_known_alignment_in_bytes (first_dr_info,
! 						       vectype, off) / dr_size))
! 	    overrun_p = false;
  
! 	  /* When we have a contiguous access across loop iterations
! 	     but the access in the loop doesn't cover the full vector
! 	     we can end up with no gap recorded but still excess
! 	     elements accessed, see PR103116.  Make sure we peel for
! 	     gaps if necessary and sufficient and give up if not.
  
! 	     If there is a combination of the access not covering the full
! 	     vector and a gap recorded then we may need to peel twice.  */
! 	  bool large_vector_overrun_p = false;
! 	  if (loop_vinfo
! 	      && (*memory_access_type == VMAT_CONTIGUOUS
! 		  || *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	      && SLP_TREE_LOAD_PERMUTATION (slp_node).exists ()
! 	      && !multiple_p (group_size * LOOP_VINFO_VECT_FACTOR (loop_vinfo),
! 			      nunits))
! 	    large_vector_overrun_p = overrun_p = true;
  
! 	  /* If the gap splits the vector in half and the target
! 	     can do half-vector operations avoid the epilogue peeling
! 	     by simply loading half of the vector only.  Usually
! 	     the construction with an upper zero half will be elided.  */
! 	  dr_alignment_support alss;
! 	  int misalign = dr_misalignment (first_dr_info, vectype, off);
! 	  tree half_vtype;
! 	  poly_uint64 remain;
! 	  unsigned HOST_WIDE_INT tem, num;
! 	  if (overrun_p
! 	      && !masked_p
! 	      && *memory_access_type != VMAT_LOAD_STORE_LANES
! 	      && (((alss = vect_supportable_dr_alignment (vinfo, first_dr_info,
! 							  vectype, misalign)))
! 		   == dr_aligned
! 		  || alss == dr_unaligned_supported)
! 	      && can_div_trunc_p (group_size
! 				  * LOOP_VINFO_VECT_FACTOR (loop_vinfo) - gap,
! 				  nunits, &tem, &remain)
! 	      && (known_eq (remain, 0u)
! 		  || (known_ne (remain, 0u)
! 		      && constant_multiple_p (nunits, remain, &num)
! 		      && (vector_vector_composition_type (vectype, num,
! 							  &half_vtype)
! 			  != NULL_TREE))))
! 	    overrun_p = false;
  
! 	  if (overrun_p && !can_overrun_p)
! 	    {
! 	      if (dump_enabled_p ())
! 		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				 "Peeling for outer loop is not supported\n");
! 	      return false;
! 	    }
  
! 	  /* Peeling for gaps assumes that a single scalar iteration
! 	     is enough to make sure the last vector iteration doesn't
! 	     access excess elements.  */
! 	  if (overrun_p
! 	      && (!can_div_trunc_p (group_size
! 				    * LOOP_VINFO_VECT_FACTOR (loop_vinfo) - gap,
! 				    nunits, &tem, &remain)
! 		  || maybe_lt (remain + group_size, nunits)))
! 	    {
! 	      /* But peeling a single scalar iteration is enough if
! 		 we can use the next power-of-two sized partial
! 		 access and that is sufficiently small to be covered
! 		 by the single scalar iteration.  */
! 	      unsigned HOST_WIDE_INT cnunits, cvf, cremain, cpart_size;
! 	      if (masked_p
! 		  || !nunits.is_constant (&cnunits)
! 		  || !LOOP_VINFO_VECT_FACTOR (loop_vinfo).is_constant (&cvf)
! 		  || (((cremain = (group_size * cvf - gap) % cnunits), true)
! 		      && ((cpart_size = (1 << ceil_log2 (cremain))), true)
! 		      && (cremain + group_size < cpart_size
! 			  || vector_vector_composition_type
! 			       (vectype, cnunits / cpart_size,
! 				&half_vtype) == NULL_TREE)))
! 		{
! 		  /* If all fails we can still resort to niter masking unless
! 		     the vectors used are too big, so enforce the use of
! 		     partial vectors.  */
! 		  if (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo)
! 		      && !large_vector_overrun_p)
! 		    {
! 		      if (dump_enabled_p ())
! 			dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 					 "peeling for gaps insufficient for "
! 					 "access unless using partial "
! 					 "vectors\n");
! 		      LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P (loop_vinfo) = true;
! 		    }
! 		  else
! 		    {
! 		      if (dump_enabled_p ())
! 			dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 					 "peeling for gaps insufficient for "
! 					 "access\n");
! 		      return false;
! 		    }
! 		}
! 	      else if (large_vector_overrun_p)
! 		{
! 		  if (dump_enabled_p ())
! 		    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				     "can't operate on partial vectors because "
! 				     "only unmasked loads handle access "
! 				     "shortening required because of gaps at "
! 				     "the end of the access\n");
! 		  LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo) = false;
! 		}
! 	    }
! 	}
!     }
!   else
!     {
!       /* We can always handle this case using elementwise accesses,
! 	 but see if something more efficient is available.  */
!       *memory_access_type = VMAT_ELEMENTWISE;
  
!       /* If there is a gap at the end of the group then these optimizations
! 	 would access excess elements in the last iteration.  */
!       bool would_overrun_p = (gap != 0);
!       /* An overrun is fine if the trailing elements are smaller than the
! 	 alignment boundary B.  Every vector access will be a multiple of B
! 	 and so we are guaranteed to access a non-gap element in the
! 	 same B-sized block.  */
!       if (would_overrun_p
  	  && !masked_p
! 	  && gap < (vect_known_alignment_in_bytes (first_dr_info, vectype)
! 		    / vect_get_scalar_dr_size (first_dr_info)))
! 	would_overrun_p = false;
  
!       if (!STMT_VINFO_STRIDED_P (first_stmt_info)
! 	  && (can_overrun_p || !would_overrun_p)
! 	  && compare_step_with_zero (vinfo, stmt_info) > 0)
  	{
! 	  /* First cope with the degenerate case of a single-element
! 	     vector.  */
! 	  if (known_eq (TYPE_VECTOR_SUBPARTS (vectype), 1U))
! 	    ;
  
! 	  else
  	    {
! 	      /* Otherwise try using LOAD/STORE_LANES.  */
! 	      *lanes_ifn
! 		= vls_type == VLS_LOAD
! 		    ? vect_load_lanes_supported (vectype, group_size, masked_p,
! 						 elsvals)
! 		    : vect_store_lanes_supported (vectype, group_size,
! 						  masked_p);
! 	      if (*lanes_ifn != IFN_LAST)
  		{
! 		  *memory_access_type = VMAT_LOAD_STORE_LANES;
! 		  overrun_p = would_overrun_p;
  		}
! 
! 	      /* If that fails, try using permuting loads.  */
! 	      else if (vls_type == VLS_LOAD
! 			 ? vect_grouped_load_supported (vectype,
! 							single_element_p,
! 							group_size)
! 			 : vect_grouped_store_supported (vectype, group_size))
  		{
! 		  *memory_access_type = VMAT_CONTIGUOUS_PERMUTE;
! 		  overrun_p = would_overrun_p;
  		}
  	    }
  	}
      }
  
--- 2097,2342 ----
       known at compile time.  */
    gcc_assert (!STMT_VINFO_STRIDED_P (first_stmt_info) || gap == 0);
  
!   /* For SLP vectorization we directly vectorize a subchain
!      without permutation.  */
!   if (! SLP_TREE_LOAD_PERMUTATION (slp_node).exists ())
!     first_dr_info = STMT_VINFO_DR_INFO (SLP_TREE_SCALAR_STMTS (slp_node)[0]);
!   if (STMT_VINFO_STRIDED_P (first_stmt_info))
!     /* Try to use consecutive accesses of as many elements as possible,
!        separated by the stride, until we have a complete vector.
!        Fall back to scalar accesses if that isn't possible.  */
!     *memory_access_type = VMAT_STRIDED_SLP;
!   else
      {
!       int cmp = compare_step_with_zero (vinfo, stmt_info);
!       if (cmp < 0)
  	{
! 	  if (single_element_p)
! 	    /* ???  The VMAT_CONTIGUOUS_REVERSE code generation is
! 	       only correct for single element "interleaving" SLP.  */
! 	    *memory_access_type = get_negative_load_store_type
! 		(vinfo, stmt_info, vectype, vls_type, 1,
! 		 &neg_ldst_offset);
! 	  else
  	    {
! 	      /* Try to use consecutive accesses of DR_GROUP_SIZE elements,
! 		 separated by the stride, until we have a complete vector.
! 		 Fall back to scalar accesses if that isn't possible.  */
! 	      if (multiple_p (nunits, group_size))
! 		*memory_access_type = VMAT_STRIDED_SLP;
  	      else
! 		*memory_access_type = VMAT_ELEMENTWISE;
  	    }
! 	}
!       else if (cmp == 0 && loop_vinfo)
! 	{
! 	  gcc_assert (vls_type == VLS_LOAD);
! 	  *memory_access_type = VMAT_INVARIANT;
! 	}
!       /* Try using LOAD/STORE_LANES.  */
!       else if (slp_node->ldst_lanes
! 	       && (*lanes_ifn
! 		   = (vls_type == VLS_LOAD
! 		      ? vect_load_lanes_supported (vectype, group_size,
! 						   masked_p, elsvals)
! 		      : vect_store_lanes_supported (vectype, group_size,
! 						    masked_p))) != IFN_LAST)
! 	*memory_access_type = VMAT_LOAD_STORE_LANES;
!       else if (!loop_vinfo && slp_node->avoid_stlf_fail)
! 	{
! 	  *memory_access_type = VMAT_ELEMENTWISE;
! 	  if (dump_enabled_p ())
! 	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			     "using element-wise load to avoid disrupting "
! 			     "cross iteration store-to-load forwarding\n");
! 	}
!       else
! 	*memory_access_type = VMAT_CONTIGUOUS;
! 
!       /* If this is single-element interleaving with an element
! 	 distance that leaves unused vector loads around fall back
! 	 to elementwise access if possible - we otherwise least
! 	 create very sub-optimal code in that case (and
! 	 blow up memory, see PR65518).  */
!       if (loop_vinfo
! 	  && single_element_p
! 	  && (*memory_access_type == VMAT_CONTIGUOUS
! 	      || *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	  && maybe_gt (group_size, TYPE_VECTOR_SUBPARTS (vectype)))
! 	{
! 	  if (SLP_TREE_LANES (slp_node) == 1)
  	    {
  	      *memory_access_type = VMAT_ELEMENTWISE;
  	      if (dump_enabled_p ())
  		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				 "single-element interleaving not supported "
! 				 "for not adjacent vector loads, using "
! 				 "elementwise access\n");
  	    }
  	  else
  	    {
  	      if (dump_enabled_p ())
  		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				 "single-element interleaving not supported "
! 				 "for not adjacent vector loads\n");
  	      return false;
  	    }
+ 	}
  
!       /* For single-element interleaving also fall back to elementwise
! 	 access in case we did not lower a permutation and cannot
! 	 code generate it.  */
!       auto_vec<tree> temv;
!       unsigned n_perms;
!       if (loop_vinfo
! 	  && single_element_p
! 	  && SLP_TREE_LANES (slp_node) == 1
! 	  && (*memory_access_type == VMAT_CONTIGUOUS
! 	      || *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	  && SLP_TREE_LOAD_PERMUTATION (slp_node).exists ()
! 	  && !vect_transform_slp_perm_load
! 	  (loop_vinfo, slp_node, temv, NULL,
! 	   LOOP_VINFO_VECT_FACTOR (loop_vinfo), true, &n_perms))
! 	{
! 	  *memory_access_type = VMAT_ELEMENTWISE;
! 	  if (dump_enabled_p ())
! 	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			     "single-element interleaving permutation not "
! 			     "supported, using elementwise access\n");
! 	}
  
!       overrun_p = (loop_vinfo && gap != 0
! 		   && *memory_access_type != VMAT_ELEMENTWISE);
!       if (overrun_p && vls_type != VLS_LOAD)
! 	{
! 	  dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			   "Grouped store with gaps requires"
! 			   " non-consecutive accesses\n");
! 	  return false;
! 	}
  
!       unsigned HOST_WIDE_INT dr_size = vect_get_scalar_dr_size (first_dr_info);
!       poly_int64 off = 0;
!       if (*memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	off = (TYPE_VECTOR_SUBPARTS (vectype) - 1) * -dr_size;
  
!       /* An overrun is fine if the trailing elements are smaller
! 	 than the alignment boundary B.  Every vector access will
! 	 be a multiple of B and so we are guaranteed to access a
! 	 non-gap element in the same B-sized block.  */
!       if (overrun_p
! 	  && gap < (vect_known_alignment_in_bytes (first_dr_info,
! 						   vectype, off) / dr_size))
! 	overrun_p = false;
  
!       /* When we have a contiguous access across loop iterations
! 	 but the access in the loop doesn't cover the full vector
! 	 we can end up with no gap recorded but still excess
! 	 elements accessed, see PR103116.  Make sure we peel for
! 	 gaps if necessary and sufficient and give up if not.
  
! 	 If there is a combination of the access not covering the full
! 	 vector and a gap recorded then we may need to peel twice.  */
!       bool large_vector_overrun_p = false;
!       if (loop_vinfo
! 	  && (*memory_access_type == VMAT_CONTIGUOUS
! 	      || *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	  && SLP_TREE_LOAD_PERMUTATION (slp_node).exists ()
! 	  && !multiple_p (group_size * LOOP_VINFO_VECT_FACTOR (loop_vinfo),
! 			  nunits))
! 	large_vector_overrun_p = overrun_p = true;
  
!       /* If the gap splits the vector in half and the target
! 	 can do half-vector operations avoid the epilogue peeling
! 	 by simply loading half of the vector only.  Usually
! 	 the construction with an upper zero half will be elided.  */
!       dr_alignment_support alss;
!       int misalign = dr_misalignment (first_dr_info, vectype, off);
!       tree half_vtype;
!       poly_uint64 remain;
!       unsigned HOST_WIDE_INT tem, num;
!       if (overrun_p
  	  && !masked_p
! 	  && *memory_access_type != VMAT_LOAD_STORE_LANES
! 	  && (((alss = vect_supportable_dr_alignment (vinfo, first_dr_info,
! 						      vectype, misalign)))
! 	      == dr_aligned
! 	      || alss == dr_unaligned_supported)
! 	  && can_div_trunc_p (group_size
! 			      * LOOP_VINFO_VECT_FACTOR (loop_vinfo) - gap,
! 			      nunits, &tem, &remain)
! 	  && (known_eq (remain, 0u)
! 	      || (known_ne (remain, 0u)
! 		  && constant_multiple_p (nunits, remain, &num)
! 		  && (vector_vector_composition_type (vectype, num, &half_vtype)
! 		      != NULL_TREE))))
! 	overrun_p = false;
  
!       if (overrun_p && !can_overrun_p)
  	{
! 	  if (dump_enabled_p ())
! 	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			     "Peeling for outer loop is not supported\n");
! 	  return false;
! 	}
  
!       /* Peeling for gaps assumes that a single scalar iteration
! 	 is enough to make sure the last vector iteration doesn't
! 	 access excess elements.  */
!       if (overrun_p
! 	  && (!can_div_trunc_p (group_size
! 				* LOOP_VINFO_VECT_FACTOR (loop_vinfo) - gap,
! 				nunits, &tem, &remain)
! 	      || maybe_lt (remain + group_size, nunits)))
! 	{
! 	  /* But peeling a single scalar iteration is enough if
! 	     we can use the next power-of-two sized partial
! 	     access and that is sufficiently small to be covered
! 	     by the single scalar iteration.  */
! 	  unsigned HOST_WIDE_INT cnunits, cvf, cremain, cpart_size;
! 	  if (masked_p
! 	      || !nunits.is_constant (&cnunits)
! 	      || !LOOP_VINFO_VECT_FACTOR (loop_vinfo).is_constant (&cvf)
! 	      || (((cremain = (group_size * cvf - gap) % cnunits), true)
! 		  && ((cpart_size = (1 << ceil_log2 (cremain))), true)
! 		  && (cremain + group_size < cpart_size
! 		      || (vector_vector_composition_type (vectype,
! 							 cnunits / cpart_size,
! 							 &half_vtype)
! 			  == NULL_TREE))))
  	    {
! 	      /* If all fails we can still resort to niter masking unless
! 		 the vectors used are too big, so enforce the use of
! 		 partial vectors.  */
! 	      if (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo)
! 		  && !large_vector_overrun_p)
  		{
! 		  if (dump_enabled_p ())
! 		    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				     "peeling for gaps insufficient for "
! 				     "access unless using partial "
! 				     "vectors\n");
! 		  LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P (loop_vinfo) = true;
  		}
! 	      else
  		{
! 		  if (dump_enabled_p ())
! 		    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 				     "peeling for gaps insufficient for "
! 				     "access\n");
! 		  return false;
  		}
  	    }
+ 	  else if (large_vector_overrun_p)
+ 	    {
+ 	      if (dump_enabled_p ())
+ 		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
+ 				 "can't operate on partial vectors because "
+ 				 "only unmasked loads handle access "
+ 				 "shortening required because of gaps at "
+ 				 "the end of the access\n");
+ 	      LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo) = false;
+ 	    }
  	}
      }
  
*************** get_group_load_store_type (vec_info *vin
*** 2414,2420 ****
    if ((*memory_access_type == VMAT_ELEMENTWISE
         || *memory_access_type == VMAT_STRIDED_SLP)
        && single_element_p
!       && (!slp_node || SLP_TREE_LANES (slp_node) == 1)
        && loop_vinfo
        && vect_use_strided_gather_scatters_p (stmt_info, loop_vinfo,
  					     masked_p, gs_info, elsvals))
--- 2350,2356 ----
    if ((*memory_access_type == VMAT_ELEMENTWISE
         || *memory_access_type == VMAT_STRIDED_SLP)
        && single_element_p
!       && SLP_TREE_LANES (slp_node) == 1
        && loop_vinfo
        && vect_use_strided_gather_scatters_p (stmt_info, loop_vinfo,
  					     masked_p, gs_info, elsvals))
*************** static bool
*** 2494,2500 ****
  get_load_store_type (vec_info  *vinfo, stmt_vec_info stmt_info,
  		     tree vectype, slp_tree slp_node,
  		     bool masked_p, vec_load_store_type vls_type,
! 		     unsigned int ncopies,
  		     vect_memory_access_type *memory_access_type,
  		     poly_int64 *poffset,
  		     dr_alignment_support *alignment_support_scheme,
--- 2430,2436 ----
  get_load_store_type (vec_info  *vinfo, stmt_vec_info stmt_info,
  		     tree vectype, slp_tree slp_node,
  		     bool masked_p, vec_load_store_type vls_type,
! 		     unsigned int,
  		     vect_memory_access_type *memory_access_type,
  		     poly_int64 *poffset,
  		     dr_alignment_support *alignment_support_scheme,
*************** get_load_store_type (vec_info  *vinfo, s
*** 2560,2613 ****
  	 is irrelevant for them.  */
        *alignment_support_scheme = dr_unaligned_supported;
      }
!   else if (STMT_VINFO_GROUPED_ACCESS (stmt_info) || slp_node)
!     {
!       if (!get_group_load_store_type (vinfo, stmt_info, vectype, slp_node,
! 				      masked_p,
! 				      vls_type, memory_access_type, poffset,
! 				      alignment_support_scheme,
! 				      misalignment, gs_info, lanes_ifn,
! 				      elsvals))
! 	return false;
!     }
!   else if (STMT_VINFO_STRIDED_P (stmt_info))
!     {
!       gcc_assert (!slp_node);
!       if (loop_vinfo
! 	  && vect_use_strided_gather_scatters_p (stmt_info, loop_vinfo,
! 						 masked_p, gs_info, elsvals))
! 	*memory_access_type = VMAT_GATHER_SCATTER;
!       else
! 	*memory_access_type = VMAT_ELEMENTWISE;
!       /* Alignment is irrelevant here.  */
!       *alignment_support_scheme = dr_unaligned_supported;
!     }
!   else
!     {
!       int cmp = compare_step_with_zero (vinfo, stmt_info);
!       if (cmp == 0)
! 	{
! 	  gcc_assert (vls_type == VLS_LOAD);
! 	  *memory_access_type = VMAT_INVARIANT;
! 	  /* Invariant accesses perform only component accesses, alignment
! 	     is irrelevant for them.  */
! 	  *alignment_support_scheme = dr_unaligned_supported;
! 	}
!       else
! 	{
! 	  if (cmp < 0)
! 	    *memory_access_type = get_negative_load_store_type
! 	       (vinfo, stmt_info, vectype, vls_type, ncopies, poffset);
! 	  else
! 	    *memory_access_type = VMAT_CONTIGUOUS;
! 	  *misalignment = dr_misalignment (STMT_VINFO_DR_INFO (stmt_info),
! 					   vectype, *poffset);
! 	  *alignment_support_scheme
! 	    = vect_supportable_dr_alignment (vinfo,
! 					     STMT_VINFO_DR_INFO (stmt_info),
! 					     vectype, *misalignment);
! 	}
!     }
  
    if ((*memory_access_type == VMAT_ELEMENTWISE
         || *memory_access_type == VMAT_STRIDED_SLP)
--- 2496,2508 ----
  	 is irrelevant for them.  */
        *alignment_support_scheme = dr_unaligned_supported;
      }
!   else if (!get_group_load_store_type (vinfo, stmt_info, vectype, slp_node,
! 				       masked_p,
! 				       vls_type, memory_access_type, poffset,
! 				       alignment_support_scheme,
! 				       misalignment, gs_info, lanes_ifn,
! 				       elsvals))
!     return false;
  
    if ((*memory_access_type == VMAT_ELEMENTWISE
         || *memory_access_type == VMAT_STRIDED_SLP)
*************** get_load_store_type (vec_info  *vinfo, s
*** 2731,2737 ****
  	 such only the first load in the group is aligned, the rest are not.
  	 Because of this the permutes may break the alignment requirements that
  	 have been set, and as such we should for now, reject them.  */
!       if (slp_node && SLP_TREE_LOAD_PERMUTATION (slp_node).exists ())
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 2626,2632 ----
  	 such only the first load in the group is aligned, the rest are not.
  	 Because of this the permutes may break the alignment requirements that
  	 have been set, and as such we should for now, reject them.  */
!       if (SLP_TREE_LOAD_PERMUTATION (slp_node).exists ())
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_store (vec_info *vinfo,
*** 8352,8363 ****
    tree dataref_ptr = NULL_TREE;
    tree dataref_offset = NULL_TREE;
    gimple *ptr_incr = NULL;
-   int ncopies;
    int j;
    stmt_vec_info first_stmt_info;
    bool grouped_store;
    unsigned int group_size, i;
-   bool slp = (slp_node != NULL);
    unsigned int vec_num;
    bb_vec_info bb_vinfo = dyn_cast <bb_vec_info> (vinfo);
    tree aggr_type;
--- 8247,8256 ----
*************** vectorizable_store (vec_info *vinfo,
*** 8403,8409 ****
  	return false;
  
        int mask_index = internal_fn_mask_index (ifn);
!       if (mask_index >= 0 && slp_node)
  	mask_index = vect_slp_child_index_for_operand
  		    (call, mask_index, STMT_VINFO_GATHER_SCATTER_P (stmt_info));
        if (mask_index >= 0
--- 8296,8302 ----
  	return false;
  
        int mask_index = internal_fn_mask_index (ifn);
!       if (mask_index >= 0)
  	mask_index = vect_slp_child_index_for_operand
  		    (call, mask_index, STMT_VINFO_GATHER_SCATTER_P (stmt_info));
        if (mask_index >= 0
*************** vectorizable_store (vec_info *vinfo,
*** 8415,8423 ****
  
    /* Cannot have hybrid store SLP -- that would mean storing to the
       same location twice.  */
!   gcc_assert (slp == PURE_SLP_STMT (stmt_info));
  
!   tree vectype = STMT_VINFO_VECTYPE (stmt_info), rhs_vectype = NULL_TREE;
    poly_uint64 nunits = TYPE_VECTOR_SUBPARTS (vectype);
  
    if (loop_vinfo)
--- 8308,8316 ----
  
    /* Cannot have hybrid store SLP -- that would mean storing to the
       same location twice.  */
!   gcc_assert (PURE_SLP_STMT (stmt_info));
  
!   tree vectype = SLP_TREE_VECTYPE (stmt_info), rhs_vectype = NULL_TREE;
    poly_uint64 nunits = TYPE_VECTOR_SUBPARTS (vectype);
  
    if (loop_vinfo)
*************** vectorizable_store (vec_info *vinfo,
*** 8428,8447 ****
    else
      vf = 1;
  
-   /* Multiple types in SLP are handled by creating the appropriate number of
-      vectorized stmts for each SLP node.  Hence, NCOPIES is always 1 in
-      case of SLP.  */
-   if (slp)
-     ncopies = 1;
-   else
-     ncopies = vect_get_num_copies (loop_vinfo, vectype);
- 
-   gcc_assert (ncopies >= 1);
- 
    /* FORNOW.  This restriction should be relaxed.  */
    if (loop
        && nested_in_vect_loop_p (loop, stmt_info)
!       && (ncopies > 1 || (slp && SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node) > 1)))
      {
        if (dump_enabled_p ())
  	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 8321,8330 ----
    else
      vf = 1;
  
    /* FORNOW.  This restriction should be relaxed.  */
    if (loop
        && nested_in_vect_loop_p (loop, stmt_info)
!       && SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node) > 1)
      {
        if (dump_enabled_p ())
  	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_store (vec_info *vinfo,
*** 8467,8479 ****
    poly_int64 poffset;
    internal_fn lanes_ifn;
    if (!get_load_store_type (vinfo, stmt_info, vectype, slp_node, mask, vls_type,
! 			    ncopies, &memory_access_type, &poffset,
  			    &alignment_support_scheme, &misalignment, &gs_info,
  			    &lanes_ifn))
      return false;
  
!   if (slp_node
!       && slp_node->ldst_lanes
        && memory_access_type != VMAT_LOAD_STORE_LANES)
      {
        if (dump_enabled_p ())
--- 8350,8361 ----
    poly_int64 poffset;
    internal_fn lanes_ifn;
    if (!get_load_store_type (vinfo, stmt_info, vectype, slp_node, mask, vls_type,
! 			    1, &memory_access_type, &poffset,
  			    &alignment_support_scheme, &misalignment, &gs_info,
  			    &lanes_ifn))
      return false;
  
!   if (slp_node->ldst_lanes
        && memory_access_type != VMAT_LOAD_STORE_LANES)
      {
        if (dump_enabled_p ())
*************** vectorizable_store (vec_info *vinfo,
*** 8520,8527 ****
  
    dr_vec_info *dr_info = STMT_VINFO_DR_INFO (stmt_info), *first_dr_info = NULL;
    grouped_store = (STMT_VINFO_GROUPED_ACCESS (stmt_info)
! 		   && memory_access_type != VMAT_GATHER_SCATTER
! 		   && (slp || memory_access_type != VMAT_CONTIGUOUS));
    if (grouped_store)
      {
        first_stmt_info = DR_GROUP_FIRST_ELEMENT (stmt_info);
--- 8402,8408 ----
  
    dr_vec_info *dr_info = STMT_VINFO_DR_INFO (stmt_info), *first_dr_info = NULL;
    grouped_store = (STMT_VINFO_GROUPED_ACCESS (stmt_info)
! 		   && memory_access_type != VMAT_GATHER_SCATTER);
    if (grouped_store)
      {
        first_stmt_info = DR_GROUP_FIRST_ELEMENT (stmt_info);
*************** vectorizable_store (vec_info *vinfo,
*** 8546,8553 ****
    if (costing_p) /* transformation not required.  */
      {
        STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) = memory_access_type;
!       if (slp_node)
! 	SLP_TREE_MEMORY_ACCESS_TYPE (slp_node) = memory_access_type;
  
        if (loop_vinfo
  	  && LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo))
--- 8427,8433 ----
    if (costing_p) /* transformation not required.  */
      {
        STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) = memory_access_type;
!       SLP_TREE_MEMORY_ACCESS_TYPE (slp_node) = memory_access_type;
  
        if (loop_vinfo
  	  && LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo))
*************** vectorizable_store (vec_info *vinfo,
*** 8556,8566 ****
  					      memory_access_type, &gs_info,
  					      mask);
  
!       if (slp_node
! 	  && (!vect_maybe_update_slp_op_vectype (op_node, vectype)
! 	      || (mask
! 		  && !vect_maybe_update_slp_op_vectype (mask_node,
! 							mask_vectype))))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 8436,8445 ----
  					      memory_access_type, &gs_info,
  					      mask);
  
!       if (!vect_maybe_update_slp_op_vectype (op_node, vectype)
! 	  || (mask
! 	      && !vect_maybe_update_slp_op_vectype (mask_node,
! 						    mask_vectype)))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_store (vec_info *vinfo,
*** 8578,8599 ****
  			 "Vectorizing an unaligned access.\n");
  
        STMT_VINFO_TYPE (stmt_info) = store_vec_info_type;
- 
-       /* As function vect_transform_stmt shows, for interleaving stores
- 	 the whole chain is vectorized when the last store in the chain
- 	 is reached, the other stores in the group are skipped.  So we
- 	 want to only cost the last one here, but it's not trivial to
- 	 get the last, as it's equivalent to use the first one for
- 	 costing, use the first one instead.  */
-       if (grouped_store
- 	  && !slp
- 	  && first_stmt_info != stmt_info)
- 	return true;
      }
!   if (slp_node)
!     gcc_assert (memory_access_type == SLP_TREE_MEMORY_ACCESS_TYPE (stmt_info));
!   else
!     gcc_assert (memory_access_type == STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info));
  
    /* Transform.  */
  
--- 8457,8464 ----
  			 "Vectorizing an unaligned access.\n");
  
        STMT_VINFO_TYPE (stmt_info) = store_vec_info_type;
      }
!   gcc_assert (memory_access_type == SLP_TREE_MEMORY_ACCESS_TYPE (stmt_info));
  
    /* Transform.  */
  
*************** vectorizable_store (vec_info *vinfo,
*** 8602,8615 ****
    if (STMT_VINFO_SIMD_LANE_ACCESS_P (stmt_info) >= 3)
      {
        gcc_assert (memory_access_type == VMAT_CONTIGUOUS);
!       gcc_assert (!slp || SLP_TREE_LANES (slp_node) == 1);
        if (costing_p)
  	{
  	  unsigned int inside_cost = 0, prologue_cost = 0;
  	  if (vls_type == VLS_STORE_INVARIANT)
  	    prologue_cost += record_stmt_cost (cost_vec, 1, scalar_to_vec,
  					       stmt_info, 0, vect_prologue);
! 	  vect_get_store_cost (vinfo, stmt_info, slp_node, ncopies,
  			       alignment_support_scheme, misalignment,
  			       &inside_cost, cost_vec);
  
--- 8467,8480 ----
    if (STMT_VINFO_SIMD_LANE_ACCESS_P (stmt_info) >= 3)
      {
        gcc_assert (memory_access_type == VMAT_CONTIGUOUS);
!       gcc_assert (SLP_TREE_LANES (slp_node) == 1);
        if (costing_p)
  	{
  	  unsigned int inside_cost = 0, prologue_cost = 0;
  	  if (vls_type == VLS_STORE_INVARIANT)
  	    prologue_cost += record_stmt_cost (cost_vec, 1, scalar_to_vec,
  					       stmt_info, 0, vect_prologue);
! 	  vect_get_store_cost (vinfo, stmt_info, slp_node, 1,
  			       alignment_support_scheme, misalignment,
  			       &inside_cost, cost_vec);
  
*************** vectorizable_store (vec_info *vinfo,
*** 8622,8688 ****
  	  return true;
  	}
        return vectorizable_scan_store (vinfo, stmt_info, slp_node,
! 				      gsi, vec_stmt, ncopies);
      }
  
!   if (grouped_store || slp)
!     {
!       /* FORNOW */
!       gcc_assert (!grouped_store
! 		  || !loop
! 		  || !nested_in_vect_loop_p (loop, stmt_info));
  
!       if (slp)
!         {
!           grouped_store = false;
!           /* VEC_NUM is the number of vect stmts to be created for this
!              group.  */
!           vec_num = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
! 	  first_stmt_info = SLP_TREE_SCALAR_STMTS (slp_node)[0];
! 	  gcc_assert (!STMT_VINFO_GROUPED_ACCESS (first_stmt_info)
! 		      || (DR_GROUP_FIRST_ELEMENT (first_stmt_info)
! 			  == first_stmt_info));
! 	  first_dr_info = STMT_VINFO_DR_INFO (first_stmt_info);
! 	  op = vect_get_store_rhs (first_stmt_info);
!         }
!       else
!         /* VEC_NUM is the number of vect stmts to be created for this
!            group.  */
! 	vec_num = group_size;
  
!       ref_type = get_group_alias_ptr_type (first_stmt_info);
!     }
!   else
!     ref_type = reference_alias_ptr_type (DR_REF (first_dr_info->dr));
  
    if (!costing_p && dump_enabled_p ())
!     dump_printf_loc (MSG_NOTE, vect_location, "transform store. ncopies = %d\n",
! 		     ncopies);
! 
!   /* Check if we need to update prologue cost for invariant,
!      and update it accordingly if so.  If it's not for
!      interleaving store, we can just check vls_type; but if
!      it's for interleaving store, need to check the def_type
!      of the stored value since the current vls_type is just
!      for first_stmt_info.  */
!   auto update_prologue_cost = [&](unsigned *prologue_cost, tree store_rhs)
!   {
!     gcc_assert (costing_p);
!     if (slp)
!       return;
!     if (grouped_store)
!       {
! 	gcc_assert (store_rhs);
! 	enum vect_def_type cdt;
! 	gcc_assert (vect_is_simple_use (store_rhs, vinfo, &cdt));
! 	if (cdt != vect_constant_def && cdt != vect_external_def)
! 	  return;
!       }
!     else if (vls_type != VLS_STORE_INVARIANT)
!       return;
!     *prologue_cost += record_stmt_cost (cost_vec, 1, scalar_to_vec,
! 					slp_node, 0, vect_prologue);
!   };
  
    if (memory_access_type == VMAT_ELEMENTWISE
        || memory_access_type == VMAT_STRIDED_SLP)
--- 8487,8514 ----
  	  return true;
  	}
        return vectorizable_scan_store (vinfo, stmt_info, slp_node,
! 				      gsi, vec_stmt, 1);
      }
  
!   /* FORNOW */
!   gcc_assert (!grouped_store
! 	      || !loop
! 	      || !nested_in_vect_loop_p (loop, stmt_info));
  
!   grouped_store = false;
!   /* VEC_NUM is the number of vect stmts to be created for this
!      group.  */
!   vec_num = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
!   first_stmt_info = SLP_TREE_SCALAR_STMTS (slp_node)[0];
!   gcc_assert (!STMT_VINFO_GROUPED_ACCESS (first_stmt_info)
! 	      || (DR_GROUP_FIRST_ELEMENT (first_stmt_info) == first_stmt_info));
!   first_dr_info = STMT_VINFO_DR_INFO (first_stmt_info);
!   op = vect_get_store_rhs (first_stmt_info);
  
!   ref_type = get_group_alias_ptr_type (first_stmt_info);
  
    if (!costing_p && dump_enabled_p ())
!     dump_printf_loc (MSG_NOTE, vect_location, "transform store.\n");
  
    if (memory_access_type == VMAT_ELEMENTWISE
        || memory_access_type == VMAT_STRIDED_SLP)
*************** vectorizable_store (vec_info *vinfo,
*** 8690,8703 ****
        unsigned inside_cost = 0, prologue_cost = 0;
        gimple_stmt_iterator incr_gsi;
        bool insert_after;
-       gimple *incr;
        tree offvar = NULL_TREE;
        tree ivstep;
        tree running_off;
        tree stride_base, stride_step, alias_off;
        tree vec_oprnd = NULL_TREE;
        tree dr_offset;
-       unsigned int g;
        /* Checked by get_load_store_type.  */
        unsigned int const_nunits = nunits.to_constant ();
  
--- 8516,8527 ----
*************** vectorizable_store (vec_info *vinfo,
*** 8735,8850 ****
        unsigned lnel = 1;
        tree ltype = elem_type;
        tree lvectype = vectype;
!       if (slp)
  	{
! 	  HOST_WIDE_INT n = gcd (group_size, const_nunits);
! 	  if (n == const_nunits)
! 	    {
! 	      int mis_align = dr_misalignment (first_dr_info, vectype);
! 	      /* With VF > 1 we advance the DR by step, if that is constant
! 		 and only aligned when performed VF times, DR alignment
! 		 analysis can analyze this as aligned since it assumes
! 		 contiguous accesses.  But that is not how we code generate
! 		 here, so adjust for this.  */
! 	      if (maybe_gt (vf, 1u)
! 		  && !multiple_p (DR_STEP_ALIGNMENT (first_dr_info->dr),
! 				  DR_TARGET_ALIGNMENT (first_dr_info)))
! 		mis_align = -1;
! 	      dr_alignment_support dr_align
! 		= vect_supportable_dr_alignment (vinfo, dr_info, vectype,
! 						 mis_align);
! 	      if (dr_align == dr_aligned
! 		  || dr_align == dr_unaligned_supported)
! 		{
! 		  nstores = 1;
! 		  lnel = const_nunits;
! 		  ltype = vectype;
! 		  lvectype = vectype;
! 		  alignment_support_scheme = dr_align;
! 		  misalignment = mis_align;
! 		}
! 	    }
! 	  else if (n > 1)
  	    {
! 	      nstores = const_nunits / n;
! 	      lnel = n;
! 	      ltype = build_vector_type (elem_type, n);
  	      lvectype = vectype;
- 	      int mis_align = dr_misalignment (first_dr_info, ltype);
- 	      if (maybe_gt (vf, 1u)
- 		  && !multiple_p (DR_STEP_ALIGNMENT (first_dr_info->dr),
- 				  DR_TARGET_ALIGNMENT (first_dr_info)))
- 		mis_align = -1;
- 	      dr_alignment_support dr_align
- 		= vect_supportable_dr_alignment (vinfo, dr_info, ltype,
- 						 mis_align);
  	      alignment_support_scheme = dr_align;
  	      misalignment = mis_align;
  
! 	      /* First check if vec_extract optab doesn't support extraction
! 		 of vector elts directly.  */
! 	      scalar_mode elmode = SCALAR_TYPE_MODE (elem_type);
! 	      machine_mode vmode;
! 	      if (!VECTOR_MODE_P (TYPE_MODE (vectype))
! 		  || !related_vector_mode (TYPE_MODE (vectype), elmode,
! 					   n).exists (&vmode)
! 		  || (convert_optab_handler (vec_extract_optab,
! 					     TYPE_MODE (vectype), vmode)
! 		      == CODE_FOR_nothing)
! 		  || !(dr_align == dr_aligned
! 		       || dr_align == dr_unaligned_supported))
  		{
! 		  /* Try to avoid emitting an extract of vector elements
! 		     by performing the extracts using an integer type of the
! 		     same size, extracting from a vector of those and then
! 		     re-interpreting it as the original vector type if
! 		     supported.  */
! 		  unsigned lsize
! 		    = n * GET_MODE_BITSIZE (elmode);
! 		  unsigned int lnunits = const_nunits / n;
! 		  /* If we can't construct such a vector fall back to
! 		     element extracts from the original vector type and
! 		     element size stores.  */
! 		  if (int_mode_for_size (lsize, 0).exists (&elmode)
! 		      && VECTOR_MODE_P (TYPE_MODE (vectype))
! 		      && related_vector_mode (TYPE_MODE (vectype), elmode,
! 					      lnunits).exists (&vmode)
! 		      && (convert_optab_handler (vec_extract_optab,
! 						 vmode, elmode)
! 			  != CODE_FOR_nothing))
! 		    {
! 		      nstores = lnunits;
! 		      lnel = n;
! 		      ltype = build_nonstandard_integer_type (lsize, 1);
! 		      lvectype = build_vector_type (ltype, nstores);
! 		    }
! 		  /* Else fall back to vector extraction anyway.
! 		     Fewer stores are more important than avoiding spilling
! 		     of the vector we extract from.  Compared to the
! 		     construction case in vectorizable_load no store-forwarding
! 		     issue exists here for reasonable archs.  But only
! 		     if the store is supported.  */
! 		  else if (!(dr_align == dr_aligned
! 			     || dr_align == dr_unaligned_supported))
! 		    {
! 		      nstores = const_nunits;
! 		      lnel = 1;
! 		      ltype = elem_type;
! 		      lvectype = vectype;
! 		    }
  		}
  	    }
- 	  unsigned align;
- 	  if (alignment_support_scheme == dr_aligned)
- 	    align = known_alignment (DR_TARGET_ALIGNMENT (first_dr_info));
- 	  else
- 	    align = dr_alignment (vect_dr_behavior (vinfo, first_dr_info));
- 	  /* Alignment is at most the access size if we do multiple stores.  */
- 	  if (nstores > 1)
- 	    align = MIN (tree_to_uhwi (TYPE_SIZE_UNIT (ltype)), align);
- 	  ltype = build_aligned_type (ltype, align * BITS_PER_UNIT);
- 	  ncopies = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
  	}
  
        if (!costing_p)
  	{
--- 8559,8670 ----
        unsigned lnel = 1;
        tree ltype = elem_type;
        tree lvectype = vectype;
!       HOST_WIDE_INT n = gcd (group_size, const_nunits);
!       if (n == const_nunits)
  	{
! 	  int mis_align = dr_misalignment (first_dr_info, vectype);
! 	  /* With VF > 1 we advance the DR by step, if that is constant
! 	     and only aligned when performed VF times, DR alignment
! 	     analysis can analyze this as aligned since it assumes
! 	     contiguous accesses.  But that is not how we code generate
! 	     here, so adjust for this.  */
! 	  if (maybe_gt (vf, 1u)
! 	      && !multiple_p (DR_STEP_ALIGNMENT (first_dr_info->dr),
! 			      DR_TARGET_ALIGNMENT (first_dr_info)))
! 	    mis_align = -1;
! 	  dr_alignment_support dr_align
! 	      = vect_supportable_dr_alignment (vinfo, dr_info, vectype,
! 					       mis_align);
! 	  if (dr_align == dr_aligned
! 	      || dr_align == dr_unaligned_supported)
  	    {
! 	      nstores = 1;
! 	      lnel = const_nunits;
! 	      ltype = vectype;
  	      lvectype = vectype;
  	      alignment_support_scheme = dr_align;
  	      misalignment = mis_align;
+ 	    }
+ 	}
+       else if (n > 1)
+ 	{
+ 	  nstores = const_nunits / n;
+ 	  lnel = n;
+ 	  ltype = build_vector_type (elem_type, n);
+ 	  lvectype = vectype;
+ 	  int mis_align = dr_misalignment (first_dr_info, ltype);
+ 	  if (maybe_gt (vf, 1u)
+ 	      && !multiple_p (DR_STEP_ALIGNMENT (first_dr_info->dr),
+ 			      DR_TARGET_ALIGNMENT (first_dr_info)))
+ 	    mis_align = -1;
+ 	  dr_alignment_support dr_align
+ 	    = vect_supportable_dr_alignment (vinfo, dr_info, ltype,
+ 					     mis_align);
+ 	  alignment_support_scheme = dr_align;
+ 	  misalignment = mis_align;
  
! 	  /* First check if vec_extract optab doesn't support extraction
! 	     of vector elts directly.  */
! 	  scalar_mode elmode = SCALAR_TYPE_MODE (elem_type);
! 	  machine_mode vmode;
! 	  if (!VECTOR_MODE_P (TYPE_MODE (vectype))
! 	      || !related_vector_mode (TYPE_MODE (vectype), elmode,
! 				       n).exists (&vmode)
! 	      || (convert_optab_handler (vec_extract_optab,
! 					 TYPE_MODE (vectype), vmode)
! 		  == CODE_FOR_nothing)
! 	      || !(dr_align == dr_aligned
! 		   || dr_align == dr_unaligned_supported))
! 	    {
! 	      /* Try to avoid emitting an extract of vector elements
! 		 by performing the extracts using an integer type of the
! 		 same size, extracting from a vector of those and then
! 		 re-interpreting it as the original vector type if
! 		 supported.  */
! 	      unsigned lsize = n * GET_MODE_BITSIZE (elmode);
! 	      unsigned int lnunits = const_nunits / n;
! 	      /* If we can't construct such a vector fall back to
! 		 element extracts from the original vector type and
! 		 element size stores.  */
! 	      if (int_mode_for_size (lsize, 0).exists (&elmode)
! 		  && VECTOR_MODE_P (TYPE_MODE (vectype))
! 		  && related_vector_mode (TYPE_MODE (vectype), elmode,
! 					  lnunits).exists (&vmode)
! 		  && (convert_optab_handler (vec_extract_optab,
! 					     vmode, elmode)
! 		      != CODE_FOR_nothing))
  		{
! 		  nstores = lnunits;
! 		  lnel = n;
! 		  ltype = build_nonstandard_integer_type (lsize, 1);
! 		  lvectype = build_vector_type (ltype, nstores);
  		}
+ 	      /* Else fall back to vector extraction anyway.
+ 		 Fewer stores are more important than avoiding spilling
+ 		 of the vector we extract from.  Compared to the
+ 		 construction case in vectorizable_load no store-forwarding
+ 		 issue exists here for reasonable archs.  But only
+ 		 if the store is supported.  */
+ 		 else if (!(dr_align == dr_aligned
+ 			    || dr_align == dr_unaligned_supported))
+ 		   {
+ 		     nstores = const_nunits;
+ 		     lnel = 1;
+ 		     ltype = elem_type;
+ 		     lvectype = vectype;
+ 		   }
  	    }
  	}
+       unsigned align;
+       if (alignment_support_scheme == dr_aligned)
+ 	align = known_alignment (DR_TARGET_ALIGNMENT (first_dr_info));
+       else
+ 	align = dr_alignment (vect_dr_behavior (vinfo, first_dr_info));
+       /* Alignment is at most the access size if we do multiple stores.  */
+       if (nstores > 1)
+ 	align = MIN (tree_to_uhwi (TYPE_SIZE_UNIT (ltype)), align);
+       ltype = build_aligned_type (ltype, align * BITS_PER_UNIT);
+       int ncopies = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
  
        if (!costing_p)
  	{
*************** vectorizable_store (vec_info *vinfo,
*** 8858,8864 ****
  	  ivstep = cse_and_gimplify_to_preheader (loop_vinfo, ivstep);
  	  create_iv (stride_base, PLUS_EXPR, ivstep, NULL, loop, &incr_gsi,
  		     insert_after, &offvar, NULL);
- 	  incr = gsi_stmt (incr_gsi);
  
  	  stride_step = cse_and_gimplify_to_preheader (loop_vinfo, stride_step);
  	}
--- 8678,8683 ----
*************** vectorizable_store (vec_info *vinfo,
*** 8869,8972 ****
        /* For costing some adjacent vector stores, we'd like to cost with
  	 the total number of them once instead of cost each one by one. */
        unsigned int n_adjacent_stores = 0;
!       for (g = 0; g < group_size; g++)
  	{
- 	  running_off = offvar;
  	  if (!costing_p)
  	    {
! 	      if (g)
  		{
! 		  tree size = TYPE_SIZE_UNIT (ltype);
! 		  tree pos
! 		    = fold_build2 (MULT_EXPR, sizetype, size_int (g), size);
! 		  tree newoff = copy_ssa_name (running_off, NULL);
! 		  incr = gimple_build_assign (newoff, POINTER_PLUS_EXPR,
! 					      running_off, pos);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, incr, gsi);
! 		  running_off = newoff;
  		}
  	    }
! 	  if (!slp)
! 	    op = vect_get_store_rhs (next_stmt_info);
! 	  if (!costing_p)
! 	    vect_get_vec_defs (vinfo, next_stmt_info, slp_node, ncopies, op,
! 			       &vec_oprnds);
! 	  else
! 	    update_prologue_cost (&prologue_cost, op);
! 	  unsigned int group_el = 0;
! 	  unsigned HOST_WIDE_INT
! 	    elsz = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (vectype)));
! 	  for (j = 0; j < ncopies; j++)
  	    {
! 	      if (!costing_p)
  		{
! 		  vec_oprnd = vec_oprnds[j];
! 		  /* Pun the vector to extract from if necessary.  */
! 		  if (lvectype != vectype)
! 		    {
! 		      tree tem = make_ssa_name (lvectype);
! 		      tree cvt
! 			= build1 (VIEW_CONVERT_EXPR, lvectype, vec_oprnd);
! 		      gimple *pun = gimple_build_assign (tem, cvt);
! 		      vect_finish_stmt_generation (vinfo, stmt_info, pun, gsi);
! 		      vec_oprnd = tem;
! 		    }
  		}
! 	      for (i = 0; i < nstores; i++)
! 		{
! 		  if (costing_p)
! 		    {
! 		      n_adjacent_stores++;
! 		      continue;
! 		    }
! 		  tree newref, newoff;
! 		  gimple *incr, *assign;
! 		  tree size = TYPE_SIZE (ltype);
! 		  /* Extract the i'th component.  */
! 		  tree pos = fold_build2 (MULT_EXPR, bitsizetype,
! 					  bitsize_int (i), size);
! 		  tree elem = fold_build3 (BIT_FIELD_REF, ltype, vec_oprnd,
! 					   size, pos);
  
! 		  elem = force_gimple_operand_gsi (gsi, elem, true,
! 						   NULL_TREE, true,
! 						   GSI_SAME_STMT);
  
! 		  tree this_off = build_int_cst (TREE_TYPE (alias_off),
! 						 group_el * elsz);
! 		  newref = build2 (MEM_REF, ltype,
! 				   running_off, this_off);
! 		  vect_copy_ref_info (newref, DR_REF (first_dr_info->dr));
  
! 		  /* And store it to *running_off.  */
! 		  assign = gimple_build_assign (newref, elem);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, assign, gsi);
  
! 		  group_el += lnel;
! 		  if (! slp
! 		      || group_el == group_size)
! 		    {
! 		      newoff = copy_ssa_name (running_off, NULL);
! 		      incr = gimple_build_assign (newoff, POINTER_PLUS_EXPR,
! 						  running_off, stride_step);
! 		      vect_finish_stmt_generation (vinfo, stmt_info, incr, gsi);
  
! 		      running_off = newoff;
! 		      group_el = 0;
! 		    }
! 		  if (g == group_size - 1
! 		      && !slp)
! 		    {
! 		      if (j == 0 && i == 0)
! 			*vec_stmt = assign;
! 		      STMT_VINFO_VEC_STMTS (stmt_info).safe_push (assign);
! 		    }
  		}
  	    }
- 	  next_stmt_info = DR_GROUP_NEXT_ELEMENT (next_stmt_info);
- 	  vec_oprnds.truncate(0);
- 	  if (slp)
- 	    break;
  	}
  
        if (costing_p)
--- 8688,8755 ----
        /* For costing some adjacent vector stores, we'd like to cost with
  	 the total number of them once instead of cost each one by one. */
        unsigned int n_adjacent_stores = 0;
!       running_off = offvar;
!       if (!costing_p)
! 	vect_get_vec_defs (vinfo, next_stmt_info, slp_node, ncopies, op,
! 			   &vec_oprnds);
!       unsigned int group_el = 0;
!       unsigned HOST_WIDE_INT elsz
! 	= tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (vectype)));
!       for (j = 0; j < ncopies; j++)
  	{
  	  if (!costing_p)
  	    {
! 	      vec_oprnd = vec_oprnds[j];
! 	      /* Pun the vector to extract from if necessary.  */
! 	      if (lvectype != vectype)
  		{
! 		  tree tem = make_ssa_name (lvectype);
! 		  tree cvt = build1 (VIEW_CONVERT_EXPR, lvectype, vec_oprnd);
! 		  gimple *pun = gimple_build_assign (tem, cvt);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, pun, gsi);
! 		  vec_oprnd = tem;
  		}
  	    }
! 	  for (i = 0; i < nstores; i++)
  	    {
! 	      if (costing_p)
  		{
! 		  n_adjacent_stores++;
! 		  continue;
  		}
! 	      tree newref, newoff;
! 	      gimple *incr, *assign;
! 	      tree size = TYPE_SIZE (ltype);
! 	      /* Extract the i'th component.  */
! 	      tree pos = fold_build2 (MULT_EXPR, bitsizetype,
! 				      bitsize_int (i), size);
! 	      tree elem = fold_build3 (BIT_FIELD_REF, ltype, vec_oprnd,
! 				       size, pos);
  
! 	      elem = force_gimple_operand_gsi (gsi, elem, true, NULL_TREE, true,
! 					       GSI_SAME_STMT);
  
! 	      tree this_off = build_int_cst (TREE_TYPE (alias_off),
! 					     group_el * elsz);
! 	      newref = build2 (MEM_REF, ltype, running_off, this_off);
! 	      vect_copy_ref_info (newref, DR_REF (first_dr_info->dr));
  
! 	      /* And store it to *running_off.  */
! 	      assign = gimple_build_assign (newref, elem);
! 	      vect_finish_stmt_generation (vinfo, stmt_info, assign, gsi);
  
! 	      group_el += lnel;
! 	      if (group_el == group_size)
! 		{
! 		  newoff = copy_ssa_name (running_off, NULL);
! 		  incr = gimple_build_assign (newoff, POINTER_PLUS_EXPR,
! 					      running_off, stride_step);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, incr, gsi);
  
! 		  running_off = newoff;
! 		  group_el = 0;
  		}
  	    }
  	}
  
        if (costing_p)
*************** vectorizable_store (vec_info *vinfo,
*** 9107,9113 ****
  
    if (memory_access_type == VMAT_LOAD_STORE_LANES)
      {
!       if (costing_p && slp_node)
  	/* Update all incoming store operand nodes, the general handling
  	   above only handles the mask and the first store operand node.  */
  	for (slp_tree child : SLP_TREE_CHILDREN (slp_node))
--- 8890,8896 ----
  
    if (memory_access_type == VMAT_LOAD_STORE_LANES)
      {
!       if (costing_p)
  	/* Update all incoming store operand nodes, the general handling
  	   above only handles the mask and the first store operand node.  */
  	for (slp_tree child : SLP_TREE_CHILDREN (slp_node))
*************** vectorizable_store (vec_info *vinfo,
*** 9123,9171 ****
        /* For costing some adjacent vector stores, we'd like to cost with
  	 the total number of them once instead of cost each one by one. */
        unsigned int n_adjacent_stores = 0;
!       if (slp)
! 	ncopies = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node) / group_size;
        for (j = 0; j < ncopies; j++)
  	{
- 	  gimple *new_stmt;
  	  if (j == 0)
  	    {
- 	      /* For interleaved stores we collect vectorized defs for all
- 		 the stores in the group in DR_CHAIN. DR_CHAIN is then used
- 		 as an input to vect_permute_store_chain().  */
- 	      stmt_vec_info next_stmt_info = first_stmt_info;
- 	      for (i = 0; i < group_size; i++)
- 		{
- 		  /* Since gaps are not supported for interleaved stores,
- 		     DR_GROUP_SIZE is the exact number of stmts in the
- 		     chain. Therefore, NEXT_STMT_INFO can't be NULL_TREE.  */
- 		  op = vect_get_store_rhs (next_stmt_info);
- 		  if (costing_p)
- 		    update_prologue_cost (&prologue_cost, op);
- 		  else if (!slp)
- 		    {
- 		      vect_get_vec_defs_for_operand (vinfo, next_stmt_info,
- 						     ncopies, op,
- 						     gvec_oprnds[i]);
- 		      vec_oprnd = (*gvec_oprnds[i])[0];
- 		      dr_chain.quick_push (vec_oprnd);
- 		    }
- 		  next_stmt_info = DR_GROUP_NEXT_ELEMENT (next_stmt_info);
- 		}
- 
  	      if (!costing_p)
  		{
  		  if (mask)
  		    {
! 		      if (slp_node)
! 			vect_get_slp_defs (mask_node, &vec_masks);
! 		      else
! 			vect_get_vec_defs_for_operand (vinfo, stmt_info, ncopies,
! 						       mask, &vec_masks,
! 						       mask_vectype);
  		      vec_mask = vec_masks[0];
  		    }
- 
  		  dataref_ptr
  		    = vect_create_data_ref_ptr (vinfo, first_stmt_info,
  						aggr_type, NULL, offset, &dummy,
--- 8906,8923 ----
        /* For costing some adjacent vector stores, we'd like to cost with
  	 the total number of them once instead of cost each one by one. */
        unsigned int n_adjacent_stores = 0;
!       int ncopies = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node) / group_size;
        for (j = 0; j < ncopies; j++)
  	{
  	  if (j == 0)
  	    {
  	      if (!costing_p)
  		{
  		  if (mask)
  		    {
! 		      vect_get_slp_defs (mask_node, &vec_masks);
  		      vec_mask = vec_masks[0];
  		    }
  		  dataref_ptr
  		    = vect_create_data_ref_ptr (vinfo, first_stmt_info,
  						aggr_type, NULL, offset, &dummy,
*************** vectorizable_store (vec_info *vinfo,
*** 9175,9193 ****
  	  else if (!costing_p)
  	    {
  	      gcc_assert (!LOOP_VINFO_USING_SELECT_VL_P (loop_vinfo));
- 	      /* DR_CHAIN is then used as an input to
- 		 vect_permute_store_chain().  */
- 	      if (!slp)
- 		{
- 		  /* We should have caught mismatched types earlier.  */
- 		  gcc_assert (
- 		    useless_type_conversion_p (vectype, TREE_TYPE (vec_oprnd)));
- 		  for (i = 0; i < group_size; i++)
- 		    {
- 		      vec_oprnd = (*gvec_oprnds[i])[j];
- 		      dr_chain[i] = vec_oprnd;
- 		    }
- 		}
  	      if (mask)
  		vec_mask = vec_masks[j];
  	      dataref_ptr = bump_vector_ptr (vinfo, dataref_ptr, ptr_incr, gsi,
--- 8927,8932 ----
*************** vectorizable_store (vec_info *vinfo,
*** 9211,9227 ****
  	  /* Store the individual vectors into the array.  */
  	  for (i = 0; i < group_size; i++)
  	    {
! 	      if (slp)
! 		{
! 		  slp_tree child;
! 		  if (i == 0 || !mask_node)
! 		    child = SLP_TREE_CHILDREN (slp_node)[i];
! 		  else
! 		    child = SLP_TREE_CHILDREN (slp_node)[i + 1];
! 		  vec_oprnd = SLP_TREE_VEC_DEFS (child)[j];
! 		}
  	      else
! 		vec_oprnd = dr_chain[i];
  	      write_vector_array (vinfo, stmt_info, gsi, vec_oprnd, vec_array,
  				  i);
  	    }
--- 8950,8961 ----
  	  /* Store the individual vectors into the array.  */
  	  for (i = 0; i < group_size; i++)
  	    {
! 	      slp_tree child;
! 	      if (i == 0 || !mask_node)
! 		child = SLP_TREE_CHILDREN (slp_node)[i];
  	      else
! 		child = SLP_TREE_CHILDREN (slp_node)[i + 1];
! 	      vec_oprnd = SLP_TREE_VEC_DEFS (child)[j];
  	      write_vector_array (vinfo, stmt_info, gsi, vec_oprnd, vec_array,
  				  i);
  	    }
*************** vectorizable_store (vec_info *vinfo,
*** 9287,9300 ****
  	    }
  	  gimple_call_set_nothrow (call, true);
  	  vect_finish_stmt_generation (vinfo, stmt_info, call, gsi);
- 	  new_stmt = call;
  
  	  /* Record that VEC_ARRAY is now dead.  */
  	  vect_clobber_variable (vinfo, stmt_info, gsi, vec_array);
- 	  if (j == 0 && !slp)
- 	    *vec_stmt = new_stmt;
- 	  if (!slp)
- 	    STMT_VINFO_VEC_STMTS (stmt_info).safe_push (new_stmt);
  	}
  
        if (costing_p)
--- 9021,9029 ----
*************** vectorizable_store (vec_info *vinfo,
*** 9318,9324 ****
        gcc_assert (!grouped_store);
        auto_vec<tree> vec_offsets;
        unsigned int inside_cost = 0, prologue_cost = 0;
!       int num_stmts = ncopies * vec_num;
        for (j = 0; j < num_stmts; j++)
  	{
  	  gimple *new_stmt;
--- 9047,9053 ----
        gcc_assert (!grouped_store);
        auto_vec<tree> vec_offsets;
        unsigned int inside_cost = 0, prologue_cost = 0;
!       int num_stmts = vec_num;
        for (j = 0; j < num_stmts; j++)
  	{
  	  gimple *new_stmt;
*************** vectorizable_store (vec_info *vinfo,
*** 9332,9352 ****
  		  /* Since the store is not grouped, DR_GROUP_SIZE is 1, and
  		     DR_CHAIN is of size 1.  */
  		  gcc_assert (group_size == 1);
! 		  if (slp_node)
! 		    vect_get_slp_defs (op_node, gvec_oprnds[0]);
! 		  else
! 		    vect_get_vec_defs_for_operand (vinfo, first_stmt_info,
! 						   num_stmts, op, gvec_oprnds[0]);
  		  if (mask)
! 		    {
! 		      if (slp_node)
! 			vect_get_slp_defs (mask_node, &vec_masks);
! 		      else
! 			vect_get_vec_defs_for_operand (vinfo, stmt_info,
! 						       num_stmts,
! 						       mask, &vec_masks,
! 						       mask_vectype);
! 		    }
  
  		  if (STMT_VINFO_GATHER_SCATTER_P (stmt_info))
  		    vect_get_gather_scatter_ops (loop_vinfo, loop, stmt_info,
--- 9061,9069 ----
  		  /* Since the store is not grouped, DR_GROUP_SIZE is 1, and
  		     DR_CHAIN is of size 1.  */
  		  gcc_assert (group_size == 1);
! 		  vect_get_slp_defs (op_node, gvec_oprnds[0]);
  		  if (mask)
! 		    vect_get_slp_defs (mask_node, &vec_masks);
  
  		  if (STMT_VINFO_GATHER_SCATTER_P (stmt_info))
  		    vect_get_gather_scatter_ops (loop_vinfo, loop, stmt_info,
*************** vectorizable_store (vec_info *vinfo,
*** 9638,9654 ****
  		  vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi);
  		}
  
! 	      if (slp)
! 		slp_node->push_vec_def (new_stmt);
  	    }
- 
- 	  if (!slp && !costing_p)
- 	    STMT_VINFO_VEC_STMTS (stmt_info).safe_push (new_stmt);
  	}
  
-       if (!slp && !costing_p)
- 	*vec_stmt = STMT_VINFO_VEC_STMTS (stmt_info)[0];
- 
        if (costing_p && dump_enabled_p ())
  	dump_printf_loc (MSG_NOTE, vect_location,
  			 "vect_model_store_cost: inside_cost = %d, "
--- 9355,9364 ----
  		  vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi);
  		}
  
! 	      slp_node->push_vec_def (new_stmt);
  	    }
  	}
  
        if (costing_p && dump_enabled_p ())
  	dump_printf_loc (MSG_NOTE, vect_location,
  			 "vect_model_store_cost: inside_cost = %d, "
*************** vectorizable_store (vec_info *vinfo,
*** 9669,9998 ****
    unsigned int n_adjacent_stores = 0;
    auto_vec<tree> result_chain (group_size);
    auto_vec<tree, 1> vec_oprnds;
!   for (j = 0; j < ncopies; j++)
      {
!       gimple *new_stmt;
!       if (j == 0)
! 	{
! 	  if (slp && !costing_p)
! 	    {
! 	      /* Get vectorized arguments for SLP_NODE.  */
! 	      vect_get_vec_defs (vinfo, stmt_info, slp_node, 1, op,
! 				 &vec_oprnds, mask, &vec_masks);
! 	      vec_oprnd = vec_oprnds[0];
! 	      if (mask)
! 		vec_mask = vec_masks[0];
! 	    }
! 	  else
! 	    {
! 	      /* For interleaved stores we collect vectorized defs for all the
! 		 stores in the group in DR_CHAIN. DR_CHAIN is then used as an
! 		 input to vect_permute_store_chain().
! 
! 		 If the store is not grouped, DR_GROUP_SIZE is 1, and DR_CHAIN
! 		 is of size 1.  */
! 	      stmt_vec_info next_stmt_info = first_stmt_info;
! 	      for (i = 0; i < group_size; i++)
! 		{
! 		  /* Since gaps are not supported for interleaved stores,
! 		     DR_GROUP_SIZE is the exact number of stmts in the chain.
! 		     Therefore, NEXT_STMT_INFO can't be NULL_TREE.  In case
! 		     that there is no interleaving, DR_GROUP_SIZE is 1,
! 		     and only one iteration of the loop will be executed.  */
! 		  op = vect_get_store_rhs (next_stmt_info);
! 		  if (costing_p)
! 		    update_prologue_cost (&prologue_cost, op);
! 		  else
! 		    {
! 		      vect_get_vec_defs_for_operand (vinfo, next_stmt_info,
! 						     ncopies, op,
! 						     gvec_oprnds[i]);
! 		      vec_oprnd = (*gvec_oprnds[i])[0];
! 		      dr_chain.quick_push (vec_oprnd);
! 		    }
! 		  next_stmt_info = DR_GROUP_NEXT_ELEMENT (next_stmt_info);
! 		}
! 	      if (mask && !costing_p)
! 		{
! 		  vect_get_vec_defs_for_operand (vinfo, stmt_info, ncopies,
! 						 mask, &vec_masks,
! 						 mask_vectype);
! 		  vec_mask = vec_masks[0];
! 		}
! 	    }
  
! 	  /* We should have catched mismatched types earlier.  */
! 	  gcc_assert (costing_p
! 		      || useless_type_conversion_p (vectype,
! 						    TREE_TYPE (vec_oprnd)));
! 	  bool simd_lane_access_p
! 	    = STMT_VINFO_SIMD_LANE_ACCESS_P (stmt_info) != 0;
! 	  if (!costing_p
! 	      && simd_lane_access_p
! 	      && !loop_masks
! 	      && TREE_CODE (DR_BASE_ADDRESS (first_dr_info->dr)) == ADDR_EXPR
! 	      && VAR_P (TREE_OPERAND (DR_BASE_ADDRESS (first_dr_info->dr), 0))
! 	      && integer_zerop (get_dr_vinfo_offset (vinfo, first_dr_info))
! 	      && integer_zerop (DR_INIT (first_dr_info->dr))
! 	      && alias_sets_conflict_p (get_alias_set (aggr_type),
! 					get_alias_set (TREE_TYPE (ref_type))))
! 	    {
! 	      dataref_ptr = unshare_expr (DR_BASE_ADDRESS (first_dr_info->dr));
! 	      dataref_offset = build_int_cst (ref_type, 0);
! 	    }
! 	  else if (!costing_p)
! 	    dataref_ptr
! 	      = vect_create_data_ref_ptr (vinfo, first_stmt_info, aggr_type,
! 					  simd_lane_access_p ? loop : NULL,
! 					  offset, &dummy, gsi, &ptr_incr,
! 					  simd_lane_access_p, bump);
! 	}
!       else if (!costing_p)
  	{
! 	  gcc_assert (!LOOP_VINFO_USING_SELECT_VL_P (loop_vinfo));
! 	  /* DR_CHAIN is then used as an input to vect_permute_store_chain().
! 	     If the store is not grouped, DR_GROUP_SIZE is 1, and DR_CHAIN is
! 	     of size 1.  */
! 	  for (i = 0; i < group_size; i++)
  	    {
! 	      vec_oprnd = (*gvec_oprnds[i])[j];
! 	      dr_chain[i] = vec_oprnd;
  	    }
! 	  if (mask)
! 	    vec_mask = vec_masks[j];
! 	  if (dataref_offset)
! 	    dataref_offset = int_const_binop (PLUS_EXPR, dataref_offset, bump);
! 	  else
! 	    dataref_ptr = bump_vector_ptr (vinfo, dataref_ptr, ptr_incr, gsi,
! 					   stmt_info, bump);
  	}
! 
!       new_stmt = NULL;
!       if (grouped_store)
  	{
! 	  /* Permute.  */
! 	  gcc_assert (memory_access_type == VMAT_CONTIGUOUS_PERMUTE);
! 	  if (costing_p)
! 	    {
! 	      int group_size = DR_GROUP_SIZE (first_stmt_info);
! 	      int nstmts = ceil_log2 (group_size) * group_size;
! 	      inside_cost += record_stmt_cost (cost_vec, nstmts, vec_perm,
! 					       slp_node, 0, vect_body);
! 	      if (dump_enabled_p ())
! 		dump_printf_loc (MSG_NOTE, vect_location,
! 				 "vect_model_store_cost: "
! 				 "strided group_size = %d .\n",
! 				 group_size);
! 	    }
! 	  else
! 	    vect_permute_store_chain (vinfo, dr_chain, group_size, stmt_info,
! 				      gsi, &result_chain);
  	}
  
!       stmt_vec_info next_stmt_info = first_stmt_info;
!       for (i = 0; i < vec_num; i++)
! 	{
! 	  if (!costing_p)
! 	    {
! 	      if (slp)
! 		vec_oprnd = vec_oprnds[i];
! 	      else if (grouped_store)
! 		/* For grouped stores vectorized defs are interleaved in
! 		   vect_permute_store_chain().  */
! 		vec_oprnd = result_chain[i];
! 	    }
! 
! 	  if (memory_access_type == VMAT_CONTIGUOUS_REVERSE)
! 	    {
! 	      if (costing_p)
! 		inside_cost += record_stmt_cost (cost_vec, 1, vec_perm,
! 						 slp_node, 0, vect_body);
! 	      else
! 		{
! 		  tree perm_mask = perm_mask_for_reverse (vectype);
! 		  tree perm_dest = vect_create_destination_var (
! 		    vect_get_store_rhs (stmt_info), vectype);
! 		  tree new_temp = make_ssa_name (perm_dest);
  
! 		  /* Generate the permute statement.  */
! 		  gimple *perm_stmt
! 		    = gimple_build_assign (new_temp, VEC_PERM_EXPR, vec_oprnd,
! 					   vec_oprnd, perm_mask);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, perm_stmt,
! 					       gsi);
  
! 		  perm_stmt = SSA_NAME_DEF_STMT (new_temp);
! 		  vec_oprnd = new_temp;
! 		}
! 	    }
  
  	  if (costing_p)
  	    {
! 	      n_adjacent_stores++;
  
! 	      if (!slp)
! 		{
! 		  next_stmt_info = DR_GROUP_NEXT_ELEMENT (next_stmt_info);
! 		  if (!next_stmt_info)
! 		    break;
! 		}
  
! 	      continue;
  	    }
  
! 	  tree final_mask = NULL_TREE;
! 	  tree final_len = NULL_TREE;
! 	  tree bias = NULL_TREE;
! 	  if (loop_masks)
! 	    final_mask = vect_get_loop_mask (loop_vinfo, gsi, loop_masks,
! 					     vec_num * ncopies, vectype,
! 					     vec_num * j + i);
! 	  if (slp && vec_mask)
! 	    vec_mask = vec_masks[i];
! 	  if (vec_mask)
! 	    final_mask = prepare_vec_mask (loop_vinfo, mask_vectype, final_mask,
! 					   vec_mask, gsi);
! 
! 	  if (i > 0)
! 	    /* Bump the vector pointer.  */
! 	    dataref_ptr = bump_vector_ptr (vinfo, dataref_ptr, ptr_incr, gsi,
! 					   stmt_info, bump);
  
! 	  unsigned misalign;
! 	  unsigned HOST_WIDE_INT align;
! 	  align = known_alignment (DR_TARGET_ALIGNMENT (first_dr_info));
! 	  if (alignment_support_scheme == dr_aligned)
! 	    misalign = 0;
! 	  else if (misalignment == DR_MISALIGNMENT_UNKNOWN)
! 	    {
! 	      align = dr_alignment (vect_dr_behavior (vinfo, first_dr_info));
! 	      misalign = 0;
! 	    }
! 	  else
! 	    misalign = misalignment;
! 	  if (dataref_offset == NULL_TREE
! 	      && TREE_CODE (dataref_ptr) == SSA_NAME)
! 	    set_ptr_info_alignment (get_ptr_info (dataref_ptr), align,
! 				    misalign);
! 	  align = least_bit_hwi (misalign | align);
  
! 	  /* Compute IFN when LOOP_LENS or final_mask valid.  */
! 	  machine_mode vmode = TYPE_MODE (vectype);
! 	  machine_mode new_vmode = vmode;
! 	  internal_fn partial_ifn = IFN_LAST;
! 	  if (loop_lens)
! 	    {
! 	      opt_machine_mode new_ovmode
! 		= get_len_load_store_mode (vmode, false, &partial_ifn);
! 	      new_vmode = new_ovmode.require ();
! 	      unsigned factor
! 		= (new_ovmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vmode);
! 	      final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					     vec_num * ncopies, vectype,
! 					     vec_num * j + i, factor);
! 	    }
! 	  else if (final_mask)
! 	    {
! 	      if (!can_vec_mask_load_store_p (
! 		    vmode, TYPE_MODE (TREE_TYPE (final_mask)), false,
! 		    &partial_ifn))
! 		gcc_unreachable ();
! 	    }
  
! 	  if (partial_ifn == IFN_MASK_LEN_STORE)
! 	    {
! 	      if (!final_len)
! 		{
! 		  /* Pass VF value to 'len' argument of
! 		     MASK_LEN_STORE if LOOP_LENS is invalid.  */
! 		  final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
! 		}
! 	      if (!final_mask)
! 		{
! 		  /* Pass all ones value to 'mask' argument of
! 		     MASK_LEN_STORE if final_mask is invalid.  */
! 		  mask_vectype = truth_type_for (vectype);
! 		  final_mask = build_minus_one_cst (mask_vectype);
! 		}
! 	    }
! 	  if (final_len)
! 	    {
! 	      signed char biasval
! 		= LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  
! 	      bias = build_int_cst (intQI_type_node, biasval);
! 	    }
  
! 	  /* Arguments are ready.  Create the new vector stmt.  */
! 	  if (final_len)
  	    {
! 	      gcall *call;
! 	      tree ptr = build_int_cst (ref_type, align * BITS_PER_UNIT);
! 	      /* Need conversion if it's wrapped with VnQI.  */
! 	      if (vmode != new_vmode)
! 		{
! 		  tree new_vtype
! 		    = build_vector_type_for_mode (unsigned_intQI_type_node,
! 						  new_vmode);
! 		  tree var = vect_get_new_ssa_name (new_vtype, vect_simple_var);
! 		  vec_oprnd = build1 (VIEW_CONVERT_EXPR, new_vtype, vec_oprnd);
! 		  gassign *new_stmt
! 		    = gimple_build_assign (var, VIEW_CONVERT_EXPR, vec_oprnd);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi);
! 		  vec_oprnd = var;
! 		}
! 
! 	      if (partial_ifn == IFN_MASK_LEN_STORE)
! 		call = gimple_build_call_internal (IFN_MASK_LEN_STORE, 6,
! 						   dataref_ptr, ptr, final_mask,
! 						   final_len, bias, vec_oprnd);
! 	      else
! 		call = gimple_build_call_internal (IFN_LEN_STORE, 5,
! 						   dataref_ptr, ptr, final_len,
! 						   bias, vec_oprnd);
! 	      gimple_call_set_nothrow (call, true);
! 	      vect_finish_stmt_generation (vinfo, stmt_info, call, gsi);
! 	      new_stmt = call;
  	    }
! 	  else if (final_mask)
  	    {
! 	      tree ptr = build_int_cst (ref_type, align * BITS_PER_UNIT);
! 	      gcall *call
! 		= gimple_build_call_internal (IFN_MASK_STORE, 4, dataref_ptr,
! 					      ptr, final_mask, vec_oprnd);
! 	      gimple_call_set_nothrow (call, true);
! 	      vect_finish_stmt_generation (vinfo, stmt_info, call, gsi);
! 	      new_stmt = call;
  	    }
! 	  else
  	    {
! 	      data_ref
! 		= fold_build2 (MEM_REF, vectype, dataref_ptr,
! 			       dataref_offset ? dataref_offset
! 					      : build_int_cst (ref_type, 0));
! 	      if (alignment_support_scheme == dr_aligned)
! 		;
! 	      else
! 		TREE_TYPE (data_ref)
! 		  = build_aligned_type (TREE_TYPE (data_ref),
! 					align * BITS_PER_UNIT);
! 	      vect_copy_ref_info (data_ref, DR_REF (first_dr_info->dr));
! 	      new_stmt = gimple_build_assign (data_ref, vec_oprnd);
  	      vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi);
  	    }
  
! 	  if (slp)
! 	    continue;
! 
! 	  next_stmt_info = DR_GROUP_NEXT_ELEMENT (next_stmt_info);
! 	  if (!next_stmt_info)
! 	    break;
  	}
!       if (!slp && !costing_p)
  	{
! 	  if (j == 0)
! 	    *vec_stmt = new_stmt;
! 	  STMT_VINFO_VEC_STMTS (stmt_info).safe_push (new_stmt);
  	}
      }
  
--- 9379,9640 ----
    unsigned int n_adjacent_stores = 0;
    auto_vec<tree> result_chain (group_size);
    auto_vec<tree, 1> vec_oprnds;
!   gimple *new_stmt;
!   if (!costing_p)
      {
!       /* Get vectorized arguments for SLP_NODE.  */
!       vect_get_vec_defs (vinfo, stmt_info, slp_node, 1, op,
! 			 &vec_oprnds, mask, &vec_masks);
!       vec_oprnd = vec_oprnds[0];
!       if (mask)
! 	vec_mask = vec_masks[0];
!     }
!   else
!     {
!       /* For interleaved stores we collect vectorized defs for all the
! 	 stores in the group in DR_CHAIN. DR_CHAIN is then used as an
! 	 input to vect_permute_store_chain().
  
! 	 If the store is not grouped, DR_GROUP_SIZE is 1, and DR_CHAIN
! 	 is of size 1.  */
!       stmt_vec_info next_stmt_info = first_stmt_info;
!       for (i = 0; i < group_size; i++)
  	{
! 	  /* Since gaps are not supported for interleaved stores,
! 	     DR_GROUP_SIZE is the exact number of stmts in the chain.
! 	     Therefore, NEXT_STMT_INFO can't be NULL_TREE.  In case
! 	     that there is no interleaving, DR_GROUP_SIZE is 1,
! 	     and only one iteration of the loop will be executed.  */
! 	  op = vect_get_store_rhs (next_stmt_info);
! 	  if (!costing_p)
  	    {
! 	      vect_get_vec_defs_for_operand (vinfo, next_stmt_info,
! 					     1, op, gvec_oprnds[i]);
! 	      vec_oprnd = (*gvec_oprnds[i])[0];
! 	      dr_chain.quick_push (vec_oprnd);
  	    }
! 	  next_stmt_info = DR_GROUP_NEXT_ELEMENT (next_stmt_info);
  	}
!       if (mask && !costing_p)
  	{
! 	  vect_get_vec_defs_for_operand (vinfo, stmt_info, 1,
! 					 mask, &vec_masks, mask_vectype);
! 	  vec_mask = vec_masks[0];
  	}
+     }
  
!   /* We should have catched mismatched types earlier.  */
!   gcc_assert (costing_p
! 	      || useless_type_conversion_p (vectype, TREE_TYPE (vec_oprnd)));
!   bool simd_lane_access_p
!       = STMT_VINFO_SIMD_LANE_ACCESS_P (stmt_info) != 0;
!   if (!costing_p
!       && simd_lane_access_p
!       && !loop_masks
!       && TREE_CODE (DR_BASE_ADDRESS (first_dr_info->dr)) == ADDR_EXPR
!       && VAR_P (TREE_OPERAND (DR_BASE_ADDRESS (first_dr_info->dr), 0))
!       && integer_zerop (get_dr_vinfo_offset (vinfo, first_dr_info))
!       && integer_zerop (DR_INIT (first_dr_info->dr))
!       && alias_sets_conflict_p (get_alias_set (aggr_type),
! 				get_alias_set (TREE_TYPE (ref_type))))
!     {
!       dataref_ptr = unshare_expr (DR_BASE_ADDRESS (first_dr_info->dr));
!       dataref_offset = build_int_cst (ref_type, 0);
!     }
!   else if (!costing_p)
!     dataref_ptr = vect_create_data_ref_ptr (vinfo, first_stmt_info, aggr_type,
! 					    simd_lane_access_p ? loop : NULL,
! 					    offset, &dummy, gsi, &ptr_incr,
! 					    simd_lane_access_p, bump);
  
!   new_stmt = NULL;
!   if (grouped_store)
!     {
!       /* Permute.  */
!       gcc_assert (memory_access_type == VMAT_CONTIGUOUS_PERMUTE);
!       if (costing_p)
! 	{
! 	  int group_size = DR_GROUP_SIZE (first_stmt_info);
! 	  int nstmts = ceil_log2 (group_size) * group_size;
! 	  inside_cost += record_stmt_cost (cost_vec, nstmts, vec_perm,
! 					   slp_node, 0, vect_body);
! 	  if (dump_enabled_p ())
! 	    dump_printf_loc (MSG_NOTE, vect_location, "vect_model_store_cost: "
! 			     "strided group_size = %d .\n", group_size);
! 	}
!       else
! 	vect_permute_store_chain (vinfo, dr_chain, group_size, stmt_info,
! 				  gsi, &result_chain);
!     }
  
!   for (i = 0; i < vec_num; i++)
!     {
!       if (!costing_p)
! 	vec_oprnd = vec_oprnds[i];
  
+       if (memory_access_type == VMAT_CONTIGUOUS_REVERSE)
+ 	{
  	  if (costing_p)
+ 	    inside_cost += record_stmt_cost (cost_vec, 1, vec_perm,
+ 					     slp_node, 0, vect_body);
+ 	  else
  	    {
! 	      tree perm_mask = perm_mask_for_reverse (vectype);
! 	      tree perm_dest
! 		= vect_create_destination_var (vect_get_store_rhs (stmt_info),
! 					       vectype);
! 	      tree new_temp = make_ssa_name (perm_dest);
  
! 	      /* Generate the permute statement.  */
! 	      gimple *perm_stmt
! 		= gimple_build_assign (new_temp, VEC_PERM_EXPR, vec_oprnd,
! 				       vec_oprnd, perm_mask);
! 	      vect_finish_stmt_generation (vinfo, stmt_info, perm_stmt, gsi);
  
! 	      perm_stmt = SSA_NAME_DEF_STMT (new_temp);
! 	      vec_oprnd = new_temp;
  	    }
+ 	}
  
!       if (costing_p)
! 	{
! 	  n_adjacent_stores++;
! 	  continue;
! 	}
  
!       tree final_mask = NULL_TREE;
!       tree final_len = NULL_TREE;
!       tree bias = NULL_TREE;
!       if (loop_masks)
! 	final_mask = vect_get_loop_mask (loop_vinfo, gsi, loop_masks,
! 					 vec_num, vectype, i);
!       if (vec_mask)
! 	vec_mask = vec_masks[i];
!       if (vec_mask)
! 	final_mask = prepare_vec_mask (loop_vinfo, mask_vectype, final_mask,
! 				       vec_mask, gsi);
  
!       if (i > 0)
! 	/* Bump the vector pointer.  */
! 	dataref_ptr = bump_vector_ptr (vinfo, dataref_ptr, ptr_incr, gsi,
! 				       stmt_info, bump);
  
!       unsigned misalign;
!       unsigned HOST_WIDE_INT align;
!       align = known_alignment (DR_TARGET_ALIGNMENT (first_dr_info));
!       if (alignment_support_scheme == dr_aligned)
! 	misalign = 0;
!       else if (misalignment == DR_MISALIGNMENT_UNKNOWN)
! 	{
! 	  align = dr_alignment (vect_dr_behavior (vinfo, first_dr_info));
! 	  misalign = 0;
! 	}
!       else
! 	misalign = misalignment;
!       if (dataref_offset == NULL_TREE
! 	  && TREE_CODE (dataref_ptr) == SSA_NAME)
! 	set_ptr_info_alignment (get_ptr_info (dataref_ptr), align, misalign);
!       align = least_bit_hwi (misalign | align);
  
!       /* Compute IFN when LOOP_LENS or final_mask valid.  */
!       machine_mode vmode = TYPE_MODE (vectype);
!       machine_mode new_vmode = vmode;
!       internal_fn partial_ifn = IFN_LAST;
!       if (loop_lens)
! 	{
! 	  opt_machine_mode new_ovmode
! 	    = get_len_load_store_mode (vmode, false, &partial_ifn);
! 	  new_vmode = new_ovmode.require ();
! 	  unsigned factor
! 	    = (new_ovmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vmode);
! 	  final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					 vec_num, vectype, i, factor);
! 	}
!       else if (final_mask)
! 	{
! 	  if (!can_vec_mask_load_store_p (vmode,
! 					  TYPE_MODE (TREE_TYPE (final_mask)),
! 					  false, &partial_ifn))
! 	    gcc_unreachable ();
! 	}
  
!       if (partial_ifn == IFN_MASK_LEN_STORE)
! 	{
! 	  if (!final_len)
  	    {
! 	      /* Pass VF value to 'len' argument of
! 		 MASK_LEN_STORE if LOOP_LENS is invalid.  */
! 	      final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  	    }
! 	  if (!final_mask)
  	    {
! 	      /* Pass all ones value to 'mask' argument of
! 		 MASK_LEN_STORE if final_mask is invalid.  */
! 	      mask_vectype = truth_type_for (vectype);
! 	      final_mask = build_minus_one_cst (mask_vectype);
  	    }
! 	}
!       if (final_len)
! 	{
! 	  signed char biasval = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
! 	  bias = build_int_cst (intQI_type_node, biasval);
! 	}
! 
!       /* Arguments are ready.  Create the new vector stmt.  */
!       if (final_len)
! 	{
! 	  gcall *call;
! 	  tree ptr = build_int_cst (ref_type, align * BITS_PER_UNIT);
! 	  /* Need conversion if it's wrapped with VnQI.  */
! 	  if (vmode != new_vmode)
  	    {
! 	      tree new_vtype
! 		= build_vector_type_for_mode (unsigned_intQI_type_node,
! 					      new_vmode);
! 	      tree var = vect_get_new_ssa_name (new_vtype, vect_simple_var);
! 	      vec_oprnd = build1 (VIEW_CONVERT_EXPR, new_vtype, vec_oprnd);
! 	      gassign *new_stmt
! 		= gimple_build_assign (var, VIEW_CONVERT_EXPR, vec_oprnd);
  	      vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi);
+ 	      vec_oprnd = var;
  	    }
  
! 	  if (partial_ifn == IFN_MASK_LEN_STORE)
! 	    call = gimple_build_call_internal (IFN_MASK_LEN_STORE, 6,
! 					       dataref_ptr, ptr, final_mask,
! 					       final_len, bias, vec_oprnd);
! 	  else
! 	    call = gimple_build_call_internal (IFN_LEN_STORE, 5,
! 					       dataref_ptr, ptr, final_len,
! 					       bias, vec_oprnd);
! 	  gimple_call_set_nothrow (call, true);
! 	  vect_finish_stmt_generation (vinfo, stmt_info, call, gsi);
! 	  new_stmt = call;
  	}
!       else if (final_mask)
  	{
! 	  tree ptr = build_int_cst (ref_type, align * BITS_PER_UNIT);
! 	  gcall *call
! 	    = gimple_build_call_internal (IFN_MASK_STORE, 4, dataref_ptr,
! 					  ptr, final_mask, vec_oprnd);
! 	  gimple_call_set_nothrow (call, true);
! 	  vect_finish_stmt_generation (vinfo, stmt_info, call, gsi);
! 	  new_stmt = call;
! 	}
!       else
! 	{
! 	  data_ref = fold_build2 (MEM_REF, vectype, dataref_ptr,
! 				  dataref_offset ? dataref_offset
! 				  : build_int_cst (ref_type, 0));
! 	  if (alignment_support_scheme == dr_aligned)
! 	    ;
! 	  else
! 	    TREE_TYPE (data_ref)
! 	      = build_aligned_type (TREE_TYPE (data_ref),
! 				    align * BITS_PER_UNIT);
! 	  vect_copy_ref_info (data_ref, DR_REF (first_dr_info->dr));
! 	  new_stmt = gimple_build_assign (data_ref, vec_oprnd);
! 	  vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi);
  	}
      }
  
*************** vectorizable_store (vec_info *vinfo,
*** 10024,10034 ****
  		{
  		  /* Spill.  */
  		  prologue_cost
! 		    += record_stmt_cost (cost_vec, ncopies, vector_store,
  					 slp_node, 0, vect_epilogue);
  		  /* Loads.  */
  		  prologue_cost
! 		    += record_stmt_cost (cost_vec, ncopies * nregs, scalar_load,
  					 slp_node, 0, vect_epilogue);
  		}
  	    }
--- 9666,9676 ----
  		{
  		  /* Spill.  */
  		  prologue_cost
! 		    += record_stmt_cost (cost_vec, 1, vector_store,
  					 slp_node, 0, vect_epilogue);
  		  /* Loads.  */
  		  prologue_cost
! 		    += record_stmt_cost (cost_vec, nregs, scalar_load,
  					 slp_node, 0, vect_epilogue);
  		}
  	    }
diff -Nrcpad gcc-16-20250601/gcc/var-tracking.cc gcc-16-20250608/gcc/var-tracking.cc
*** gcc-16-20250601/gcc/var-tracking.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/gcc/var-tracking.cc	Sun Jun  8 22:32:40 2025
*************** prepare_call_arguments (basic_block bb,
*** 6273,6279 ****
  	  if (SYMBOL_REF_DECL (symbol))
  	    fndecl = SYMBOL_REF_DECL (symbol);
  	}
!       if (fndecl == NULL_TREE)
  	fndecl = MEM_EXPR (XEXP (call, 0));
        if (fndecl
  	  && TREE_CODE (TREE_TYPE (fndecl)) != FUNCTION_TYPE
--- 6273,6279 ----
  	  if (SYMBOL_REF_DECL (symbol))
  	    fndecl = SYMBOL_REF_DECL (symbol);
  	}
!       if (fndecl == NULL_TREE && MEM_P (XEXP (call, 0)))
  	fndecl = MEM_EXPR (XEXP (call, 0));
        if (fndecl
  	  && TREE_CODE (TREE_TYPE (fndecl)) != FUNCTION_TYPE
diff -Nrcpad gcc-16-20250601/gcc/xml.cc gcc-16-20250608/gcc/xml.cc
*** gcc-16-20250601/gcc/xml.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/gcc/xml.cc	Sun Jun  8 22:32:40 2025
***************
*** 0 ****
--- 1,367 ----
+ /* XML support for diagnostics.
+    Copyright (C) 2024-2025 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #define INCLUDE_MAP
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+ #include "coretypes.h"
+ #include "xml.h"
+ #include "xml-printer.h"
+ #include "pretty-print.h"
+ #include "selftest.h"
+ 
+ namespace xml {
+ 
+ /* Disable warnings about quoting issues in the pp_xxx calls below
+    that (intentionally) don't follow GCC diagnostic conventions.  */
+ #if __GNUC__ >= 10
+ #  pragma GCC diagnostic push
+ #  pragma GCC diagnostic ignored "-Wformat-diag"
+ #endif
+ 
+ 
+ /* Implementation.  */
+ 
+ static void
+ write_escaped_text (pretty_printer *pp, const char *text)
+ {
+   gcc_assert (text);
+ 
+   for (const char *p = text; *p; ++p)
+     {
+       char ch = *p;
+       switch (ch)
+ 	{
+ 	default:
+ 	  pp_character (pp, ch);
+ 	  break;
+ 	case '\'':
+ 	  pp_string (pp, "&apos;");
+ 	  break;
+ 	case '"':
+ 	  pp_string (pp, "&quot;");
+ 	  break;
+ 	case '&':
+ 	  pp_string (pp, "&amp;");
+ 	  break;
+ 	case '<':
+ 	  pp_string (pp, "&lt;");
+ 	  break;
+ 	case '>':
+ 	  pp_string (pp, "&gt;");
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* struct node.  */
+ 
+ void
+ node::dump (FILE *out) const
+ {
+   pretty_printer pp;
+   pp.set_output_stream (out);
+   write_as_xml (&pp, 0, true);
+   pp_flush (&pp);
+ }
+ 
+ /* struct text : public node.  */
+ 
+ void
+ text::write_as_xml (pretty_printer *pp, int depth, bool indent) const
+ {
+   if (indent)
+     {
+       for (int i = 0; i < depth; ++i)
+ 	pp_string (pp, "  ");
+     }
+   write_escaped_text (pp, m_str.c_str ());
+   if (indent)
+     pp_newline (pp);
+ }
+ 
+ /* struct node_with_children : public node.  */
+ 
+ void
+ node_with_children::add_child (std::unique_ptr<node> node)
+ {
+   gcc_assert (node.get ());
+   m_children.push_back (std::move (node));
+ }
+ 
+ void
+ node_with_children::add_text (std::string str)
+ {
+   // Consolidate runs of text
+   if (!m_children.empty ())
+     if (text *t = m_children.back ()->dyn_cast_text ())
+       {
+ 	t->m_str += std::move (str);
+ 	return;
+       }
+   add_child (std::make_unique <text> (std::move (str)));
+ }
+ 
+ 
+ /* struct document : public node_with_children.  */
+ 
+ void
+ document::write_as_xml (pretty_printer *pp, int depth, bool indent) const
+ {
+   pp_string (pp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+   if (m_doctypedecl)
+     m_doctypedecl->write_as_xml (pp, depth, indent);
+   for (auto &iter : m_children)
+     iter->write_as_xml (pp, depth, indent);
+ }
+ 
+ /* struct element : public node_with_children.  */
+ 
+ void
+ element::write_as_xml (pretty_printer *pp, int depth, bool indent) const
+ {
+   if (indent)
+     {
+       for (int i = 0; i < depth; ++i)
+ 	pp_string (pp, "  ");
+     }
+ 
+   pp_printf (pp, "<%s", m_kind.c_str ());
+   for (auto &key : m_key_insertion_order)
+     {
+       auto iter = m_attributes.find (key);
+       if (iter != m_attributes.end ())
+ 	{
+ 	  pp_printf (pp, " %s=\"", key.c_str ());
+ 	  write_escaped_text (pp, iter->second.c_str ());
+ 	  pp_string (pp, "\"");
+ 	}
+     }
+   if (m_children.empty ())
+     pp_string (pp, "/>");
+   else
+     {
+       const bool indent_children = m_preserve_whitespace ? false : indent;
+       pp_string (pp, ">");
+       if (indent_children)
+ 	pp_newline (pp);
+       for (auto &child : m_children)
+ 	child->write_as_xml (pp, depth + 1, indent_children);
+       if (indent_children)
+ 	{
+ 	  for (int i = 0; i < depth; ++i)
+ 	    pp_string (pp, "  ");
+ 	}
+       pp_printf (pp, "</%s>", m_kind.c_str ());
+     }
+ 
+   if (indent)
+     pp_newline (pp);
+ }
+ 
+ void
+ element::set_attr (const char *name, std::string value)
+ {
+   auto iter = m_attributes.find (name);
+   if (iter == m_attributes.end ())
+     m_key_insertion_order.push_back (name);
+   m_attributes[name] = std::move (value);
+ }
+ 
+ // struct raw : public node
+ 
+ void
+ raw::write_as_xml (pretty_printer *pp,
+ 		   int /*depth*/, bool /*indent*/) const
+ {
+   pp_string (pp, m_xml_src.c_str ());
+ }
+ 
+ #if __GNUC__ >= 10
+ #  pragma GCC diagnostic pop
+ #endif
+ 
+ // class printer
+ 
+ printer::printer (element &insertion_point)
+ {
+   m_open_tags.push_back (&insertion_point);
+ }
+ 
+ void
+ printer::push_tag (std::string name,
+ 		   bool preserve_whitespace)
+ {
+   push_element
+     (std::make_unique<element> (std::move (name),
+ 				preserve_whitespace));
+ }
+ 
+ void
+ printer::push_tag_with_class (std::string name, std::string class_,
+ 			      bool preserve_whitespace)
+ {
+   auto new_element
+     = std::make_unique<element> (std::move (name),
+ 				 preserve_whitespace);
+   new_element->set_attr ("class", class_);
+   push_element (std::move (new_element));
+ }
+ 
+ void
+ printer::pop_tag ()
+ {
+   m_open_tags.pop_back ();
+ }
+ 
+ void
+ printer::set_attr (const char *name, std::string value)
+ {
+   m_open_tags.back ()->set_attr (name, value);
+ }
+ 
+ void
+ printer::add_text (std::string text)
+ {
+   element *parent = m_open_tags.back ();
+   parent->add_text (std::move (text));
+ }
+ 
+ void
+ printer::add_raw (std::string text)
+ {
+   element *parent = m_open_tags.back ();
+   parent->add_child (std::make_unique<xml::raw> (std::move (text)));
+ }
+ 
+ void
+ printer::push_element (std::unique_ptr<element> new_element)
+ {
+   element *parent = m_open_tags.back ();
+   m_open_tags.push_back (new_element.get ());
+   parent->add_child (std::move (new_element));
+ }
+ 
+ void
+ printer::append (std::unique_ptr<node> new_node)
+ {
+   element *parent = m_open_tags.back ();
+   parent->add_child (std::move (new_node));
+ }
+ 
+ element *
+ printer::get_insertion_point () const
+ {
+   return m_open_tags.back ();
+ }
+ 
+ } // namespace xml
+ 
+ #if CHECKING_P
+ 
+ namespace selftest {
+ 
+ static void
+ test_no_dtd ()
+ {
+   xml::document doc;
+   pretty_printer pp;
+   doc.write_as_xml (&pp, 0, true);
+   ASSERT_STREQ
+     (pp_formatted_text (&pp),
+      "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ }
+ 
+ static void
+ test_printer ()
+ {
+   xml::element top ("top", false);
+   xml::printer xp (top);
+   xp.push_tag ("foo");
+   xp.add_text ("hello");
+   xp.push_tag ("bar");
+   xp.set_attr ("size", "3");
+   xp.set_attr ("color", "red");
+   xp.add_text ("world");
+   xp.push_tag ("baz");
+   xp.pop_tag ();
+   xp.pop_tag ();
+   xp.pop_tag ();
+ 
+   pretty_printer pp;
+   top.write_as_xml (&pp, 0, true);
+   ASSERT_STREQ
+     (pp_formatted_text (&pp),
+      "<top>\n"
+      "  <foo>\n"
+      "    hello\n"
+      "    <bar size=\"3\" color=\"red\">\n"
+      "      world\n"
+      "      <baz/>\n"
+      "    </bar>\n"
+      "  </foo>\n"
+      "</top>\n");
+ }
+ 
+ // Verify that element attributes preserve insertion order.
+ 
+ static void
+ test_attribute_ordering ()
+ {
+   xml::element top ("top", false);
+   xml::printer xp (top);
+   xp.push_tag ("chronological");
+   xp.set_attr ("maldon", "991");
+   xp.set_attr ("hastings", "1066");
+   xp.set_attr ("edgehill", "1642");
+   xp.set_attr ("naseby", "1645");
+   xp.pop_tag ();
+   xp.push_tag ("alphabetical");
+   xp.set_attr ("edgehill", "1642");
+   xp.set_attr ("hastings", "1066");
+   xp.set_attr ("maldon", "991");
+   xp.set_attr ("naseby", "1645");
+   xp.pop_tag ();
+ 
+   pretty_printer pp;
+   top.write_as_xml (&pp, 0, true);
+   ASSERT_STREQ
+     (pp_formatted_text (&pp),
+      "<top>\n"
+      "  <chronological maldon=\"991\" hastings=\"1066\" edgehill=\"1642\" naseby=\"1645\"/>\n"
+      "  <alphabetical edgehill=\"1642\" hastings=\"1066\" maldon=\"991\" naseby=\"1645\"/>\n"
+      "</top>\n");
+ }
+ 
+ /* Run all of the selftests within this file.  */
+ 
+ void
+ xml_cc_tests ()
+ {
+   test_no_dtd ();
+   test_printer ();
+   test_attribute_ordering ();
+ }
+ 
+ } // namespace selftest
+ 
+ #endif /* CHECKING_P */
diff -Nrcpad gcc-16-20250601/gcc/xml.h gcc-16-20250608/gcc/xml.h
*** gcc-16-20250601/gcc/xml.h	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/gcc/xml.h	Sun Jun  8 22:32:40 2025
*************** struct node;
*** 29,34 ****
--- 29,35 ----
    struct node_with_children;
      struct document;
      struct element;
+   struct doctypedecl;
  
  struct node
  {
*************** struct document : public node_with_child
*** 72,77 ****
--- 73,85 ----
  {
    void write_as_xml (pretty_printer *pp,
  		     int depth, bool indent) const final override;
+ 
+   std::unique_ptr<doctypedecl> m_doctypedecl;
+ };
+ 
+ struct doctypedecl : public node
+ {
+   // still abstract
  };
  
  struct element : public node_with_children
diff -Nrcpad gcc-16-20250601/include/ChangeLog gcc-16-20250608/include/ChangeLog
*** gcc-16-20250601/include/ChangeLog	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/include/ChangeLog	Sun Jun  8 22:32:40 2025
***************
*** 1,3 ****
--- 1,8 ----
+ 2025-06-02  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR libgomp/120444
+ 	* cuda/cuda.h (cuMemsetD8, cuMemsetD8Async): Declare.
+ 
  2025-05-30  Julian Brown  <julian@codesourcery.com>
  	    Tobias Burnus  <tburnus@baylibre.com>
  
diff -Nrcpad gcc-16-20250601/include/cuda/cuda.h gcc-16-20250608/include/cuda/cuda.h
*** gcc-16-20250601/include/cuda/cuda.h	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/include/cuda/cuda.h	Sun Jun  8 22:32:40 2025
*************** CUresult cuMemcpy3D (const CUDA_MEMCPY3D
*** 279,284 ****
--- 279,287 ----
  CUresult cuMemcpy3DAsync (const CUDA_MEMCPY3D *, CUstream);
  CUresult cuMemcpy3DPeer (const CUDA_MEMCPY3D_PEER *);
  CUresult cuMemcpy3DPeerAsync (const CUDA_MEMCPY3D_PEER *, CUstream);
+ #define cuMemsetD8 cuMemsetD8_v2
+ CUresult cuMemsetD8 (CUdeviceptr, unsigned char, size_t);
+ CUresult cuMemsetD8Async (CUdeviceptr, unsigned char, size_t, CUstream);
  #define cuMemFree cuMemFree_v2
  CUresult cuMemFree (CUdeviceptr);
  CUresult cuMemFreeHost (void *);
diff -Nrcpad gcc-16-20250601/libgcobol/ChangeLog gcc-16-20250608/libgcobol/ChangeLog
*** gcc-16-20250601/libgcobol/ChangeLog	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/ChangeLog	Sun Jun  8 22:32:41 2025
***************
*** 1,3 ****
--- 1,299 ----
+ 2025-06-06  Robert Dubner  <rdubner@symas.com>
+ 	    James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* common-defs.h (enum cbl_file_mode_t): Whitespace.
+ 	(enum file_stmt_t): Likewise.
+ 	(ec_cmp): Likewise.
+ 	(struct cbl_declarative_t): Add "explicit" keyword.
+ 	(class cbl_enabled_exceptions_t): Whitespace.
+ 	* gfileio.cc: Remove cppcheck comment.
+ 	* libgcobol.cc (class ec_status_t): Add "explicit" keyword.
+ 	(match_declarative): Remove %zu.
+ 	(default_exception_handler): Likwise.
+ 	(__gg__check_fatal_exception): Exception overhead.
+ 	(__gg__exception_push): Remove %zu.
+ 	(__gg__exception_pop): Likewise.
+ 	(cbl_enabled_exception_t::dump): Likewise.
+ 	(__gg__match_exception): Exception overhead; remove %zu.
+ 	(cbl_enabled_exceptions_t::dump): Remove %zu.
+ 	(__gg__set_exception_environment): Likewise.
+ 
+ 2025-06-05  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119975
+ 	* configure.ac: AC_CHECK_LIB(rt, clock_gettime).
+ 	* config.h.in: Likewise.
+ 	* configure: Likewise.
+ 	* gfileio.cc: Remove in-line cppcheck-suppress.
+ 	* intrinsic.cc (timespec_to_string): Use guarded clock_gettime().
+ 	(__gg__current_date): Likewise.
+ 	(__gg__seconds_past_midnight): Likewise.
+ 	(__gg__formatted_current_date): Likewise.
+ 	(__gg__random): Likewise.
+ 	(__gg__random_next): Likewise.
+ 	(__gg__when_compiled): Likewise.
+ 	* libgcobol.cc (cobol_time): Likewise.
+ 	(get_time_nanoseconds): Likewise.
+ 	(__gg__clock_gettime): Likewise.
+ 	(__gg__get_date_hhmmssff): Likewise.
+ 	* libgcobol.h (__gg__clock_gettime): Likewise.
+ 	(struct cbl_timespec): Likewise.
+ 
+ 2025-06-04  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119323
+ 	* charmaps.cc (__gg__raw_to_ascii):  Eliminate cppcheck warnings.
+ 	(__gg__raw_to_ebcdic): Likewise.
+ 	(__gg__ebcdic_to_console): Likewise.
+ 	(__gg__console_to_ascii): Likewise.
+ 	(__gg__console_to_ebcdic): Likewise.
+ 	* common-defs.h (struct cbl_declarative_t): Likewise.
+ 	* gfileio.cc (get_filename): Likewise.
+ 	(max_value): Likewise.
+ 	(relative_file_delete_varying): Likewise.
+ 	(relative_file_delete): Likewise.
+ 	(read_an_indexed_record): Likewise.
+ 	(position_state_restore): Likewise.
+ 	(indexed_file_delete): Likewise.
+ 	(indexed_file_start): Likewise.
+ 	(sequential_file_rewrite): Likewise.
+ 	(relative_file_write_varying): Likewise.
+ 	(relative_file_write): Likewise.
+ 	(sequential_file_write): Likewise.
+ 	(indexed_file_write): Likewise.
+ 	(__io__file_write): Likewise.
+ 	(line_sequential_file_read): Likewise.
+ 	(indexed_file_read): Likewise.
+ 	(file_indexed_open): Likewise.
+ 	(__gg__file_reopen): Likewise.
+ 	* gmath.cc (conditional_stash): Likewise.
+ 	(__gg__pow): Likewise.
+ 	(multiply_int256_by_int64): Likewise.
+ 	(add_int256_to_int256): Likewise.
+ 	(divide_int256_by_int64): Likewise.
+ 	(squeeze_int256): Likewise.
+ 	(get_int256_from_qualified_field): Likewise.
+ 	(__gg__add_fixed_phase1): Likewise.
+ 	(__gg__addf1_fixed_phase2): Likewise.
+ 	(__gg__fixed_phase2_assign_to_c): Likewise.
+ 	(__gg__add_float_phase1): Likewise.
+ 	(__gg__addf1_float_phase2): Likewise.
+ 	(__gg__float_phase2_assign_to_c): Likewise.
+ 	(__gg__addf3): Likewise.
+ 	(__gg__subtractf1_fixed_phase2): Likewise.
+ 	(__gg__subtractf2_fixed_phase1): Likewise.
+ 	(__gg__subtractf1_float_phase2): Likewise.
+ 	(__gg__subtractf2_float_phase1): Likewise.
+ 	(__gg__subtractf3): Likewise.
+ 	(__gg__multiplyf1_phase1): Likewise.
+ 	(multiply_int128_by_int128): Likewise.
+ 	(__gg__multiplyf1_phase2): Likewise.
+ 	(__gg__multiplyf2): Likewise.
+ 	(shift_in_place128): Likewise.
+ 	(divide_int128_by_int128): Likewise.
+ 	(__gg__dividef1_phase2): Likewise.
+ 	(__gg__dividef23): Likewise.
+ 	(__gg__dividef45): Likewise.
+ 	* intrinsic.cc (struct input_state): Likewise.
+ 	(get_value_as_double_from_qualified_field): Likewise.
+ 	(kahan_summation): Likewise.
+ 	(variance): Likewise.
+ 	(get_all_time): Likewise.
+ 	(populate_ctm_from_date): Likewise.
+ 	(populate_ctm_from_time): Likewise.
+ 	(ftime_replace): Likewise.
+ 	(__gg__abs): Likewise.
+ 	(__gg__acos): Likewise.
+ 	(__gg__annuity): Likewise.
+ 	(__gg__asin): Likewise.
+ 	(__gg__atan): Likewise.
+ 	(__gg__byte_length): Likewise.
+ 	(__gg__char): Likewise.
+ 	(__gg__combined_datetime): Likewise.
+ 	(__gg__cos): Likewise.
+ 	(__gg__date_of_integer): Likewise.
+ 	(__gg__date_to_yyyymmdd): Likewise.
+ 	(__gg__day_of_integer): Likewise.
+ 	(__gg__day_to_yyyyddd): Likewise.
+ 	(__gg__exp): Likewise.
+ 	(__gg__exp10): Likewise.
+ 	(__gg__factorial): Likewise.
+ 	(__gg__formatted_current_date): Likewise.
+ 	(__gg__formatted_date): Likewise.
+ 	(__gg__formatted_datetime): Likewise.
+ 	(__gg__formatted_time): Likewise.
+ 	(__gg__integer): Likewise.
+ 	(__gg__integer_of_date): Likewise.
+ 	(__gg__integer_of_day): Likewise.
+ 	(__gg__integer_part): Likewise.
+ 	(__gg__fraction_part): Likewise.
+ 	(__gg__log): Likewise.
+ 	(__gg__log10): Likewise.
+ 	(__gg__max): Likewise.
+ 	(__gg__lower_case): Likewise.
+ 	(__gg__median): Likewise.
+ 	(__gg__min): Likewise.
+ 	(numval): Likewise.
+ 	(numval_c): Likewise.
+ 	(__gg__numval): Likewise.
+ 	(__gg__test_numval): Likewise.
+ 	(__gg__numval_c): Likewise.
+ 	(__gg__test_numval_c): Likewise.
+ 	(__gg__ord): Likewise.
+ 	(__gg__rem): Likewise.
+ 	(__gg__trim): Likewise.
+ 	(__gg__random): Likewise.
+ 	(__gg__reverse): Likewise.
+ 	(__gg__sign): Likewise.
+ 	(__gg__sin): Likewise.
+ 	(__gg__sqrt): Likewise.
+ 	(__gg__tan): Likewise.
+ 	(__gg__test_date_yyyymmdd): Likewise.
+ 	(__gg__test_day_yyyyddd): Likewise.
+ 	(__gg__upper_case): Likewise.
+ 	(__gg__year_to_yyyy): Likewise.
+ 	(gets_int): Likewise.
+ 	(gets_year): Likewise.
+ 	(gets_month): Likewise.
+ 	(gets_day): Likewise.
+ 	(gets_day_of_week): Likewise.
+ 	(gets_day_of_year): Likewise.
+ 	(gets_week): Likewise.
+ 	(gets_hours): Likewise.
+ 	(gets_minutes): Likewise.
+ 	(gets_seconds): Likewise.
+ 	(gets_nanoseconds): Likewise.
+ 	(fill_cobol_tm): Likewise.
+ 	(__gg__test_formatted_datetime): Likewise.
+ 	(__gg__integer_of_formatted_date): Likewise.
+ 	(__gg__seconds_from_formatted_time): Likewise.
+ 	(__gg__hex_of): Likewise.
+ 	(__gg__highest_algebraic): Likewise.
+ 	(__gg__lowest_algebraic): Likewise.
+ 	(floating_format_tester): Likewise.
+ 	(__gg__numval_f): Likewise.
+ 	(__gg__test_numval_f): Likewise.
+ 	(ismatch): Likewise.
+ 	(iscasematch): Likewise.
+ 	(strstr): Likewise.
+ 	(strcasestr): Likewise.
+ 	(strlaststr): Likewise.
+ 	(strcaselaststr): Likewise.
+ 	(__gg__substitute): Likewise.
+ 	(__gg__locale_compare): Likewise.
+ 	(__gg__locale_date): Likewise.
+ 	(__gg__locale_time): Likewise.
+ 	(__gg__locale_time_from_seconds): Likewise.
+ 	* libgcobol.cc (class ec_status_t): Likewise.
+ 	(__gg__set_truncation_mode): Likewise.
+ 	(malloc): Likewise.
+ 	(__gg__mabort): Likewise.
+ 	(__gg__resize_int_p): Likewise.
+ 	(__gg__resize_treeplet): Likewise.
+ 	(var_is_refmod): Likewise.
+ 	(value_is_too_big): Likewise.
+ 	(__gg__string_to_alpha_edited_ascii): Likewise.
+ 	(int128_to_field): Likewise.
+ 	(edited_to_binary): Likewise.
+ 	(get_binary_value_local): Likewise.
+ 	(__gg__get_date_yymmdd): Likewise.
+ 	(__gg__get_date_yyyymmdd): Likewise.
+ 	(__gg__get_date_yyddd): Likewise.
+ 	(__gg__get_yyyyddd): Likewise.
+ 	(__gg__get_date_dow): Likewise.
+ 	(get_scaled_rdigits): Likewise.
+ 	(format_for_display_internal): Likewise.
+ 	(compare_88): Likewise.
+ 	(get_float128): Likewise.
+ 	(compare_field_class): Likewise.
+ 	(compare_strings): Likewise.
+ 	(__gg__compare_2): Likewise.
+ 	(__gg__sort_table): Likewise.
+ 	(init_var_both): Likewise.
+ 	(alpha_to_alpha_move_from_location): Likewise.
+ 	(alpha_to_alpha_move): Likewise.
+ 	(__gg__move): Likewise.
+ 	(__gg__move_literala): Likewise.
+ 	(__gg__sort_workfile): Likewise.
+ 	(__gg__merge_files): Likewise.
+ 	(normalize_id): Likewise.
+ 	(inspect_backward_format_1): Likewise.
+ 	(__gg__inspect_format_1): Likewise.
+ 	(inspect_backward_format_2): Likewise.
+ 	(__gg__inspect_format_2): Likewise.
+ 	(__gg__inspect_format_4): Likewise.
+ 	(move_string): Likewise.
+ 	(__gg__string): Likewise.
+ 	(display_both): Likewise.
+ 	(__gg__display_string): Likewise.
+ 	(__gg__accept): Likewise.
+ 	(__gg__binary_value_from_qualified_field): Likewise.
+ 	(__gg__float128_from_qualified_field): Likewise.
+ 	(float128_to_int128): Likewise.
+ 	(float128_to_location): Likewise.
+ 	(__gg__set_initial_switch_value): Likewise.
+ 	(is_numeric_display_numeric): Likewise.
+ 	(is_packed_numeric): Likewise.
+ 	(is_alpha_a_number): Likewise.
+ 	(__gg__classify): Likewise.
+ 	(__gg__accept_envar): Likewise.
+ 	(__gg__set_envar): Likewise.
+ 	(command_line_plan_b): Likewise.
+ 	(__gg__get_command_line): Likewise.
+ 	(__gg__set_pointer): Likewise.
+ 	(__gg__ascii_to_internal_field): Likewise.
+ 	(__gg__internal_to_console_in_place): Likewise.
+ 	(__gg__routine_to_call): Likewise.
+ 	(__gg__fetch_call_by_value_value): Likewise.
+ 	(__gg__assign_value_from_stack): Likewise.
+ 	(__gg__literaln_alpha_compare): Likewise.
+ 	(string_in): Likewise.
+ 	(__gg__unstring): Likewise.
+ 	(local_ec_type_of): Likewise.
+ 	(struct exception_descr_t): Likewise.
+ 	(struct cbl_exception_t): Likewise.
+ 	(cbl_enabled_exception_t: Likewise.: Likewise.dump): Likewise.
+ 	(__gg__match_exception): Likewise.
+ 	(__gg__float128_from_location): Likewise.
+ 	(__gg__integer_from_float128): Likewise.
+ 	(__gg__set_exception_file): Likewise.
+ 	(__gg__func_exception_file): Likewise.
+ 	(__gg__set_exception_code): Likewise.
+ 	(__gg__is_float_infinite): Likewise.
+ 	(__gg__float32_from_128): Likewise.
+ 	(__gg__float32_from_64): Likewise.
+ 	(__gg__float64_from_128): Likewise.
+ 	(__gg__copy_as_big_endian): Likewise.
+ 	(__gg__get_figconst_data): Likewise.
+ 	(find_in_dirs): Likewise.
+ 	(__gg__function_handle_from_cobpath): Likewise.
+ 	(__gg__just_mangle_name): Likewise.
+ 	(__gg__function_handle_from_literal): Likewise.
+ 	(__gg__function_handle_from_name): Likewise.
+ 	(__gg__mirror_range): Likewise.
+ 	(__gg__deallocate): Likewise.
+ 	(__gg__allocate): Likewise.
+ 	(__gg__module_name): Likewise.
+ 	(__gg__set_env_name): Likewise.
+ 	(__gg__set_env_value): Likewise.
+ 	* libgcobol.h (__gg__mabort): Likewise.
+ 	(massert): Likewise.
+ 	(PTRCAST): Likewise.
+ 	(__gg__float128_from_location): Likewise.
+ 	(__gg__set_exception_file): Likewise.
+ 	(__gg__binary_value_from_qualified_field): Likewise.
+ 	(__gg__float128_from_qualified_field): Likewise.
+ 	* valconv.cc (__gg__realloc_if_necessary): Likewise.
+ 	(__gg__alphabet_create): Likewise.
+ 	(__gg__string_to_numeric_edited): Likewise.
+ 	(__gg__string_to_alpha_edited): Likewise.
+ 	* valconv.h: Likewise.
+ 
+ 2025-06-01  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119524
+ 	* libgcobol.cc (__gg__fprintf_stderr): New function.
+ 
  2025-05-20  Robert Dubner  <rdubner@symas.com>
  	    James K. Lowden  <jklowden@cobolworx.com>
  
diff -Nrcpad gcc-16-20250601/libgcobol/charmaps.cc gcc-16-20250608/libgcobol/charmaps.cc
*** gcc-16-20250601/libgcobol/charmaps.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/charmaps.cc	Sun Jun  8 22:32:41 2025
*************** __gg__raw_to_ascii(char **dest, size_t *
*** 435,441 ****
  
      size_t code_point;
      // Pull the next code_point from the UTF-8 stream
!     long unicode_point = extract_next_code_point((const unsigned char *)in,
                                                   length,
                                                   position );
  
--- 435,441 ----
  
      size_t code_point;
      // Pull the next code_point from the UTF-8 stream
!     long unicode_point = extract_next_code_point(reinterpret_cast<const unsigned char *>(in),
                                                   length,
                                                   position );
  
*************** __gg__raw_to_ebcdic(char **dest, size_t
*** 497,503 ****
            }
  
          // Pull the next code_point from the UTF-8 stream
!         long unicode_point = extract_next_code_point(   (const unsigned char *)in,
                                                                  length,
                                                                  position );
          // Check for that unicode code point in the subset of characters we
--- 497,503 ----
            }
  
          // Pull the next code_point from the UTF-8 stream
!         long unicode_point = extract_next_code_point(   reinterpret_cast<const unsigned char *>(in),
                                                                  length,
                                                                  position );
          // Check for that unicode code point in the subset of characters we
*************** char *__gg__ebcdic_to_console(char **des
*** 722,728 ****
                                const size_t length)
      {
      static size_t ebcdic_size = MINIMUM_ALLOCATION_SIZE;
!     static char *ebcdic = (char *)malloc(ebcdic_size);
      __gg__realloc_if_necessary(&ebcdic, &ebcdic_size, length);
  
      memcpy(ebcdic, str, length);
--- 722,729 ----
                                const size_t length)
      {
      static size_t ebcdic_size = MINIMUM_ALLOCATION_SIZE;
!     static char *ebcdic = static_cast<char *>(malloc(ebcdic_size));
!     if(!ebcdic)abort();
      __gg__realloc_if_necessary(&ebcdic, &ebcdic_size, length);
  
      memcpy(ebcdic, str, length);
*************** void __gg__console_to_ascii(char * const
*** 757,763 ****
          size_t code_point;
          // Pull the next code_point from the UTF-8 stream
          long unicode_point
!             = extract_next_code_point(    (const unsigned char *)str,
                                                  length,
                                                  position );
          if( unicode_point == -1 )
--- 758,764 ----
          size_t code_point;
          // Pull the next code_point from the UTF-8 stream
          long unicode_point
!             = extract_next_code_point(    reinterpret_cast<const unsigned char *>(str),
                                                  length,
                                                  position );
          if( unicode_point == -1 )
*************** __gg__console_to_ebcdic(char * const str
*** 797,803 ****
          size_t code_point;
          // Pull the next code_point from the UTF-8 stream
          long unicode_point
!             = extract_next_code_point(    (const unsigned char *)str,
                                                  length,
                                                  position );
          if( unicode_point == -1 )
--- 798,804 ----
          size_t code_point;
          // Pull the next code_point from the UTF-8 stream
          long unicode_point
!             = extract_next_code_point(    reinterpret_cast<const unsigned char *>(str),
                                                  length,
                                                  position );
          if( unicode_point == -1 )
diff -Nrcpad gcc-16-20250601/libgcobol/common-defs.h gcc-16-20250608/libgcobol/common-defs.h
*** gcc-16-20250601/libgcobol/common-defs.h	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/common-defs.h	Sun Jun  8 22:32:41 2025
*************** enum cbl_file_mode_t {
*** 237,243 ****
    file_mode_output_e = 'w',
    file_mode_extend_e = 'a',
    file_mode_io_e     = '+',
!   file_mode_any_e, 
  };
  
  enum cbl_round_t {
--- 237,243 ----
    file_mode_output_e = 'w',
    file_mode_extend_e = 'a',
    file_mode_io_e     = '+',
!   file_mode_any_e,
  };
  
  enum cbl_round_t {
*************** enum bitop_t {
*** 288,302 ****
  };
  
  enum file_stmt_t {
!   file_stmt_delete_e, 
!   file_stmt_merge_e, 
!   file_stmt_read_e, 
!   file_stmt_rewrite_e, 
!   file_stmt_sort_e, 
!   file_stmt_start_e, 
!   file_stmt_write_e, 
  };
!   
  enum file_close_how_t {
    file_close_no_how_e     = 0x00,
    file_close_removal_e    = 0x01,
--- 288,302 ----
  };
  
  enum file_stmt_t {
!   file_stmt_delete_e,
!   file_stmt_merge_e,
!   file_stmt_read_e,
!   file_stmt_rewrite_e,
!   file_stmt_sort_e,
!   file_stmt_start_e,
!   file_stmt_write_e,
  };
! 
  enum file_close_how_t {
    file_close_no_how_e     = 0x00,
    file_close_removal_e    = 0x01,
*************** ec_cmp( ec_type_t raised, ec_type_t ec )
*** 412,425 ****
  {
    if( raised == ec ) return true;
  
!   // If both low bytes are nonzero, we had to match exactly, above. 
    if( (~EC_ALL_E & static_cast<uint32_t>(raised))
        &&
        (~EC_ALL_E & static_cast<uint32_t>(ec)) ) {
      return false;
    }
  
!   // Level 1 and 2 have low byte of zero. 
    // If one low byte is zero, see if they're the same kind.
    return 0xFF < ( static_cast<uint32_t>(raised)
  		  &
--- 412,425 ----
  {
    if( raised == ec ) return true;
  
!   // If both low bytes are nonzero, we had to match exactly, above.
    if( (~EC_ALL_E & static_cast<uint32_t>(raised))
        &&
        (~EC_ALL_E & static_cast<uint32_t>(ec)) ) {
      return false;
    }
  
!   // Level 1 and 2 have low byte of zero.
    // If one low byte is zero, see if they're the same kind.
    return 0xFF < ( static_cast<uint32_t>(raised)
  		  &
*************** struct cbl_declarative_t {
*** 464,479 ****
    uint32_t nfile, files[files_max];
    cbl_file_mode_t mode;
  
!   cbl_declarative_t( cbl_file_mode_t mode = file_mode_none_e )
!     : section(0), global(false)
      , type(ec_none_e)
      , nfile(0)
      , mode(mode)
    {
      std::fill(files, files + COUNT_OF(files), 0);
    }
!   cbl_declarative_t( ec_type_t type )
!     : section(0), global(false)
      , type(type)
      , nfile(0)
      , mode(file_mode_none_e)
--- 464,481 ----
    uint32_t nfile, files[files_max];
    cbl_file_mode_t mode;
  
!   explicit cbl_declarative_t( cbl_file_mode_t mode = file_mode_none_e )
!     : section(0)
!     , global(false)
      , type(ec_none_e)
      , nfile(0)
      , mode(mode)
    {
      std::fill(files, files + COUNT_OF(files), 0);
    }
!   explicit cbl_declarative_t( ec_type_t type )
!     : section(0)
!     , global(false)
      , type(type)
      , nfile(0)
      , mode(file_mode_none_e)
*************** struct cbl_declarative_t {
*** 508,514 ****
        std::copy( that.files, that.files + nfile, this->files );
      }
    }
!   constexpr cbl_declarative_t& operator=(const cbl_declarative_t&) = default;
  
    std::vector<uint64_t> encode() const;
  
--- 510,516 ----
        std::copy( that.files, that.files + nfile, this->files );
      }
    }
!   cbl_declarative_t& operator=(const cbl_declarative_t&) = default;
  
    std::vector<uint64_t> encode() const;
  
*************** struct cbl_declarative_t {
*** 533,541 ****
      return section < that.section;
    }
  
!   // TRUE if there are no files to match, or the provided file is in the list.
!   bool match_file( size_t file ) const {
!     static const auto pend = files + nfile;
  
      return nfile == 0 || pend != std::find(files, files + nfile, file);
    }
--- 535,543 ----
      return section < that.section;
    }
  
!     // TRUE if there are no files to match, or the provided file is in the list.
!     bool match_file( size_t file ) const {
!     static const uint32_t * pend = files + nfile;
  
      return nfile == 0 || pend != std::find(files, files + nfile, file);
    }
*************** class cbl_enabled_exceptions_t : protect
*** 564,570 ****
  
   public:
    cbl_enabled_exceptions_t() {}
!   cbl_enabled_exceptions_t( size_t nec, const cbl_enabled_exception_t *ecs ) 
      : std::set<cbl_enabled_exception_t>(ecs, ecs + nec)
    {}
    void turn_on_off( bool enabled, bool location, ec_type_t type,
--- 566,572 ----
  
   public:
    cbl_enabled_exceptions_t() {}
!   cbl_enabled_exceptions_t( size_t nec, const cbl_enabled_exception_t *ecs )
      : std::set<cbl_enabled_exception_t>(ecs, ecs + nec)
    {}
    void turn_on_off( bool enabled, bool location, ec_type_t type,
diff -Nrcpad gcc-16-20250601/libgcobol/config.h.in gcc-16-20250608/libgcobol/config.h.in
*** gcc-16-20250601/libgcobol/config.h.in	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/config.h.in	Sun Jun  8 22:32:41 2025
***************
*** 3,8 ****
--- 3,11 ----
  /* Define to 1 if the target assembler supports thread-local storage. */
  #undef HAVE_CC_TLS
  
+ /* Define to 1 if you have the `clock_gettime' function. */
+ #undef HAVE_CLOCK_GETTIME
+ 
  /* Define to 1 if you have the <complex.h> header file. */
  #undef HAVE_COMPLEX_H
  
diff -Nrcpad gcc-16-20250601/libgcobol/configure gcc-16-20250608/libgcobol/configure
*** gcc-16-20250601/libgcobol/configure	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/configure	Sun Jun  8 22:32:41 2025
*************** if test "$ac_res" != no; then :
*** 17275,17280 ****
--- 17275,17333 ----
  fi
  
  
+ # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner
+ # At least for glibc, clock_gettime is in librt.  But don't pull that
+ # in if it still doesn't give us the function we want.
+ ac_cv_func_clock_gettime=no
+ if test $ac_cv_func_clock_gettime = no; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
+ $as_echo_n "checking for clock_gettime in -lrt... " >&6; }
+ if ${ac_cv_lib_rt_clock_gettime+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lrt  $LIBS"
+ if test x$gcc_no_link = xyes; then
+   as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char clock_gettime ();
+ int
+ main ()
+ {
+ return clock_gettime ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_cxx_try_link "$LINENO"; then :
+   ac_cv_lib_rt_clock_gettime=yes
+ else
+   ac_cv_lib_rt_clock_gettime=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5
+ $as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
+ if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :
+   LIBS="-lrt $LIBS"
+ 
+ $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+ 
+ fi
+ 
+ fi
+ 
  have_iec_60559_libc_support=no
  if test "x$ac_cv_func_strtof128$ac_cv_func_strfromf128" = xyesyes \
     && test "x$libgcobol_have_sinf128$libgcobol_have_cacosf128" = xyesyes; then
diff -Nrcpad gcc-16-20250601/libgcobol/configure.ac gcc-16-20250608/libgcobol/configure.ac
*** gcc-16-20250601/libgcobol/configure.ac	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/configure.ac	Sun Jun  8 22:32:41 2025
*************** AC_SEARCH_LIBS([sinf128], [c m], libgcob
*** 232,237 ****
--- 232,248 ----
  libgcobol_have_cacosf128=no
  AC_SEARCH_LIBS([cacosf128], [c m], libgcobol_have_cacosf128=yes)
  
+ # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner
+ # At least for glibc, clock_gettime is in librt.  But don't pull that
+ # in if it still doesn't give us the function we want.
+ ac_cv_func_clock_gettime=no
+ if test $ac_cv_func_clock_gettime = no; then
+   AC_CHECK_LIB(rt, clock_gettime,
+     [LIBS="-lrt $LIBS"
+      AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
+ 	       [Define to 1 if you have the `clock_gettime' function.])])
+ fi
+ 
  have_iec_60559_libc_support=no
  if test "x$ac_cv_func_strtof128$ac_cv_func_strfromf128" = xyesyes \
     && test "x$libgcobol_have_sinf128$libgcobol_have_cacosf128" = xyesyes; then
diff -Nrcpad gcc-16-20250601/libgcobol/gfileio.cc gcc-16-20250608/libgcobol/gfileio.cc
*** gcc-16-20250601/libgcobol/gfileio.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/gfileio.cc	Sun Jun  8 22:32:41 2025
*************** handle_errno(cblc_file_t *file, const ch
*** 191,201 ****
  
  static
  char *
! get_filename( cblc_file_t *file,
                int is_quoted)
    {
    static size_t fname_size = MINIMUM_ALLOCATION_SIZE;
!   static char *fname = (char *)malloc(MINIMUM_ALLOCATION_SIZE);
    fname = internal_to_console(&fname,
                                &fname_size,
                                file->filename,
--- 191,202 ----
  
  static
  char *
! get_filename( const cblc_file_t *file,
                int is_quoted)
    {
    static size_t fname_size = MINIMUM_ALLOCATION_SIZE;
!   static char *fname = static_cast<char *>(malloc(MINIMUM_ALLOCATION_SIZE));
!   massert(fname);
    fname = internal_to_console(&fname,
                                &fname_size,
                                file->filename,
*************** get_filename( cblc_file_t *file,
*** 205,218 ****
      {
      // We have been given something that might be the name of an
      // environment variable that contains the filename:
!     char *p_from_environment = getenv(fname);
      if( p_from_environment )
        {
        if( strlen(p_from_environment)+1 > fname_size )
          {
          fname_size = strlen(p_from_environment)+1;
          free(fname);
!         fname = (char *)malloc(fname_size);
          }
        strcpy(fname, p_from_environment);
        }
--- 206,220 ----
      {
      // We have been given something that might be the name of an
      // environment variable that contains the filename:
!     const char *p_from_environment = getenv(fname);
      if( p_from_environment )
        {
        if( strlen(p_from_environment)+1 > fname_size )
          {
          fname_size = strlen(p_from_environment)+1;
          free(fname);
!         fname = static_cast<char *>(malloc(fname_size));
!         massert(fname);
          }
        strcpy(fname, p_from_environment);
        }
*************** __gg__set_user_status(cblc_field_t *usta
*** 272,278 ****
    }
  
  static long
! max_value(cblc_field_t *key)
    {
    long retval;
    if( key->digits )
--- 274,280 ----
    }
  
  static long
! max_value(const cblc_field_t *key)
    {
    long retval;
    if( key->digits )
*************** relative_file_delete_varying(cblc_file_t
*** 537,543 ****
  
    size_t payload_length;
  
!   unsigned char *stash = (unsigned char *)malloc(file->default_record->capacity);
    memcpy(stash, file->default_record->data, file->default_record->capacity);
    long starting_pos = ftell(file->file_pointer);
  
--- 539,546 ----
  
    size_t payload_length;
  
!   unsigned char *stash = static_cast<unsigned char *>(malloc(file->default_record->capacity));
!   massert(stash);
    memcpy(stash, file->default_record->data, file->default_record->capacity);
    long starting_pos = ftell(file->file_pointer);
  
*************** relative_file_delete(cblc_file_t *file,
*** 654,660 ****
  
    char record_marker;
  
!   unsigned char *stash = (unsigned char *)malloc(file->default_record->capacity);
    memcpy(stash, file->default_record->data, file->default_record->capacity);
  
    long starting_pos = ftell(file->file_pointer);
--- 657,664 ----
  
    char record_marker;
  
!   unsigned char *stash = static_cast<unsigned char *>(malloc(file->default_record->capacity));
!   massert(stash);
    memcpy(stash, file->default_record->data, file->default_record->capacity);
  
    long starting_pos = ftell(file->file_pointer);
*************** read_an_indexed_record( cblc_file_t *fil
*** 829,835 ****
      goto done;
      }
  
!   record_length  = ach[0]<<8;
    record_length += ach[1];
    if(ach[2] != 0)
      {
--- 833,839 ----
      goto done;
      }
  
!   record_length  = static_cast<long>(ach[0])<<8;
    record_length += ach[1];
    if(ach[2] != 0)
      {
*************** position_state_preserve(cblc_file_t *fil
*** 906,912 ****
    }
  
  static void
! position_state_restore(cblc_file_t *file, position_state_t &state)
    {
    file->recent_key = state.recent_key;
    fseek(file->file_pointer, state.starting_position, SEEK_SET);
--- 910,916 ----
    }
  
  static void
! position_state_restore(cblc_file_t *file, const position_state_t &state)
    {
    file->recent_key = state.recent_key;
    fseek(file->file_pointer, state.starting_position, SEEK_SET);
*************** indexed_file_delete(cblc_file_t *file, b
*** 973,979 ****
    // and the record area itself are unchanged by the delete operation.
  
    // So, we save the current record area:
!   stash = (unsigned char *)malloc(file->record_area_max);
    memcpy(stash, file->default_record->data, file->record_area_max);
  
    // And the position state of our file
--- 977,984 ----
    // and the record area itself are unchanged by the delete operation.
  
    // So, we save the current record area:
!   stash = static_cast<unsigned char *>(malloc(file->record_area_max));
!   massert(stash);
    memcpy(stash, file->default_record->data, file->record_area_max);
  
    // And the position state of our file
*************** indexed_file_delete(cblc_file_t *file, b
*** 1051,1058 ****
        // we find one, we check to see if the keys match.  If the keys don't
        // match, then we have to remove the existing one from the index.
  
-       std::vector<unsigned char> the_key
-                                      = file_indexed_make_key(file, key_number);
        bool deleting = true;
        while(deleting)
          {
--- 1056,1061 ----
*************** indexed_file_delete(cblc_file_t *file, b
*** 1069,1074 ****
--- 1072,1078 ----
              deleting = true;
              break;
              }
+ 
            it++;
            }
          }
*************** indexed_file_start( cblc_file_t *file,
*** 1234,1240 ****
            file->io_status = FsErrno;
            }
          }
!       else if( result < 0 )
          {
          // The index is less than the key.
          if(    relop == lt_op
--- 1238,1244 ----
            file->io_status = FsErrno;
            }
          }
!       else // if( result < 0 )
          {
          // The index is less than the key.
          if(    relop == lt_op
*************** sequential_file_rewrite( cblc_file_t *fi
*** 1656,1662 ****
  
    if( file->record_area_min != file->record_area_max )
      {
!     unsigned char preamble[4] =
        {
        (unsigned char)(bytes_to_write>>8),
        (unsigned char)(bytes_to_write),
--- 1660,1666 ----
  
    if( file->record_area_min != file->record_area_max )
      {
!     const unsigned char preamble[4] =
        {
        (unsigned char)(bytes_to_write>>8),
        (unsigned char)(bytes_to_write),
*************** done:
*** 1688,1694 ****
    fseek(file->file_pointer, starting_position, SEEK_SET);
    handle_ferror(file, __func__, "fseek() error");
    file->prior_op = file_op_rewrite;
-   file->prior_op = file_op_rewrite;
    establish_status(file, starting_position);
    }
  
--- 1692,1697 ----
*************** relative_file_rewrite_varying( cblc_file
*** 1804,1810 ****
  done:
    // Per the standard, return the file location pointer back to whence it came:
    fseek(file->file_pointer, starting_position, SEEK_SET);
!   handle_ferror(file, __func__, "fseek() error"); 
    file->prior_op = file_op_rewrite;
    establish_status(file, starting_position);
    }
--- 1807,1813 ----
  done:
    // Per the standard, return the file location pointer back to whence it came:
    fseek(file->file_pointer, starting_position, SEEK_SET);
!   handle_ferror(file, __func__, "fseek() error");
    file->prior_op = file_op_rewrite;
    establish_status(file, starting_position);
    }
*************** relative_file_rewrite( cblc_file_t *file
*** 1905,1911 ****
  done:
    // Per the standard, return the file location pointer back to whence it came:
    fseek(file->file_pointer, starting_position, SEEK_SET);
!   handle_ferror(file, __func__, "fseek() error"); 
    file->prior_op = file_op_rewrite;
    establish_status(file, starting_position);
    }
--- 1908,1914 ----
  done:
    // Per the standard, return the file location pointer back to whence it came:
    fseek(file->file_pointer, starting_position, SEEK_SET);
!   handle_ferror(file, __func__, "fseek() error");
    file->prior_op = file_op_rewrite;
    establish_status(file, starting_position);
    }
*************** __io__file_rewrite(cblc_file_t *file, si
*** 2210,2216 ****
  
  static void
  relative_file_write_varying(cblc_file_t    *file,
!                             unsigned char  *location,
                              size_t          length,
                              bool            is_random)
    {
--- 2213,2219 ----
  
  static void
  relative_file_write_varying(cblc_file_t    *file,
!                       const unsigned char  *location,
                              size_t          length,
                              bool            is_random)
    {
*************** done:
*** 2359,2365 ****
  
  static void
  relative_file_write(cblc_file_t    *file,
!                     unsigned char  *location,
                      size_t          length,
                      bool            is_random)
    {
--- 2362,2368 ----
  
  static void
  relative_file_write(cblc_file_t    *file,
!               const unsigned char  *location,
                      size_t          length,
                      bool            is_random)
    {
*************** relative_file_write(cblc_file_t    *file
*** 2374,2380 ****
    file->io_status = FsErrno;
  
    long necessary_file_size;
!   unsigned char achPostamble[] = {internal_cr, internal_newline};
  
    relative_file_parameters rfp;
  
--- 2377,2383 ----
    file->io_status = FsErrno;
  
    long necessary_file_size;
!   const unsigned char achPostamble[] = {internal_cr, internal_newline};
  
    relative_file_parameters rfp;
  
*************** done:
*** 2493,2499 ****
  
  static void
  sequential_file_write(cblc_file_t    *file,
!                       unsigned char  *location,
                        size_t          length,
                        int             after,
                        int             lines)
--- 2496,2502 ----
  
  static void
  sequential_file_write(cblc_file_t    *file,
!                 const unsigned char  *location,
                        size_t          length,
                        int             after,
                        int             lines)
*************** sequential_file_write(cblc_file_t    *fi
*** 2609,2615 ****
            {
            // Because of the min/max mismatch, we require a preamble:
            // The first two bytes are the big-endian character count
!           unsigned char preamble[4] =
              {
              (unsigned char)(characters_to_write>>8),
              (unsigned char)(characters_to_write),
--- 2612,2618 ----
            {
            // Because of the min/max mismatch, we require a preamble:
            // The first two bytes are the big-endian character count
!           const unsigned char preamble[4] =
              {
              (unsigned char)(characters_to_write>>8),
              (unsigned char)(characters_to_write),
*************** done:
*** 2681,2687 ****
  
  static void
  indexed_file_write( cblc_file_t    *file,
!                     unsigned char  *location,
                      size_t          length,
                      bool            is_random)
    {
--- 2684,2690 ----
  
  static void
  indexed_file_write( cblc_file_t    *file,
!               const unsigned char  *location,
                      size_t          length,
                      bool            is_random)
    {
*************** indexed_file_write( cblc_file_t    *file
*** 2752,2764 ****
      // We are allowed to do the write, but only if there will be no key
      // violations as a result:
  
!     for(size_t  key_number=1;
!                 key_number<file->supplemental->indexes.size();
!                 key_number++)
        {
!       if( file->supplemental->uniques[key_number] )
          {
!         long record_position = file_indexed_first_position(file, key_number);
          if( record_position != -1 )
            {
            // No can do, because we already have a unique key with that value
--- 2755,2767 ----
      // We are allowed to do the write, but only if there will be no key
      // violations as a result:
  
!     for(size_t  keynum=1;
!                 keynum<file->supplemental->indexes.size();
!                 keynum++)
        {
!       if( file->supplemental->uniques[keynum] )
          {
!         long record_position = file_indexed_first_position(file, keynum);
          if( record_position != -1 )
            {
            // No can do, because we already have a unique key with that value
*************** done:
*** 2849,2855 ****
  
  static void
  __io__file_write(   cblc_file_t    *file,
!                     unsigned char  *location,
                      size_t          length,
                      int             after,
                      int             lines,
--- 2852,2858 ----
  
  static void
  __io__file_write(   cblc_file_t    *file,
!               const unsigned char  *location,
                      size_t          length,
                      int             after,
                      int             lines,
*************** line_sequential_file_read(  cblc_file_t
*** 2983,2989 ****
        {
        break;
        }
!     if( ch == file->delimiter || ch == EOF )
        {
        hit_eof = true;
        clearerr(file->file_pointer);
--- 2986,2992 ----
        {
        break;
        }
!     if( ch == EOF )
        {
        hit_eof = true;
        clearerr(file->file_pointer);
*************** indexed_file_read(  cblc_file_t  *file,
*** 3647,3652 ****
--- 3650,3656 ----
        goto done;
        }
  
+     // cppcheck-suppress derefInvalidIteratorRedundantCheck
      fpos = file_index->current_iterator->second;
  
      if( file_index->current_iterator == file_index->key_to_position.end() )
*************** indexed_file_read(  cblc_file_t  *file,
*** 3728,3733 ****
--- 3732,3738 ----
  
      // We are ready to proceed
  
+     // cppcheck-suppress derefInvalidIteratorRedundantCheck
      fpos = file_index->current_iterator->second;
      if( file_index->current_iterator == file_index->key_to_position.end() )
        {
*************** file_indexed_open(cblc_file_t *file)
*** 3922,3928 ****
      {
      if( file->key_numbers[index] != current_key_number )
        {
-       file_index_t file_index;
        file->supplemental->indexes.push_back(file_index);
        current_key_number = file->key_numbers[index];
        file->supplemental->uniques.push_back(file->uniques[index]);
--- 3927,3932 ----
*************** file_indexed_open(cblc_file_t *file)
*** 3952,3958 ****
          // We need to open the file for reading, and build the
          // maps for each index:
          static size_t fname_size = MINIMUM_ALLOCATION_SIZE;
!         static char *fname = (char *)malloc(fname_size);
  
          internal_to_console(&fname,
                              &fname_size,
--- 3956,3963 ----
          // We need to open the file for reading, and build the
          // maps for each index:
          static size_t fname_size = MINIMUM_ALLOCATION_SIZE;
!         static char *fname = static_cast<char *>(malloc(fname_size));
!         massert(fname);
  
          internal_to_console(&fname,
                              &fname_size,
*************** file_indexed_open(cblc_file_t *file)
*** 3969,3975 ****
            }
  
          // Stash the existing record area:
!         stash = (unsigned char *)malloc(file->record_area_max);
          memcpy( stash,
                  file->default_record->data,
                  file->record_area_max);
--- 3974,3981 ----
            }
  
          // Stash the existing record area:
!         stash = static_cast<unsigned char *>(malloc(file->record_area_max));
!         massert(stash);
          memcpy( stash,
                  file->default_record->data,
                  file->record_area_max);
*************** __gg__file_reopen(cblc_file_t *file, int
*** 4111,4117 ****
        }
  
      static size_t fname_size = MINIMUM_ALLOCATION_SIZE;
!     static char *fname = (char *)malloc(fname_size);
      internal_to_console(&fname,
                          &fname_size,
                          file->filename,
--- 4117,4124 ----
        }
  
      static size_t fname_size = MINIMUM_ALLOCATION_SIZE;
!     static char *fname = static_cast<char *>(malloc(fname_size));
!     massert(fname)
      internal_to_console(&fname,
                          &fname_size,
                          file->filename,
*************** public:
*** 4465,4471 ****
    typedef void (read_t)( cblc_file_t *file,
                           int where );
    typedef void (write_t)( cblc_file_t *file,
!                           unsigned char  *location,
                            size_t length,
                            int after,
                            int lines,
--- 4472,4478 ----
    typedef void (read_t)( cblc_file_t *file,
                           int where );
    typedef void (write_t)( cblc_file_t *file,
!                           const unsigned char  *location,
                            size_t length,
                            int after,
                            int lines,
diff -Nrcpad gcc-16-20250601/libgcobol/gmath.cc gcc-16-20250608/libgcobol/gmath.cc
*** gcc-16-20250601/libgcobol/gmath.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/gmath.cc	Sun Jun  8 22:32:41 2025
*************** conditional_stash(  cblc_field_t *destin
*** 88,94 ****
      // This is slightly more complex, because in the event of a
      // SIZE ERROR. we need to leave the original value untouched
  
!     unsigned char *stash = (unsigned char *)malloc(destination_s);
      memcpy(stash, destination->data+destination_o, destination_s);
  
      __gg__int128_to_qualified_field(destination,
--- 88,95 ----
      // This is slightly more complex, because in the event of a
      // SIZE ERROR. we need to leave the original value untouched
  
!     unsigned char *stash = static_cast<unsigned char *>(malloc(destination_s));
!     massert(stash);
      memcpy(stash, destination->data+destination_o, destination_s);
  
      __gg__int128_to_qualified_field(destination,
*************** conditional_stash(  cblc_field_t *destin
*** 132,138 ****
      {
      // This is slightly more complex, because in the event of a
      // SIZE ERROR. we need to leave the original value untouched
!     unsigned char *stash = (unsigned char *)malloc(destination_s);
      memcpy(stash, destination->data+destination_o, destination_s);
      __gg__float128_to_qualified_field(destination,
                                        destination_o,
--- 133,141 ----
      {
      // This is slightly more complex, because in the event of a
      // SIZE ERROR. we need to leave the original value untouched
!     assert(destination_s);
!     unsigned char *stash = static_cast<unsigned char *>(malloc(destination_s));
!     massert(stash);
      memcpy(stash, destination->data+destination_o, destination_s);
      __gg__float128_to_qualified_field(destination,
                                        destination_o,
*************** __gg__pow(  cbl_arith_format_t,
*** 256,275 ****
              size_t,
              size_t,
              size_t,
!             cbl_round_t  *rounded,
              int           on_error_flag,
              int          *compute_error
              )
    {
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
!   cblc_field_t **B  = __gg__treeplet_2f;
!   size_t       *B_o = __gg__treeplet_2o;
!   size_t       *B_s = __gg__treeplet_2s;
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    GCOB_FP128 avalue = __gg__float128_from_qualified_field(A[0], A_o[0], A_s[0]);
    GCOB_FP128 bvalue = __gg__float128_from_qualified_field(B[0], B_o[0], B_s[0]);
--- 259,278 ----
              size_t,
              size_t,
              size_t,
!       const cbl_round_t  *rounded,
              int           on_error_flag,
              int          *compute_error
              )
    {
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
!         cblc_field_t **B  = __gg__treeplet_2f;
!   const size_t       *B_o = __gg__treeplet_2o;
!   const size_t       *B_s = __gg__treeplet_2s;
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    GCOB_FP128 avalue = __gg__float128_from_qualified_field(A[0], A_o[0], A_s[0]);
    GCOB_FP128 bvalue = __gg__float128_from_qualified_field(B[0], B_o[0], B_s[0]);
*************** multiply_int256_by_int64(int256 &product
*** 368,375 ****
    for(int i=0; i<4; i++)
      {
      uint128 temp = (uint128)product.i64[i] * multiplier;
!     product.i64[i] = *(uint64_t *)(&temp);
!     overflows[i+1] = *(uint64_t *)((uint8_t *)(&temp) + 8);
      }
  
    for(int i=1; i<4; i++)
--- 371,378 ----
    for(int i=0; i<4; i++)
      {
      uint128 temp = (uint128)product.i64[i] * multiplier;
!     product.i64[i] = *PTRCAST(uint64_t, &temp);
!     overflows[i+1] = *PTRCAST(uint64_t, PTRCAST(uint8_t, &temp) + 8);
      }
  
    for(int i=1; i<4; i++)
*************** multiply_int256_by_int64(int256 &product
*** 386,392 ****
    }
  
  static int
! add_int256_to_int256(int256 &sum, const int256 addend)
    {
    uint128 overflows[3] = {};
    for(int i=0; i<2; i++)
--- 389,395 ----
    }
  
  static int
! add_int256_to_int256(int256 &sum, const int256 &addend)
    {
    uint128 overflows[3] = {};
    for(int i=0; i<2; i++)
*************** divide_int256_by_int64(int256 &val, uint
*** 451,460 ****
    for( int i=3; i>=0; i-- )
      {
      // Left shift temp 64 bits:
!     *(uint64_t *)(((uint8_t *)&temp)+8) = *(uint64_t *)(((uint8_t *)&temp)+0);
  
      // Put the high digit of val into the bottom of temp
!     *(uint64_t *)(((uint8_t *)&temp)+0) = val.i64[i];
  
      // Divide that combinary by divisor to get the new digits
      val.i64[i] = temp / divisor;
--- 454,464 ----
    for( int i=3; i>=0; i-- )
      {
      // Left shift temp 64 bits:
!     *PTRCAST(uint64_t, ((PTRCAST(uint8_t, &temp))+8))
!                           = *PTRCAST(uint64_t, ((PTRCAST(uint8_t, &temp))+0));
  
      // Put the high digit of val into the bottom of temp
!     *PTRCAST(uint64_t, ((PTRCAST(uint8_t, &temp))+0)) = val.i64[i];
  
      // Divide that combinary by divisor to get the new digits
      val.i64[i] = temp / divisor;
*************** squeeze_int256(int256 &val, int &rdigits
*** 469,475 ****
    {
    int overflow = 0;
    // It has been decreed that at this juncture the result must fit into
!   // MAX_FIXED_POINT_DIGITS.  If the result does not, we have an OVERFLOW error.
  
    int is_negative = val.data[31] & 0x80;
    if( is_negative )
--- 473,480 ----
    {
    int overflow = 0;
    // It has been decreed that at this juncture the result must fit into
!   // MAX_FIXED_POINT_DIGITS.  If the result does not, we have an OVERFLOW
!   // error.
  
    int is_negative = val.data[31] & 0x80;
    if( is_negative )
*************** squeeze_int256(int256 &val, int &rdigits
*** 477,485 ****
      negate_int256(val);
      }
  
!   // As long as there are some decimal places left, we hold our nose and right-
!   // shift a too-large value rightward by decimal digits.  In other words, we
!   // truncate the fractional part to make room for the integer part:
    while(rdigits > 0 && val.i128[1] )
      {
      divide_int256_by_int64(val, 10UL);
--- 482,490 ----
      negate_int256(val);
      }
  
!   // As long as there are some decimal places left, we hold our nose and
!   // right-shift a too-large value rightward by decimal digits.  In other
!   // words, we truncate the fractional part to make room for the integer part:
    while(rdigits > 0 && val.i128[1] )
      {
      divide_int256_by_int64(val, 10UL);
*************** squeeze_int256(int256 &val, int &rdigits
*** 504,510 ****
      // These sixteen bytes comprise the binary value of 10^38
      static const uint8_t C1038[] = {0x00, 0x00, 0x00, 0x00, 0x40, 0x22, 0x8a, 0x09,
                                  0x7a, 0xc4, 0x86, 0x5a, 0xa8, 0x4c, 0x3b, 0x4b};
!     static const uint128 biggest = *(uint128 *)C1038;
  
      // If we still have some rdigits to throw away, we can keep shrinking
      // the value:
--- 509,515 ----
      // These sixteen bytes comprise the binary value of 10^38
      static const uint8_t C1038[] = {0x00, 0x00, 0x00, 0x00, 0x40, 0x22, 0x8a, 0x09,
                                  0x7a, 0xc4, 0x86, 0x5a, 0xa8, 0x4c, 0x3b, 0x4b};
!     static const uint128 biggest = *reinterpret_cast<const uint128 *>(C1038);
  
      // If we still have some rdigits to throw away, we can keep shrinking
      // the value:
*************** squeeze_int256(int256 &val, int &rdigits
*** 540,546 ****
  static void
  get_int256_from_qualified_field(int256 &var,
                                  int &rdigits,
!                                 cblc_field_t *field,
                                  size_t field_o,
                                  size_t field_s)
    {
--- 545,551 ----
  static void
  get_int256_from_qualified_field(int256 &var,
                                  int &rdigits,
!                           const cblc_field_t *field,
                                  size_t field_o,
                                  size_t field_s)
    {
*************** __gg__add_fixed_phase1( cbl_arith_format
*** 571,577 ****
                          size_t nA,
                          size_t ,
                          size_t ,
!                         cbl_round_t  *,
                          int           ,
                          int          *compute_error
                          )
--- 576,582 ----
                          size_t nA,
                          size_t ,
                          size_t ,
!                   const cbl_round_t  *,
                          int           ,
                          int          *compute_error
                          )
*************** __gg__add_fixed_phase1( cbl_arith_format
*** 580,588 ****
  
    // The result goes into the temporary phase1_result.
  
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
  
    // Let us prime the pump with the first value of A[]
    get_int256_from_qualified_field(phase1_result, phase1_rdigits, A[0], A_o[0], A_s[0]);
--- 585,593 ----
  
    // The result goes into the temporary phase1_result.
  
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
  
    // Let us prime the pump with the first value of A[]
    get_int256_from_qualified_field(phase1_result, phase1_rdigits, A[0], A_o[0], A_s[0]);
*************** __gg__add_fixed_phase1( cbl_arith_format
*** 600,606 ****
      if( phase1_rdigits > temp_rdigits )
        {
        scale_int256_by_digits(temp, phase1_rdigits - temp_rdigits);
-       temp_rdigits = phase1_rdigits;
        }
      else if( phase1_rdigits < temp_rdigits )
        {
--- 605,610 ----
*************** __gg__addf1_fixed_phase2( cbl_arith_form
*** 628,641 ****
                            size_t ,
                            size_t ,
                            size_t ,
!                           cbl_round_t  *rounded,
                            int           on_error_flag,
                            int          *compute_error
                            )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    // This is the assignment phase of an ADD Format 1
  
--- 632,645 ----
                            size_t ,
                            size_t ,
                            size_t ,
!                     const cbl_round_t  *rounded,
                            int           on_error_flag,
                            int          *compute_error
                            )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    // This is the assignment phase of an ADD Format 1
  
*************** __gg__addf1_fixed_phase2( cbl_arith_form
*** 680,686 ****
      if( rdigits_a > rdigits_b )
        {
        scale_int256_by_digits(value_b, rdigits_a - rdigits_b);
-       rdigits_b = rdigits_a;
        }
      else if( rdigits_a < rdigits_b )
        {
--- 684,689 ----
*************** __gg__fixed_phase2_assign_to_c( cbl_arit
*** 713,728 ****
                                  size_t ,
                                  size_t ,
                                  size_t ,
!                                 cbl_round_t  *rounded,
                                  int           on_error_flag,
                                  int          *compute_error
                                  )
    {
    // This is the assignment phase of an ADD Format 2
  
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
  
    // We take phase1_result and put it into C
--- 716,731 ----
                                  size_t ,
                                  size_t ,
                                  size_t ,
!                           const cbl_round_t  *rounded,
                                  int           on_error_flag,
                                  int          *compute_error
                                  )
    {
    // This is the assignment phase of an ADD Format 2
  
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
  
    // We take phase1_result and put it into C
*************** __gg__add_float_phase1( cbl_arith_format
*** 771,777 ****
                          size_t nA,
                          size_t ,
                          size_t ,
!                         cbl_round_t  *,
                          int           ,
                          int          *compute_error
                          )
--- 774,780 ----
                          size_t nA,
                          size_t ,
                          size_t ,
!                   const cbl_round_t  *,
                          int           ,
                          int          *compute_error
                          )
*************** __gg__add_float_phase1( cbl_arith_format
*** 780,788 ****
  
    // The result goes into the temporary phase1_result_ffloat.
  
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
  
    // Let us prime the pump with the first value of A[]
    phase1_result_float = __gg__float128_from_qualified_field(A[0], A_o[0], A_s[0]);
--- 783,791 ----
  
    // The result goes into the temporary phase1_result_ffloat.
  
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
  
    // Let us prime the pump with the first value of A[]
    phase1_result_float = __gg__float128_from_qualified_field(A[0], A_o[0], A_s[0]);
*************** __gg__addf1_float_phase2( cbl_arith_form
*** 804,817 ****
                            size_t ,
                            size_t ,
                            size_t ,
!                           cbl_round_t  *rounded,
                            int           on_error_flag,
                            int          *compute_error
                            )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    // This is the assignment phase of an ADD Format 2
--- 807,820 ----
                            size_t ,
                            size_t ,
                            size_t ,
!                     const cbl_round_t  *rounded,
                            int           on_error_flag,
                            int          *compute_error
                            )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    // This is the assignment phase of an ADD Format 2
*************** __gg__float_phase2_assign_to_c( cbl_arit
*** 831,844 ****
                            size_t ,
                            size_t ,
                            size_t ,
!                           cbl_round_t  *rounded,
                            int           on_error_flag,
                            int          *compute_error
                            )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    // This is the assignment phase of an ADD Format 2
--- 834,847 ----
                            size_t ,
                            size_t ,
                            size_t ,
!                     const cbl_round_t  *rounded,
                            int           on_error_flag,
                            int          *compute_error
                            )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    // This is the assignment phase of an ADD Format 2
*************** __gg__addf3(cbl_arith_format_t ,
*** 856,862 ****
              size_t nA,
              size_t ,
              size_t ,
!             cbl_round_t  *rounded,
              int           on_error_flag,
              int          *compute_error
              )
--- 859,865 ----
              size_t nA,
              size_t ,
              size_t ,
!       const cbl_round_t  *rounded,
              int           on_error_flag,
              int          *compute_error
              )
*************** __gg__addf3(cbl_arith_format_t ,
*** 864,876 ****
    // This is an ADD Format 3.  Each A[i] gets accumulated into each C[i].  When
    // both are fixed, we do fixed arithmetic.  When either is a FldFloat, we
    // do floating-point arithmetic.
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
  
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
  
--- 867,879 ----
    // This is an ADD Format 3.  Each A[i] gets accumulated into each C[i].  When
    // both are fixed, we do fixed arithmetic.  When either is a FldFloat, we
    // do floating-point arithmetic.
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
  
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
  
*************** __gg__addf3(cbl_arith_format_t ,
*** 906,912 ****
        if( rdigits_a > rdigits_b )
          {
          scale_int256_by_digits(value_b, rdigits_a - rdigits_b);
-         rdigits_b = rdigits_a;
          }
        else if( rdigits_a < rdigits_b )
          {
--- 909,914 ----
*************** __gg__subtractf1_fixed_phase2(cbl_arith_
*** 940,953 ****
                                size_t ,
                                size_t ,
                                size_t ,
!                               cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    // This is the assignment phase of an ADD Format 1
  
--- 942,955 ----
                                size_t ,
                                size_t ,
                                size_t ,
!                         const cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    // This is the assignment phase of an ADD Format 1
  
*************** __gg__subtractf1_fixed_phase2(cbl_arith_
*** 997,1003 ****
      else if( rdigits_a < rdigits_b )
        {
        scale_int256_by_digits(value_a, rdigits_b - rdigits_a);
-       rdigits_a = rdigits_b;
        }
  
      // The two numbers have the same number of rdigits.  It's now safe to add
--- 999,1004 ----
*************** __gg__subtractf2_fixed_phase1(cbl_arith_
*** 1025,1040 ****
                                size_t nA,
                                size_t ,
                                size_t ,
!                               cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
    // This is the calculation phase of a fixed-point SUBTRACT Format 2
  
!   cblc_field_t **B  = __gg__treeplet_2f;
!   size_t       *B_o = __gg__treeplet_2o;
!   size_t       *B_s = __gg__treeplet_2s;
  
    // Add up all the A values
    __gg__add_fixed_phase1( not_expected_e ,
--- 1026,1041 ----
                                size_t nA,
                                size_t ,
                                size_t ,
!                         const cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
    // This is the calculation phase of a fixed-point SUBTRACT Format 2
  
!         cblc_field_t **B  = __gg__treeplet_2f;
!   const size_t       *B_o = __gg__treeplet_2o;
!   const size_t       *B_s = __gg__treeplet_2s;
  
    // Add up all the A values
    __gg__add_fixed_phase1( not_expected_e ,
*************** __gg__subtractf2_fixed_phase1(cbl_arith_
*** 1065,1071 ****
    else if( rdigits_a < rdigits_b )
      {
      scale_int256_by_digits(value_a, rdigits_b - rdigits_a);
-     rdigits_a = rdigits_b;
      }
  
    // The two numbers have the same number of rdigits.  It's now safe to add
--- 1066,1071 ----
*************** __gg__subtractf2_fixed_phase1(cbl_arith_
*** 1081,1101 ****
    phase1_rdigits = rdigits_b;
    }
  
- 
  extern "C"
  void
  __gg__subtractf1_float_phase2(cbl_arith_format_t ,
                                size_t ,
                                size_t ,
                                size_t ,
!                               cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    // This is the assignment phase of an ADD Format 2
--- 1081,1100 ----
    phase1_rdigits = rdigits_b;
    }
  
  extern "C"
  void
  __gg__subtractf1_float_phase2(cbl_arith_format_t ,
                                size_t ,
                                size_t ,
                                size_t ,
!                         const cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    // This is the assignment phase of an ADD Format 2
*************** __gg__subtractf1_float_phase2(cbl_arith_
*** 1109,1131 ****
                                       *rounded++);
    }
  
- 
  extern "C"
  void
  __gg__subtractf2_float_phase1(cbl_arith_format_t ,
                                size_t nA,
                                size_t ,
                                size_t ,
!                               cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
    // This is the calculation phase of a fixed-point SUBTRACT Format 2
  
!   cblc_field_t **B  = __gg__treeplet_2f;
!   size_t       *B_o = __gg__treeplet_2o;
!   size_t       *B_s = __gg__treeplet_2s;
  
    // Add up all the A values
    __gg__add_float_phase1( not_expected_e ,
--- 1108,1129 ----
                                       *rounded++);
    }
  
  extern "C"
  void
  __gg__subtractf2_float_phase1(cbl_arith_format_t ,
                                size_t nA,
                                size_t ,
                                size_t ,
!                         const cbl_round_t  *rounded,
                                int           on_error_flag,
                                int          *compute_error
                                )
    {
    // This is the calculation phase of a fixed-point SUBTRACT Format 2
  
!         cblc_field_t **B  = __gg__treeplet_2f;
!   const size_t       *B_o = __gg__treeplet_2o;
!   const size_t       *B_s = __gg__treeplet_2s;
  
    // Add up all the A values
    __gg__add_float_phase1( not_expected_e ,
*************** __gg__subtractf3( cbl_arith_format_t ,
*** 1151,1157 ****
                    size_t nA,
                    size_t ,
                    size_t ,
!                   cbl_round_t  *rounded,
                    int           on_error_flag,
                    int          *compute_error
                    )
--- 1149,1155 ----
                    size_t nA,
                    size_t ,
                    size_t ,
!             const cbl_round_t  *rounded,
                    int           on_error_flag,
                    int          *compute_error
                    )
*************** __gg__subtractf3( cbl_arith_format_t ,
*** 1159,1170 ****
    // This is an ADD Format 3.  Each A[i] gets accumulated into each C[i].  Each
    // SUBTRACTION is treated separately.
  
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
  
--- 1157,1168 ----
    // This is an ADD Format 3.  Each A[i] gets accumulated into each C[i].  Each
    // SUBTRACTION is treated separately.
  
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
  
*************** __gg__subtractf3( cbl_arith_format_t ,
*** 1205,1211 ****
        else if( rdigits_a < rdigits_b )
          {
          scale_int256_by_digits(value_a, rdigits_b - rdigits_a);
-         rdigits_a = rdigits_b;
          }
  
        // The two numbers have the same number of rdigits.  It's now safe to add
--- 1203,1208 ----
*************** __gg__multiplyf1_phase1(cbl_arith_format
*** 1240,1255 ****
                          size_t ,
                          size_t ,
                          size_t ,
!                         cbl_round_t  *,
                          int           ,
                          int          *)
    {
    // We are getting just the one value, which we are converting to the necessary
    // intermediate form
  
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
  
    if( A[0]->type == FldFloat )
      {
--- 1237,1252 ----
                          size_t ,
                          size_t ,
                          size_t ,
!                   const cbl_round_t  *,
                          int           ,
                          int          *)
    {
    // We are getting just the one value, which we are converting to the necessary
    // intermediate form
  
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
  
    if( A[0]->type == FldFloat )
      {
*************** void multiply_int128_by_int128(int256 &A
*** 1274,1280 ****
                                 __int128 ab_value,
                                 __int128 cd_value)
    {
!   int is_negative = ( ((uint8_t *)(&ab_value))[15]^((uint8_t *)(&cd_value))[15]) & 0x80;
    if( ab_value < 0 )
      {
      ab_value = -ab_value;
--- 1271,1278 ----
                                 __int128 ab_value,
                                 __int128 cd_value)
    {
!   int is_negative = ( (PTRCAST(uint8_t, (&ab_value)))[15]
!                                 ^(PTRCAST(uint8_t, (&cd_value)))[15]) & 0x80;
    if( ab_value < 0 )
      {
      ab_value = -ab_value;
*************** void multiply_int128_by_int128(int256 &A
*** 1290,1299 ****
    uint128 BD;
  
    // Let's extract the digits.
!   uint64_t a = *(uint64_t *)((unsigned char *)(&ab_value)+8);
!   uint64_t b = *(uint64_t *)((unsigned char *)(&ab_value)+0);
!   uint64_t c = *(uint64_t *)((unsigned char *)(&cd_value)+8);
!   uint64_t d = *(uint64_t *)((unsigned char *)(&cd_value)+0);
  
    // multiply (a0 + b) * (c0 + d)
  
--- 1288,1297 ----
    uint128 BD;
  
    // Let's extract the digits.
!   uint64_t a = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&ab_value))+8));
!   uint64_t b = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&ab_value))+0));
!   uint64_t c = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&cd_value))+8));
!   uint64_t d = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&cd_value))+0));
  
    // multiply (a0 + b) * (c0 + d)
  
*************** __gg__multiplyf1_phase2(cbl_arith_format
*** 1334,1347 ****
                          size_t ,
                          size_t ,
                          size_t ,
!                         cbl_round_t  *rounded,
                          int           on_error_flag,
                          int          *compute_error
                          )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
--- 1332,1345 ----
                          size_t ,
                          size_t ,
                          size_t ,
!                   const cbl_round_t  *rounded,
                          int           on_error_flag,
                          int          *compute_error
                          )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
*************** __gg__multiplyf1_phase2(cbl_arith_format
*** 1415,1428 ****
    if( error_this_time && on_size_error)
      {
      *compute_error |= error_this_time;
-     rounded++;
      }
    else
      {
      *compute_error |= conditional_stash(C[0], C_o[0], C_s[0],
                                          on_size_error,
                                          a_value,
!                                         *rounded++);
      }
    done:
    return;
--- 1413,1425 ----
    if( error_this_time && on_size_error)
      {
      *compute_error |= error_this_time;
      }
    else
      {
      *compute_error |= conditional_stash(C[0], C_o[0], C_s[0],
                                          on_size_error,
                                          a_value,
!                                         *rounded);
      }
    done:
    return;
*************** __gg__multiplyf2( cbl_arith_format_t ,
*** 1434,1453 ****
                    size_t ,
                    size_t ,
                    size_t nC,
!                   cbl_round_t  *rounded,
                    int           on_error_flag,
                    int          *compute_error
                    )
    {
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
!   cblc_field_t **B  = __gg__treeplet_2f;
!   size_t       *B_o = __gg__treeplet_2o;
!   size_t       *B_s = __gg__treeplet_2s;
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
  
--- 1431,1450 ----
                    size_t ,
                    size_t ,
                    size_t nC,
!             const cbl_round_t  *rounded,
                    int           on_error_flag,
                    int          *compute_error
                    )
    {
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
!         cblc_field_t **B  = __gg__treeplet_2f;
!   const size_t       *B_o = __gg__treeplet_2o;
!   const size_t       *B_s = __gg__treeplet_2s;
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
  
*************** shift_in_place128(uint8_t *buf, int size
*** 1517,1523 ****
    uint128 temp;
    uint128 overflow = 0;
  
!   uint128 *as128 = (uint128 *)buf;
  
    for( size_t i=0; i<places; i++ )
      {
--- 1514,1520 ----
    uint128 temp;
    uint128 overflow = 0;
  
!   uint128 *as128 = PTRCAST(uint128, buf);
  
    for( size_t i=0; i<places; i++ )
      {
*************** divide_int128_by_int128(int256   &quotie
*** 1598,1604 ****
      }
  
    // We are going to be referencing the 64-bit pices of the 128-bit divisor:
!   uint64_t *divisor64 = (uint64_t *)&divisor;
  
    quotient.i128[1] = 0;
    quotient.i128[0] = dividend;
--- 1595,1601 ----
      }
  
    // We are going to be referencing the 64-bit pices of the 128-bit divisor:
!   uint64_t *divisor64 = PTRCAST(uint64_t, &divisor);
  
    quotient.i128[1] = 0;
    quotient.i128[0] = dividend;
*************** divide_int128_by_int128(int256   &quotie
*** 1667,1678 ****
  
      int bits_to_shift = 0;
      int i=15;
!     while( ((uint8_t *)(&divisor))[i] == 0 )
        {
        i -= 1;
        bits_to_shift += 8;
!       }
!     uint8_t tail = ((uint8_t *)(&divisor))[i];
      while( !(tail & 0x80) )
        {
        bits_to_shift += 1;
--- 1664,1674 ----
  
      int bits_to_shift = 0;
      int i=15;
!     while( (PTRCAST(uint8_t, &divisor))[i] == 0 )
        {
        i -= 1;
        bits_to_shift += 8;
!       }    uint8_t tail = (  PTRCAST(uint8_t, &divisor)  )[i];
      while( !(tail & 0x80) )
        {
        bits_to_shift += 1;
*************** divide_int128_by_int128(int256   &quotie
*** 1681,1689 ****
  
      // Shift both the numerator and the divisor that number of bits
  
!     shift_in_place128((uint8_t *)&numerator, sizeof(numerator), bits_to_shift);
!     shift_in_place128((uint8_t *)&divisor,   sizeof(divisor),   bits_to_shift);
! 
  
      // We are now ready to do the guess-multiply-subtract loop.  We know that
      // the result will have two places, so we know we are going to go through
--- 1677,1684 ----
  
      // Shift both the numerator and the divisor that number of bits
  
!     shift_in_place128( PTRCAST(uint8_t, &numerator), sizeof(numerator), bits_to_shift);
!     shift_in_place128( PTRCAST(uint8_t, &divisor),   sizeof(divisor),   bits_to_shift);
  
      // We are now ready to do the guess-multiply-subtract loop.  We know that
      // the result will have two places, so we know we are going to go through
*************** divide_int128_by_int128(int256   &quotie
*** 1700,1706 ****
        // We develop our guess for a quotient by dividing the top two places of
        // the numerator area by C
        uint128 temp;
!       uint64_t *temp64 = (uint64_t *)&temp;
  
        temp64[1] = numerator.i64[q_place+2];
        temp64[0] = numerator.i64[q_place+1];
--- 1695,1701 ----
        // We develop our guess for a quotient by dividing the top two places of
        // the numerator area by C
        uint128 temp;
!       uint64_t *temp64 = PTRCAST(uint64_t, &temp);
  
        temp64[1] = numerator.i64[q_place+2];
        temp64[0] = numerator.i64[q_place+1];
*************** divide_int128_by_int128(int256   &quotie
*** 1714,1723 ****
        subber[2] = 0;
  
        // Start with the bottom 128 bits of the "subber"
!       *(uint128 *)subber = (uint128) divisor64[0] * quotient.i64[q_place];
  
        // Get the next 128 bits of subber
!       temp             = (uint128) divisor64[1] * quotient.i64[q_place];
  
        // Add the top of the first product to the bottom of the second:
        subber[1] += temp64[0];
--- 1709,1718 ----
        subber[2] = 0;
  
        // Start with the bottom 128 bits of the "subber"
!       *PTRCAST(uint128, subber) = (uint128) divisor64[0] * quotient.i64[q_place];
  
        // Get the next 128 bits of subber
!       temp = (uint128) divisor64[1] * quotient.i64[q_place];
  
        // Add the top of the first product to the bottom of the second:
        subber[1] += temp64[0];
*************** divide_int128_by_int128(int256   &quotie
*** 1738,1757 ****
        // the numerator:
  
        uint64_t borrow = 0;
!       for(size_t i=0; i<3; i++)
          {
!         if( numerator.i64[q_place + i] == 0 && borrow )
            {
            // We are subtracting from zero and we have a borrow.  Leave the
            // borrow on and just do the subtraction:
!           numerator.i64[q_place + i] -= subber[i];
            }
          else
            {
!           uint64_t stash = numerator.i64[q_place + i];
!           numerator.i64[q_place + i] -= borrow;
!           numerator.i64[q_place + i] -= subber[i];
!           if( numerator.i64[q_place + i] > stash )
              {
              // After subtracting, the value got bigger, which means we have
              // to borrow from the next value to the left
--- 1733,1752 ----
        // the numerator:
  
        uint64_t borrow = 0;
!       for(size_t j=0; j<3; j++)
          {
!         if( numerator.i64[q_place + j] == 0 && borrow )
            {
            // We are subtracting from zero and we have a borrow.  Leave the
            // borrow on and just do the subtraction:
!           numerator.i64[q_place + j] -= subber[j];
            }
          else
            {
!           uint64_t stash = numerator.i64[q_place + j];
!           numerator.i64[q_place + j] -= borrow;
!           numerator.i64[q_place + j] -= subber[j];
!           if( numerator.i64[q_place + j] > stash )
              {
              // After subtracting, the value got bigger, which means we have
              // to borrow from the next value to the left
*************** divide_int128_by_int128(int256   &quotie
*** 1775,1795 ****
          {
          // We need to add subber back into the numerator area
          uint64_t carry = 0;
!         for(size_t i=0; i<3; i++)
            {
!           if( numerator.i64[q_place + i] == 0xFFFFFFFFFFFFFFFFUL && carry )
              {
              // We are at the top and have a carry.  Just leave the carry on
              // and do the addition:
!             numerator.i64[q_place + i] += subber[i];
              }
            else
              {
              // We are not at the top.
!             uint64_t stash = numerator.i64[q_place + i];
!             numerator.i64[q_place + i] += carry;
!             numerator.i64[q_place + i] += subber[i];
!             if( numerator.i64[q_place + i] < stash )
                {
                // The addition caused the result to get smaller, meaning that
                // we wrapped around:
--- 1770,1790 ----
          {
          // We need to add subber back into the numerator area
          uint64_t carry = 0;
!         for(size_t ii=0; ii<3; ii++)
            {
!           if( numerator.i64[q_place + ii] == 0xFFFFFFFFFFFFFFFFUL && carry )
              {
              // We are at the top and have a carry.  Just leave the carry on
              // and do the addition:
!             numerator.i64[q_place + ii] += subber[ii];
              }
            else
              {
              // We are not at the top.
!             uint64_t stash = numerator.i64[q_place + ii];
!             numerator.i64[q_place + ii] += carry;
!             numerator.i64[q_place + ii] += subber[ii];
!             if( numerator.i64[q_place + ii] < stash )
                {
                // The addition caused the result to get smaller, meaning that
                // we wrapped around:
*************** __gg__dividef1_phase2(cbl_arith_format_t
*** 1817,1830 ****
                        size_t ,
                        size_t ,
                        size_t ,
!                       cbl_round_t  *rounded,
                        int           on_error_flag,
                        int          *compute_error
                        )
    {
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
--- 1812,1825 ----
                        size_t ,
                        size_t ,
                        size_t ,
!                 const cbl_round_t  *rounded,
                        int           on_error_flag,
                        int          *compute_error
                        )
    {
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
*************** __gg__dividef1_phase2(cbl_arith_format_t
*** 1904,1917 ****
  
    if( error_this_time && on_size_error)
      {
-     rounded++;
      }
    else
      {
      *compute_error |= conditional_stash(C[0], C_o[0], C_s[0],
                                          on_size_error,
                                          b_value,
!                                         *rounded++);
      }
    done:
    return;
--- 1899,1911 ----
  
    if( error_this_time && on_size_error)
      {
      }
    else
      {
      *compute_error |= conditional_stash(C[0], C_o[0], C_s[0],
                                          on_size_error,
                                          b_value,
!                                         *rounded);
      }
    done:
    return;
*************** __gg__dividef23(cbl_arith_format_t ,
*** 1923,1942 ****
                  size_t ,
                  size_t ,
                  size_t nC,
!                 cbl_round_t  *rounded,
                  int           on_error_flag,
                  int          *compute_error
                  )
    {
!   cblc_field_t **A  = __gg__treeplet_1f;
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
!   cblc_field_t **B  = __gg__treeplet_2f;
!   size_t       *B_o = __gg__treeplet_2o;
!   size_t       *B_s = __gg__treeplet_2s;
!   cblc_field_t **C  = __gg__treeplet_3f;
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
--- 1917,1936 ----
                  size_t ,
                  size_t ,
                  size_t nC,
!           const cbl_round_t  *rounded,
                  int           on_error_flag,
                  int          *compute_error
                  )
    {
!         cblc_field_t **A  = __gg__treeplet_1f;
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
!         cblc_field_t **B  = __gg__treeplet_2f;
!   const size_t       *B_o = __gg__treeplet_2o;
!   const size_t       *B_s = __gg__treeplet_2s;
!         cblc_field_t **C  = __gg__treeplet_3f;
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
*************** __gg__dividef45(cbl_arith_format_t ,
*** 2009,2023 ****
                  int          *compute_error
                  )
    {
!   cblc_field_t **A  = __gg__treeplet_1f;  // Numerator
!   size_t       *A_o = __gg__treeplet_1o;
!   size_t       *A_s = __gg__treeplet_1s;
!   cblc_field_t **B  = __gg__treeplet_2f;  // Denominator
!   size_t       *B_o = __gg__treeplet_2o;
!   size_t       *B_s = __gg__treeplet_2s;
!   cblc_field_t **C  = __gg__treeplet_3f;  // Has remainder, then quotient
!   size_t       *C_o = __gg__treeplet_3o;
!   size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
--- 2003,2017 ----
                  int          *compute_error
                  )
    {
!         cblc_field_t **A  = __gg__treeplet_1f;  // Numerator
!   const size_t       *A_o = __gg__treeplet_1o;
!   const size_t       *A_s = __gg__treeplet_1s;
!         cblc_field_t **B  = __gg__treeplet_2f;  // Denominator
!   const size_t       *B_o = __gg__treeplet_2o;
!   const size_t       *B_s = __gg__treeplet_2s;
!         cblc_field_t **C  = __gg__treeplet_3f;  // Has remainder, then quotient
!   const size_t       *C_o = __gg__treeplet_3o;
!   const size_t       *C_s = __gg__treeplet_3s;
  
    bool on_size_error = !!(on_error_flag & ON_SIZE_ERROR);
    int error_this_time=0;
diff -Nrcpad gcc-16-20250601/libgcobol/intrinsic.cc gcc-16-20250608/libgcobol/intrinsic.cc
*** gcc-16-20250601/libgcobol/intrinsic.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/intrinsic.cc	Sun Jun  8 22:32:41 2025
*************** JD_to_DOW(double JD)
*** 167,173 ****
  
  static
  char *
! timespec_to_string(char *retval, struct timespec &tp)
    {
    /*
    Returns a 21-character string:
--- 167,173 ----
  
  static
  char *
! timespec_to_string(char *retval, struct cbl_timespec &tp)
    {
    /*
    Returns a 21-character string:
*************** struct input_state
*** 248,256 ****
      nsubscript = N;
      if(N)
        {
!       subscript_alls   = (bool *)  malloc(nsubscript);
!       subscripts       = (size_t *)malloc(nsubscript);
!       subscript_limits = (size_t *)malloc(nsubscript);
        }
      done = false;
      }
--- 248,259 ----
      nsubscript = N;
      if(N)
        {
!       subscript_alls   = static_cast<bool   *>(malloc(nsubscript));
!       subscripts       = static_cast<size_t *>(malloc(nsubscript));
!       subscript_limits = static_cast<size_t *>(malloc(nsubscript));
!       massert(subscript_alls);
!       massert(subscripts);
!       massert(subscript_limits);
        }
      done = false;
      }
*************** year_to_yyyy(int arg1, int arg2, int arg
*** 378,384 ****
  
  static
  double
! get_value_as_double_from_qualified_field( cblc_field_t *input,
                                            size_t input_o,
                                            size_t input_s)
    {
--- 381,387 ----
  
  static
  double
! get_value_as_double_from_qualified_field( const cblc_field_t *input,
                                            size_t input_o,
                                            size_t input_s)
    {
*************** get_value_as_double_from_qualified_field
*** 411,419 ****
  static
  GCOB_FP128 kahan_summation(size_t ncount,
                            cblc_field_t **source,
!                           size_t        *source_o,
!                           size_t        *source_s,
!                           int           *flags,
                            size_t        *k_count)
    {
    // We use compensated addition.  Look up Kahan summation.
--- 414,422 ----
  static
  GCOB_FP128 kahan_summation(size_t ncount,
                            cblc_field_t **source,
!                     const size_t        *source_o,
!                     const size_t        *source_s,
!                     const int           *flags,
                            size_t        *k_count)
    {
    // We use compensated addition.  Look up Kahan summation.
*************** static
*** 458,466 ****
  GCOB_FP128
  variance( size_t         ncount,
            cblc_field_t **source,
!           size_t        *source_o,
!           size_t        *source_s,
!           int           *flags)
    {
    // In order to avoid catastrophic cancellation, we are going to use an
    // algorithm that is a bit wasteful of time, but is described as particularly
--- 461,469 ----
  GCOB_FP128
  variance( size_t         ncount,
            cblc_field_t **source,
!     const size_t        *source_o,
!     const size_t        *source_s,
!     const int           *flags)
    {
    // In order to avoid catastrophic cancellation, we are going to use an
    // algorithm that is a bit wasteful of time, but is described as particularly
*************** get_all_time( char *stime,
*** 547,560 ****
    //         days of January show up in the final week of the prior year.
  
    sprintf(stime,
!           "%4.4u%2.2u%2.2uT"  // YYYYMMSS
!           "%2.2u%2.2u%2.2u"   // hhmmss
!           ".%9.9u"            // .sssssssss
!           "%c%2.2u%2.2u"      // +hhmm
!           "W%2.2u"            // Www
!           "%1u"               // DOW [1-7], 1 for Monday
!           "%3.3u"             // DDD day of year, 001 - 365,366
!           "%4.4u",            // ZZZZ Year for YYYY-Www-D
            ctm.YYYY,
            ctm.MM,
            ctm.DD,
--- 550,563 ----
    //         days of January show up in the final week of the prior year.
  
    sprintf(stime,
!           "%4.4d%2.2d%2.2dT"  // YYYYMMSS
!           "%2.2d%2.2d%2.2d"   // hhmmss
!           ".%9.9d"            // .sssssssss
!           "%c%2.2d%2.2d"      // +hhmm
!           "W%2.2d"            // Www
!           "%1d"               // DOW [1-7], 1 for Monday
!           "%3.3d"             // DDD day of year, 001 - 365,366
!           "%4.4d",            // ZZZZ Year for YYYY-Www-D
            ctm.YYYY,
            ctm.MM,
            ctm.DD,
*************** populate_ctm_from_JD(struct cobol_tm &ct
*** 687,693 ****
  static
  void
  populate_ctm_from_date( struct cobol_tm &ctm,
!                         cblc_field_t *pdate,
                          size_t pdate_offset,
                          size_t pdate_size)
    {
--- 690,696 ----
  static
  void
  populate_ctm_from_date( struct cobol_tm &ctm,
!                   const cblc_field_t *pdate,
                          size_t pdate_offset,
                          size_t pdate_size)
    {
*************** populate_ctm_from_double_time(struct cob
*** 721,730 ****
  static
  void
  populate_ctm_from_time( struct cobol_tm &ctm,
!                         cblc_field_t *ptime,
                          size_t ptime_o,
                          size_t ptime_s,
!                         cblc_field_t *poffset,
                          size_t poffset_o,
                          size_t poffset_s)
    {
--- 724,733 ----
  static
  void
  populate_ctm_from_time( struct cobol_tm &ctm,
!                    const cblc_field_t *ptime,
                          size_t ptime_o,
                          size_t ptime_s,
!                    const cblc_field_t *poffset,
                          size_t poffset_o,
                          size_t poffset_s)
    {
*************** convert_to_zulu(cobol_tm &ctm)
*** 791,798 ****
  
  static
  void
! ftime_replace(char *dest, char const * const dest_end,
!               char const *source, char const * const source_end,
                char const * const ftime)
    {
    // This routine is highly dependent on the source format being correct.
--- 794,803 ----
  
  static
  void
! ftime_replace(char *dest,
!               char const * const dest_end,
!               char const *       source,
!               char const * const source_end,
                char const * const ftime)
    {
    // This routine is highly dependent on the source format being correct.
*************** ftime_replace(char *dest, char const * c
*** 956,962 ****
  extern "C"
  void
  __gg__abs(cblc_field_t *dest,
!           cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
--- 961,967 ----
  extern "C"
  void
  __gg__abs(cblc_field_t *dest,
!     const cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
*************** __gg__abs(cblc_field_t *dest,
*** 978,984 ****
  extern "C"
  void
  __gg__acos( cblc_field_t *dest,
!             cblc_field_t *source,
              size_t        source_offset,
              size_t        source_size)
    {
--- 983,989 ----
  extern "C"
  void
  __gg__acos( cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t        source_offset,
              size_t        source_size)
    {
*************** __gg__acos( cblc_field_t *dest,
*** 1005,1014 ****
  extern "C"
  void
  __gg__annuity(cblc_field_t *dest,
!               cblc_field_t *arg1,
                size_t arg1_offset,
                size_t arg1_size,
!               cblc_field_t *arg2,
                size_t arg2_offset,
                size_t arg2_size)
    {
--- 1010,1019 ----
  extern "C"
  void
  __gg__annuity(cblc_field_t *dest,
!         const cblc_field_t *arg1,
                size_t arg1_offset,
                size_t arg1_size,
!         const cblc_field_t *arg2,
                size_t arg2_offset,
                size_t arg2_size)
    {
*************** __gg__annuity(cblc_field_t *dest,
*** 1050,1056 ****
  extern "C"
  void
  __gg__asin( cblc_field_t *dest,
!             cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
--- 1055,1061 ----
  extern "C"
  void
  __gg__asin( cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
*************** __gg__asin( cblc_field_t *dest,
*** 1080,1086 ****
  extern "C"
  void
  __gg__atan( cblc_field_t *dest,
!             cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
--- 1085,1091 ----
  extern "C"
  void
  __gg__atan( cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
*************** __gg__atan( cblc_field_t *dest,
*** 1102,1108 ****
  extern "C"
  void
  __gg__byte_length(cblc_field_t *dest,
!                   cblc_field_t */*source*/,
                    size_t /*source_offset*/,
                    size_t source_size)
    {
--- 1107,1113 ----
  extern "C"
  void
  __gg__byte_length(cblc_field_t *dest,
!             const cblc_field_t */*source*/,
                    size_t /*source_offset*/,
                    size_t source_size)
    {
*************** __gg__byte_length(cblc_field_t *dest,
*** 1118,1124 ****
  extern "C"
  void
  __gg__char( cblc_field_t *dest,
!             cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
--- 1123,1129 ----
  extern "C"
  void
  __gg__char( cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
*************** __gg__char( cblc_field_t *dest,
*** 1143,1152 ****
  extern "C"
  void
  __gg__combined_datetime(cblc_field_t *dest,
!                         cblc_field_t *arg1,
                          size_t arg1_offset,
                          size_t arg1_size,
!                         cblc_field_t *arg2,
                          size_t arg2_offset,
                          size_t arg2_size)
    {
--- 1148,1157 ----
  extern "C"
  void
  __gg__combined_datetime(cblc_field_t *dest,
!                   const cblc_field_t *arg1,
                          size_t arg1_offset,
                          size_t arg1_size,
!                   const cblc_field_t *arg2,
                          size_t arg2_offset,
                          size_t arg2_size)
    {
*************** __gg__concat( cblc_field_t *dest,
*** 1192,1198 ****
  extern "C"
  void
  __gg__cos(cblc_field_t *dest,
!           cblc_field_t *source,
            size_t        source_offset,
            size_t        source_size)
    {
--- 1197,1203 ----
  extern "C"
  void
  __gg__cos(cblc_field_t *dest,
!      const cblc_field_t *source,
            size_t        source_offset,
            size_t        source_size)
    {
*************** void
*** 1213,1219 ****
  __gg__current_date(cblc_field_t *dest)
    {
    // FUNCTION CURRENT-DATE
!   struct timespec tp = {};
    __gg__clock_gettime(CLOCK_REALTIME, &tp); // time_t tv_sec; long tv_nsec
  
    char retval[DATE_STRING_BUFFER_SIZE];
--- 1218,1224 ----
  __gg__current_date(cblc_field_t *dest)
    {
    // FUNCTION CURRENT-DATE
!   struct cbl_timespec tp = {};
    __gg__clock_gettime(CLOCK_REALTIME, &tp); // time_t tv_sec; long tv_nsec
  
    char retval[DATE_STRING_BUFFER_SIZE];
*************** void
*** 1227,1233 ****
  __gg__seconds_past_midnight(cblc_field_t *dest)
    {
    // SECONDS-PAST-MIDNIGHT
!   struct timespec tp = {};
    struct tm tm;
    __int128 retval=0;
    
--- 1232,1238 ----
  __gg__seconds_past_midnight(cblc_field_t *dest)
    {
    // SECONDS-PAST-MIDNIGHT
!   struct cbl_timespec tp = {};
    struct tm tm;
    __int128 retval=0;
    
*************** __gg__seconds_past_midnight(cblc_field_t
*** 1251,1257 ****
  extern "C"
  void
  __gg__date_of_integer(cblc_field_t *dest,
!                       cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
--- 1256,1262 ----
  extern "C"
  void
  __gg__date_of_integer(cblc_field_t *dest,
!                 const cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
*************** __gg__date_of_integer(cblc_field_t *dest
*** 1277,1289 ****
  extern "C"
  void
  __gg__date_to_yyyymmdd( cblc_field_t *dest,
!                         cblc_field_t *par1,
                          size_t par1_o,
                          size_t par1_s,
!                         cblc_field_t *par2,
                          size_t par2_o,
                          size_t par2_s,
!                         cblc_field_t *par3,
                          size_t par3_o,
                          size_t par3_s)
    {
--- 1282,1294 ----
  extern "C"
  void
  __gg__date_to_yyyymmdd( cblc_field_t *dest,
!                   const cblc_field_t *par1,
                          size_t par1_o,
                          size_t par1_s,
!                   const cblc_field_t *par2,
                          size_t par2_o,
                          size_t par2_s,
!                   const cblc_field_t *par3,
                          size_t par3_o,
                          size_t par3_s)
    {
*************** __gg__date_to_yyyymmdd( cblc_field_t *de
*** 1308,1314 ****
  extern "C"
  void
  __gg__day_of_integer( cblc_field_t *dest,
!                       cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
--- 1313,1319 ----
  extern "C"
  void
  __gg__day_of_integer( cblc_field_t *dest,
!                 const cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
*************** __gg__day_of_integer( cblc_field_t *dest
*** 1337,1349 ****
  extern "C"
  void
  __gg__day_to_yyyyddd( cblc_field_t *dest,
!                       cblc_field_t *par1,
                        size_t par1_o,
                        size_t par1_s,
!                       cblc_field_t *par2,
                        size_t par2_o,
                        size_t par2_s,
!                       cblc_field_t *par3,
                        size_t par3_o,
                        size_t par3_s)
    {
--- 1342,1354 ----
  extern "C"
  void
  __gg__day_to_yyyyddd( cblc_field_t *dest,
!                 const cblc_field_t *par1,
                        size_t par1_o,
                        size_t par1_s,
!                 const cblc_field_t *par2,
                        size_t par2_o,
                        size_t par2_s,
!                 const cblc_field_t *par3,
                        size_t par3_o,
                        size_t par3_s)
    {
*************** __gg__e(cblc_field_t *dest)
*** 1382,1388 ****
  extern "C"
  void
  __gg__exp(cblc_field_t *dest,
!           cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
--- 1387,1393 ----
  extern "C"
  void
  __gg__exp(cblc_field_t *dest,
!     const cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
*************** __gg__exp(cblc_field_t *dest,
*** 1401,1407 ****
  extern "C"
  void
  __gg__exp10(cblc_field_t *dest,
!             cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
--- 1406,1412 ----
  extern "C"
  void
  __gg__exp10(cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
*************** __gg__exp10(cblc_field_t *dest,
*** 1420,1426 ****
  extern "C"
  void
  __gg__factorial(cblc_field_t *dest,
!                 cblc_field_t *source,
                  size_t source_offset,
                  size_t source_size)
    {
--- 1425,1431 ----
  extern "C"
  void
  __gg__factorial(cblc_field_t *dest,
!           const cblc_field_t *source,
                  size_t source_offset,
                  size_t source_size)
    {
*************** __gg__factorial(cblc_field_t *dest,
*** 1451,1474 ****
  extern "C"
  void
  __gg__formatted_current_date( cblc_field_t *dest, // Destination string
!                               cblc_field_t *input, // datetime format
                                size_t input_offset,
                                size_t input_size)
    {
    // FUNCTION CURRENT-DATE
  
    // Establish the destination, and set it to spaces
!   char *d    = (char *)dest->data;
!   char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = (char *)(input->data+input_offset);
!   char *format_end = format + input_size;
  
    bool is_zulu = false;
  
!   char *p = format;
    while( p < format_end )
      {
      int ch = *p++;
--- 1456,1479 ----
  extern "C"
  void
  __gg__formatted_current_date( cblc_field_t *dest, // Destination string
!                          const cblc_field_t *input, // datetime format
                                size_t input_offset,
                                size_t input_size)
    {
    // FUNCTION CURRENT-DATE
  
    // Establish the destination, and set it to spaces
!   char *d    = PTRCAST(char, dest->data);
!   const char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   const char *format     = PTRCAST(char, (input->data+input_offset));
!   const char *format_end = format + input_size;
  
    bool is_zulu = false;
  
!   const char *p = format;
    while( p < format_end )
      {
      int ch = *p++;
*************** __gg__formatted_current_date( cblc_field
*** 1479,1485 ****
        }
      }
  
!   struct timespec ts = {};
    __gg__clock_gettime(CLOCK_REALTIME, &ts);
  
    struct tm tm = {};
--- 1484,1490 ----
        }
      }
  
!   struct cbl_timespec ts = {};
    __gg__clock_gettime(CLOCK_REALTIME, &ts);
  
    struct tm tm = {};
*************** __gg__formatted_current_date( cblc_field
*** 1512,1534 ****
  extern "C"
  void
  __gg__formatted_date(cblc_field_t *dest, // Destination string
!                      cblc_field_t *arg1, // datetime format
                       size_t arg1_offset,
                       size_t arg1_size,
!                      cblc_field_t *arg2, // integer date
                       size_t arg2_offset,
                       size_t arg2_size)
    {
    // FUNCTION FORMATTED-DATE
  
    // Establish the destination, and set it to spaces
!   char *d    = (char *)dest->data;
!   char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = (char *)(arg1->data+arg1_offset);
!   char *format_end = format + arg1_size;
  
    struct cobol_tm ctm = {};
  
--- 1517,1539 ----
  extern "C"
  void
  __gg__formatted_date(cblc_field_t *dest, // Destination string
!                const cblc_field_t *arg1, // datetime format
                       size_t arg1_offset,
                       size_t arg1_size,
!                const cblc_field_t *arg2, // integer date
                       size_t arg2_offset,
                       size_t arg2_size)
    {
    // FUNCTION FORMATTED-DATE
  
    // Establish the destination, and set it to spaces
!   char *d    = PTRCAST(char, dest->data);
!   const char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = PTRCAST(char, (arg1->data+arg1_offset));
!   const char *format_end = format + arg1_size;
  
    struct cobol_tm ctm = {};
  
*************** __gg__formatted_date(cblc_field_t *dest,
*** 1550,1565 ****
  extern "C"
  void
  __gg__formatted_datetime( cblc_field_t *dest, // Destination string
!                           cblc_field_t *par1, // datetime format
                            size_t par1_o,
                            size_t par1_s,
!                           cblc_field_t *par2, // integer date
                            size_t par2_o,
                            size_t par2_s,
!                           cblc_field_t *par3, // numeric time
                            size_t par3_o,
                            size_t par3_s,
!                           cblc_field_t *par4, // optional offset in seconds
                            size_t par4_o,
                            size_t par4_s
                            )
--- 1555,1570 ----
  extern "C"
  void
  __gg__formatted_datetime( cblc_field_t *dest, // Destination string
!                     const cblc_field_t *par1, // datetime format
                            size_t par1_o,
                            size_t par1_s,
!                     const cblc_field_t *par2, // integer date
                            size_t par2_o,
                            size_t par2_s,
!                     const cblc_field_t *par3, // numeric time
                            size_t par3_o,
                            size_t par3_s,
!                     const cblc_field_t *par4, // optional offset in seconds
                            size_t par4_o,
                            size_t par4_s
                            )
*************** __gg__formatted_datetime( cblc_field_t *
*** 1567,1578 ****
    // FUNCTION FORMATTED-DATETIME
  
    // Establish the destination, and set it to spaces
!   char *d    = (char *)dest->data;
!   char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = (char *)(par1->data+par1_o);
    char *format_end = format + par1_s;
    trim_trailing_spaces(format, format_end);
    bool is_zulu = is_zulu_format(format, format_end);
--- 1572,1583 ----
    // FUNCTION FORMATTED-DATETIME
  
    // Establish the destination, and set it to spaces
!         char *d    = PTRCAST(char, (dest->data));
!   const char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = PTRCAST(char, (par1->data+par1_o));
    char *format_end = format + par1_s;
    trim_trailing_spaces(format, format_end);
    bool is_zulu = is_zulu_format(format, format_end);
*************** __gg__formatted_datetime( cblc_field_t *
*** 1605,1617 ****
  extern "C"
  void
  __gg__formatted_time( cblc_field_t *dest,// Destination string
!                       cblc_field_t *par1, // datetime format
                        size_t par1_o,
                        size_t par1_s,
!                       cblc_field_t *par2,// numeric time
                        size_t par2_o,
                        size_t par2_s,
!                       cblc_field_t *par4, // optional offset in seconds
                        size_t par4_o,
                        size_t par4_s)
  
--- 1610,1622 ----
  extern "C"
  void
  __gg__formatted_time( cblc_field_t *dest,// Destination string
!                 const cblc_field_t *par1, // datetime format
                        size_t par1_o,
                        size_t par1_s,
!                 const cblc_field_t *par2,// numeric time
                        size_t par2_o,
                        size_t par2_s,
!                 const cblc_field_t *par4, // optional offset in seconds
                        size_t par4_o,
                        size_t par4_s)
  
*************** __gg__formatted_time( cblc_field_t *dest
*** 1619,1630 ****
    // FUNCTION FORMATTED-TIME
  
    // Establish the destination, and set it to spaces
!   char *d    = (char *)dest->data;
!   char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = (char *)(par1->data+par1_o);
    char *format_end = format + par1_s;
    trim_trailing_spaces(format, format_end);
    bool is_zulu = is_zulu_format(format, format_end);
--- 1624,1635 ----
    // FUNCTION FORMATTED-TIME
  
    // Establish the destination, and set it to spaces
!   char *d          = PTRCAST(char, dest->data);
!   const char *dend = d + dest->capacity;
    memset(d, internal_space, dest->capacity);
  
    // Establish the formatting string:
!   char *format     = PTRCAST(char, (par1->data+par1_o));
    char *format_end = format + par1_s;
    trim_trailing_spaces(format, format_end);
    bool is_zulu = is_zulu_format(format, format_end);
*************** __gg__formatted_time( cblc_field_t *dest
*** 1659,1665 ****
  extern "C"
  void
  __gg__integer(cblc_field_t *dest,
!               cblc_field_t *source,
                size_t source_offset,
                size_t source_size)
    {
--- 1664,1670 ----
  extern "C"
  void
  __gg__integer(cblc_field_t *dest,
!         const cblc_field_t *source,
                size_t source_offset,
                size_t source_size)
    {
*************** __gg__integer(cblc_field_t *dest,
*** 1677,1683 ****
  extern "C"
  void
  __gg__integer_of_date(cblc_field_t *dest,
!                       cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
--- 1682,1688 ----
  extern "C"
  void
  __gg__integer_of_date(cblc_field_t *dest,
!                 const cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
*************** __gg__integer_of_date(cblc_field_t *dest
*** 1732,1738 ****
  extern "C"
  void
  __gg__integer_of_day( cblc_field_t *dest,
!                       cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
--- 1737,1743 ----
  extern "C"
  void
  __gg__integer_of_day( cblc_field_t *dest,
!                 const cblc_field_t *source,
                        size_t source_offset,
                        size_t source_size)
    {
*************** __gg__integer_of_day( cblc_field_t *dest
*** 1759,1765 ****
  extern "C"
  void
  __gg__integer_part( cblc_field_t *dest,
!                     cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size)
    {
--- 1764,1770 ----
  extern "C"
  void
  __gg__integer_part( cblc_field_t *dest,
!               const cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size)
    {
*************** __gg__integer_part( cblc_field_t *dest,
*** 1782,1788 ****
  extern "C"
  void
  __gg__fraction_part(cblc_field_t *dest,
!                     cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size)
    {
--- 1787,1793 ----
  extern "C"
  void
  __gg__fraction_part(cblc_field_t *dest,
!               const cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size)
    {
*************** __gg__fraction_part(cblc_field_t *dest,
*** 1811,1820 ****
  
  extern "C"
  void
! __gg__log( cblc_field_t *dest,
!                       cblc_field_t *source,
!                       size_t source_offset,
!                       size_t source_size)
    {
    // FUNCTION LOG
    GCOB_FP128 value = __gg__float128_from_qualified_field(source,
--- 1816,1825 ----
  
  extern "C"
  void
! __gg__log(cblc_field_t *dest,
!     const cblc_field_t *source,
!           size_t source_offset,
!           size_t source_size)
    {
    // FUNCTION LOG
    GCOB_FP128 value = __gg__float128_from_qualified_field(source,
*************** __gg__log( cblc_field_t *dest,
*** 1836,1845 ****
  
  extern "C"
  void
! __gg__log10( cblc_field_t *dest,
!                       cblc_field_t *source,
!                       size_t source_offset,
!                       size_t source_size)
    {
    // FUNCTION LOG10
    GCOB_FP128 value = __gg__float128_from_qualified_field(source,
--- 1841,1850 ----
  
  extern "C"
  void
! __gg__log10(cblc_field_t *dest,
!       const cblc_field_t *source,
!             size_t source_offset,
!             size_t source_size)
    {
    // FUNCTION LOG10
    GCOB_FP128 value = __gg__float128_from_qualified_field(source,
*************** __gg__max(cblc_field_t *dest,
*** 1870,1877 ****
          || __gg__treeplet_1f[0]->type == FldLiteralA) )
      {
      cblc_field_t  *best_field      ;
!     unsigned char *best_location   ;
!     size_t         best_length     ;
      int            best_attr       ;
      int            best_flags      ;
  
--- 1875,1882 ----
          || __gg__treeplet_1f[0]->type == FldLiteralA) )
      {
      cblc_field_t  *best_field      ;
!     unsigned char *best_location = nullptr  ;
!     size_t         best_length   = 0        ;
      int            best_attr       ;
      int            best_flags      ;
  
*************** __gg__max(cblc_field_t *dest,
*** 1931,1938 ****
--- 1936,1945 ----
          }
        }
  
+ 
      __gg__adjust_dest_size(dest, best_length);
      dest->type = FldAlphanumeric;
+     assert(best_location);
      memcpy(dest->data, best_location, best_length);
      }
    else
*************** __gg__max(cblc_field_t *dest,
*** 1977,1983 ****
  extern "C"
  void
  __gg__lower_case( cblc_field_t *dest,
!                   cblc_field_t *input,
                    size_t        input_offset,
                    size_t        input_size)
    {
--- 1984,1990 ----
  extern "C"
  void
  __gg__lower_case( cblc_field_t *dest,
!             const cblc_field_t *input,
                    size_t        input_offset,
                    size_t        input_size)
    {
*************** __gg__lower_case( cblc_field_t *dest,
*** 1985,1994 ****
    size_t source_length = input_size;
    memset(dest->data, internal_space, dest_length);
    memcpy(dest->data, input->data+input_offset, std::min(dest_length, source_length));
!   internal_to_ascii((char *)dest->data, dest_length);
    std::transform(dest->data, dest->data + dest_length, dest->data,
  		 [](unsigned char c) { return std::tolower(c); });
!   ascii_to_internal_str((char *)dest->data, dest_length);
    }
  
  extern "C"
--- 1992,2001 ----
    size_t source_length = input_size;
    memset(dest->data, internal_space, dest_length);
    memcpy(dest->data, input->data+input_offset, std::min(dest_length, source_length));
!   internal_to_ascii( PTRCAST(char, dest->data), dest_length);
    std::transform(dest->data, dest->data + dest_length, dest->data,
  		 [](unsigned char c) { return std::tolower(c); });
!   ascii_to_internal_str( PTRCAST(char, dest->data), dest_length);
    }
  
  extern "C"
*************** __gg__median( cblc_field_t *dest,
*** 2027,2033 ****
  
    size_t list_size = 1;
  
!   GCOB_FP128 *the_list = (GCOB_FP128 *)malloc(list_size *sizeof(GCOB_FP128));
    size_t k_count = 0;
    assert(ncount);
    for(size_t i=0; i<ncount; i++)
--- 2034,2041 ----
  
    size_t list_size = 1;
  
!   GCOB_FP128 *the_list = static_cast<GCOB_FP128 *>(malloc(list_size *sizeof(GCOB_FP128)));
!   massert(the_list);
    size_t k_count = 0;
    assert(ncount);
    for(size_t i=0; i<ncount; i++)
*************** __gg__median( cblc_field_t *dest,
*** 2040,2048 ****
        if(k_count >= list_size)
          {
          list_size *= 2;
!         the_list = (GCOB_FP128 *)realloc(the_list, list_size *sizeof(GCOB_FP128));
          }
  
        the_list[k_count] = __gg__float128_from_qualified_field(__gg__treeplet_1f[i],
                                                                __gg__treeplet_1o[i],
                                                                __gg__treeplet_1s[i]);
--- 2048,2058 ----
        if(k_count >= list_size)
          {
          list_size *= 2;
!         the_list = PTRCAST(GCOB_FP128, realloc(the_list, list_size *sizeof(GCOB_FP128)));
!         massert(the_list);
          }
  
+       assert(the_list);
        the_list[k_count] = __gg__float128_from_qualified_field(__gg__treeplet_1f[i],
                                                                __gg__treeplet_1o[i],
                                                                __gg__treeplet_1s[i]);
*************** __gg__min(cblc_field_t *dest,
*** 2125,2135 ****
    if( (    __gg__treeplet_1f[0]->type == FldAlphanumeric
          || __gg__treeplet_1f[0]->type == FldLiteralA) )
      {
!     cblc_field_t  *best_field      ;
!     unsigned char *best_location   ;
!     size_t         best_length     ;
!     int            best_attr       ;
!     int            best_flags      ;
  
      bool first_time = true;
      assert(ncount);
--- 2135,2145 ----
    if( (    __gg__treeplet_1f[0]->type == FldAlphanumeric
          || __gg__treeplet_1f[0]->type == FldLiteralA) )
      {
!     cblc_field_t  *best_field               ;
!     unsigned char *best_location = nullptr  ;
!     size_t         best_length   = 0        ;
!     int            best_attr                ;
!     int            best_flags               ;
  
      bool first_time = true;
      assert(ncount);
*************** __gg__min(cblc_field_t *dest,
*** 2189,2194 ****
--- 2199,2205 ----
  
      __gg__adjust_dest_size(dest, best_length);
      dest->type = FldAlphanumeric;
+     assert(best_location);
      memcpy(dest->data, best_location, best_length);
      }
    else
*************** __gg__mod(cblc_field_t *dest,
*** 2277,2291 ****
  
  static int
  numval( cblc_field_t *dest,
!         cblc_field_t *input,
          size_t input_offset,
          size_t input_size)
    {
    // Returns the one-based character position of a bad character
    // returns zero if it is okay
  
!   char *p    = (char *)(input->data + input_offset);
!   char *pend =     p + input_size;
  
    int errpos = 0;
    __int128 retval = 0;
--- 2288,2302 ----
  
  static int
  numval( cblc_field_t *dest,
!   const cblc_field_t *input,
          size_t input_offset,
          size_t input_size)
    {
    // Returns the one-based character position of a bad character
    // returns zero if it is okay
  
!   const char *p    = PTRCAST(char, (input->data + input_offset));
!   const char *pend =     p + input_size;
  
    int errpos = 0;
    __int128 retval = 0;
*************** numval( cblc_field_t *dest,
*** 2568,2584 ****
  static
  int
  numval_c( cblc_field_t *dest,
!           cblc_field_t *src,
            size_t        src_offset,
            size_t        src_size,
!           cblc_field_t *crcy,
            size_t        crcy_offset,
            size_t        crcy_size
            )
    {
    size_t errcode = 0;
  
!   char *pstart = (char *)(src->data+src_offset);
    char *pend   = pstart + src_size;
    char *p      = pstart;
  
--- 2579,2595 ----
  static
  int
  numval_c( cblc_field_t *dest,
!     const cblc_field_t *src,
            size_t        src_offset,
            size_t        src_size,
!     const cblc_field_t *crcy,
            size_t        crcy_offset,
            size_t        crcy_size
            )
    {
    size_t errcode = 0;
  
!   char *pstart = PTRCAST(char, (src->data+src_offset));
    char *pend   = pstart + src_size;
    char *p      = pstart;
  
*************** numval_c( cblc_field_t *dest,
*** 2593,2599 ****
    char *currency_end;
    if( crcy )
      {
!     currency_start = (char *)(crcy->data+crcy_offset);
      currency_end   = currency_start + crcy_size;
      }
    else
--- 2604,2610 ----
    char *currency_end;
    if( crcy )
      {
!     currency_start = PTRCAST(char, (crcy->data+crcy_offset));
      currency_end   = currency_start + crcy_size;
      }
    else
*************** numval_c( cblc_field_t *dest,
*** 2807,2813 ****
          if( sign )
            {
            // A second sign isn't allowed
-           state = final_space;
            errcode = p - pstart;
            p = pend;
            }
--- 2818,2823 ----
*************** numval_c( cblc_field_t *dest,
*** 2875,2881 ****
  extern "C"
  void
  __gg__numval( cblc_field_t *dest,
!               cblc_field_t *source,
                size_t source_offset,
                size_t source_size)
    {
--- 2885,2891 ----
  extern "C"
  void
  __gg__numval( cblc_field_t *dest,
!         const cblc_field_t *source,
                size_t source_offset,
                size_t source_size)
    {
*************** __gg__numval( cblc_field_t *dest,
*** 2889,2895 ****
  extern "C"
  void
  __gg__test_numval(cblc_field_t *dest,
!                   cblc_field_t *source,
                    size_t source_offset,
                    size_t source_size)
    {
--- 2899,2905 ----
  extern "C"
  void
  __gg__test_numval(cblc_field_t *dest,
!             const cblc_field_t *source,
                    size_t source_offset,
                    size_t source_size)
    {
*************** __gg__test_numval(cblc_field_t *dest,
*** 2904,2913 ****
  extern "C"
  void
  __gg__numval_c( cblc_field_t *dest,
!                     cblc_field_t *src,
                      size_t        src_offset,
                      size_t        src_size,
!                     cblc_field_t *crcy,
                      size_t        crcy_offset,
                      size_t        crcy_size
                  )
--- 2914,2923 ----
  extern "C"
  void
  __gg__numval_c( cblc_field_t *dest,
!               const cblc_field_t *src,
                      size_t        src_offset,
                      size_t        src_size,
!               const cblc_field_t *crcy,
                      size_t        crcy_offset,
                      size_t        crcy_size
                  )
*************** __gg__numval_c( cblc_field_t *dest,
*** 2924,2933 ****
  extern "C"
  void
  __gg__test_numval_c(cblc_field_t *dest,
!                     cblc_field_t *src,
                      size_t        src_offset,
                      size_t        src_size,
!                     cblc_field_t *crcy,
                      size_t        crcy_offset,
                      size_t        crcy_size
                      )
--- 2934,2943 ----
  extern "C"
  void
  __gg__test_numval_c(cblc_field_t *dest,
!               const cblc_field_t *src,
                      size_t        src_offset,
                      size_t        src_size,
!               const cblc_field_t *crcy,
                      size_t        crcy_offset,
                      size_t        crcy_size
                      )
*************** __gg__test_numval_c(cblc_field_t *dest,
*** 2949,2960 ****
  extern "C"
  void
  __gg__ord(cblc_field_t *dest,
!           cblc_field_t *input,
            size_t input_offset,
            size_t /*input_size*/)
    {
    // We get our input in internal_character form.
!   char *arg = (char *)(input->data + input_offset);
  
    // The ORD function takes a single-character string and returns the
    // ordinal position of that character.
--- 2959,2970 ----
  extern "C"
  void
  __gg__ord(cblc_field_t *dest,
!     const cblc_field_t *input,
            size_t input_offset,
            size_t /*input_size*/)
    {
    // We get our input in internal_character form.
!   const char *arg = PTRCAST(char, (input->data + input_offset));
  
    // The ORD function takes a single-character string and returns the
    // ordinal position of that character.
*************** __gg__range(cblc_field_t *dest,
*** 3257,3266 ****
  extern "C"
  void
  __gg__rem(cblc_field_t *dest,
!           cblc_field_t *par1,
            size_t par1_offset,
            size_t par1_size,
!           cblc_field_t *par2,
            size_t par2_offset,
            size_t par2_size)
    {
--- 3267,3276 ----
  extern "C"
  void
  __gg__rem(cblc_field_t *dest,
!      const cblc_field_t *par1,
            size_t par1_offset,
            size_t par1_size,
!      const cblc_field_t *par2,
            size_t par2_offset,
            size_t par2_size)
    {
*************** __gg__rem(cblc_field_t *dest,
*** 3300,3309 ****
  extern "C"
  void
  __gg__trim( cblc_field_t *dest,
!             cblc_field_t *arg1,
              size_t        arg1_offset,
              size_t        arg1_size,
!             cblc_field_t *arg2,
              size_t        arg2_offset,
              size_t        arg2_size)
    {
--- 3310,3319 ----
  extern "C"
  void
  __gg__trim( cblc_field_t *dest,
!       const cblc_field_t *arg1,
              size_t        arg1_offset,
              size_t        arg1_size,
!       const cblc_field_t *arg2,
              size_t        arg2_offset,
              size_t        arg2_size)
    {
*************** __gg__trim( cblc_field_t *dest,
*** 3329,3335 ****
    // No matter what, we want to find the leftmost non-space and the
    // rightmost non-space:
  
!   char *left  = (char *)(arg1->data+arg1_offset);
    char *right = left + arg1_size-1;
  
    // Find left and right: the first and last non-spaces
--- 3339,3345 ----
    // No matter what, we want to find the leftmost non-space and the
    // rightmost non-space:
  
!   char *left  = PTRCAST(char, (arg1->data+arg1_offset));
    char *right = left + arg1_size-1;
  
    // Find left and right: the first and last non-spaces
*************** __gg__trim( cblc_field_t *dest,
*** 3352,3364 ****
      {
      // We want to leave any trailing spaces, so we return 'right' to its
      // original value:
!     right = (char *)(arg1->data+arg1_offset) + arg1_size-1;
      }
    else if( type == TRAILING )
      {
      // We want to leave any leading spaces, so we return 'left' to its
      // original value:
!     left = (char *)(arg1->data+arg1_offset);
      }
  
    if( left > right )
--- 3362,3374 ----
      {
      // We want to leave any trailing spaces, so we return 'right' to its
      // original value:
!     right = PTRCAST(char, (arg1->data+arg1_offset)) + arg1_size-1;
      }
    else if( type == TRAILING )
      {
      // We want to leave any leading spaces, so we return 'left' to its
      // original value:
!     left = PTRCAST(char, (arg1->data+arg1_offset));
      }
  
    if( left > right )
*************** __gg__trim( cblc_field_t *dest,
*** 3378,3386 ****
    // compiler believes the capacity to be at compile-time.  But we obviously
    // think it'll be okay.
  
!   char *dest_left  = (char *)dest->data;
    char *dest_right = dest_left + dest->capacity - 1;
!   char *dest_end   = dest_left + dest->capacity;
  
    while( dest_left <= dest_right && left <= right )
      {
--- 3388,3396 ----
    // compiler believes the capacity to be at compile-time.  But we obviously
    // think it'll be okay.
  
!   char *dest_left  = PTRCAST(char, dest->data);
    char *dest_right = dest_left + dest->capacity - 1;
!   const char *dest_end   = dest_left + dest->capacity;
  
    while( dest_left <= dest_right && left <= right )
      {
*************** static unsigned seed = 0;
*** 3403,3409 ****
  extern "C"
  void
  __gg__random( cblc_field_t *dest,
!               cblc_field_t *input,
                size_t        input_offset,
                size_t        input_size)
    {
--- 3413,3419 ----
  extern "C"
  void
  __gg__random( cblc_field_t *dest,
!         const cblc_field_t *input,
                size_t        input_offset,
                size_t        input_size)
    {
*************** __gg__random( cblc_field_t *dest,
*** 3422,3428 ****
      buf->state = NULL;
      state = (char *)malloc(state_len);
  
!     struct timespec ts;
      __gg__clock_gettime(CLOCK_REALTIME, &ts);
      initstate_r( ts.tv_nsec, state, state_len, buf);
      }
--- 3432,3438 ----
      buf->state = NULL;
      state = (char *)malloc(state_len);
  
!     struct cbl_timespec ts;
      __gg__clock_gettime(CLOCK_REALTIME, &ts);
      initstate_r( ts.tv_nsec, state, state_len, buf);
      }
*************** __gg__random_next(cblc_field_t *dest)
*** 3462,3468 ****
      buf = (random_data *)malloc(sizeof(struct random_data));
      buf->state = NULL;
      state = (char *)malloc(state_len);
!     struct timespec ts;
      __gg__clock_gettime(CLOCK_REALTIME, &ts);
      initstate_r( ts.tv_nsec, state, state_len, buf);
      }
--- 3472,3478 ----
      buf = (random_data *)malloc(sizeof(struct random_data));
      buf->state = NULL;
      state = (char *)malloc(state_len);
!     struct cbl_timespec ts;
      __gg__clock_gettime(CLOCK_REALTIME, &ts);
      initstate_r( ts.tv_nsec, state, state_len, buf);
      }
*************** __gg__random_next(cblc_field_t *dest)
*** 3480,3486 ****
  extern "C"
  void
  __gg__reverse(cblc_field_t *dest,
!               cblc_field_t *input,
                size_t input_offset,
                size_t input_size)
    {
--- 3490,3496 ----
  extern "C"
  void
  __gg__reverse(cblc_field_t *dest,
!         const cblc_field_t *input,
                size_t input_offset,
                size_t input_size)
    {
*************** __gg__reverse(cblc_field_t *dest,
*** 3501,3507 ****
  extern "C"
  void
  __gg__sign( cblc_field_t *dest,
!             cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
--- 3511,3517 ----
  extern "C"
  void
  __gg__sign( cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
*************** __gg__sign( cblc_field_t *dest,
*** 3534,3540 ****
  extern "C"
  void
  __gg__sin(cblc_field_t *dest,
!           cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
--- 3544,3550 ----
  extern "C"
  void
  __gg__sin(cblc_field_t *dest,
!     const cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
*************** __gg__sin(cblc_field_t *dest,
*** 3555,3561 ****
  extern "C"
  void
  __gg__sqrt( cblc_field_t *dest,
!             cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
--- 3565,3571 ----
  extern "C"
  void
  __gg__sqrt( cblc_field_t *dest,
!       const cblc_field_t *source,
              size_t source_offset,
              size_t source_size)
    {
*************** __gg__sum(cblc_field_t *dest,
*** 3621,3627 ****
  extern "C"
  void
  __gg__tan(cblc_field_t *dest,
!           cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
--- 3631,3637 ----
  extern "C"
  void
  __gg__tan(cblc_field_t *dest,
!     const cblc_field_t *source,
            size_t source_offset,
            size_t source_size)
    {
*************** __gg__tan(cblc_field_t *dest,
*** 3640,3646 ****
  extern "C"
  void
  __gg__test_date_yyyymmdd( cblc_field_t *dest,
!                           cblc_field_t *source,
                            size_t source_offset,
                            size_t source_size)
    {
--- 3650,3656 ----
  extern "C"
  void
  __gg__test_date_yyyymmdd( cblc_field_t *dest,
!                     const cblc_field_t *source,
                            size_t source_offset,
                            size_t source_size)
    {
*************** __gg__test_date_yyyymmdd( cblc_field_t *
*** 3650,3663 ****
                                                                source_offset,
                                                                source_size);
    int retval;
-   int dd   = yyyymmdd %   100;
    int mmdd = yyyymmdd % 10000;
    int mm   = mmdd     /   100;
-   int yyyy = yyyymmdd / 10000;
-   int jy;
-   int jm;
-   int jd;
-   double JD;
    if( yyyymmdd < 16010000 || yyyymmdd > 99999999 )
      {
      retval = 1;
--- 3660,3667 ----
*************** __gg__test_date_yyyymmdd( cblc_field_t *
*** 3668,3673 ****
--- 3672,3684 ----
      }
    else
      {
+     int dd   = yyyymmdd %   100;
+     int yyyy = yyyymmdd / 10000;
+     int jy;
+     int jm;
+     int jd;
+     double JD;
+ 
      // If there is something wrong with the number of days per month for a
      // given year, the Julian Date conversion won't reverse properly.
      // For example, January 32 will come back as February 1
*************** __gg__test_date_yyyymmdd( cblc_field_t *
*** 3692,3698 ****
  extern "C"
  void
  __gg__test_day_yyyyddd( cblc_field_t *dest,
!                         cblc_field_t *source,
                          size_t source_offset,
                          size_t source_size)
    {
--- 3703,3709 ----
  extern "C"
  void
  __gg__test_day_yyyyddd( cblc_field_t *dest,
!                   const cblc_field_t *source,
                          size_t source_offset,
                          size_t source_size)
    {
*************** __gg__test_day_yyyyddd( cblc_field_t *de
*** 3730,3736 ****
  extern "C"
  void
  __gg__upper_case( cblc_field_t *dest,
!                   cblc_field_t *input,
                    size_t        input_offset,
                    size_t        input_size)
    {
--- 3741,3747 ----
  extern "C"
  void
  __gg__upper_case( cblc_field_t *dest,
!             const cblc_field_t *input,
                    size_t        input_offset,
                    size_t        input_size)
    {
*************** __gg__upper_case( cblc_field_t *dest,
*** 3738,3747 ****
    size_t source_length = input_size;
    memset(dest->data, internal_space, dest_length);
    memcpy(dest->data, input->data+input_offset, std::min(dest_length, source_length));
!   internal_to_ascii((char *)dest->data, dest_length);
    std::transform(dest->data, dest->data + dest_length, dest->data,
  		 [](unsigned char c) { return std::toupper(c); });
!   ascii_to_internal_str((char *)dest->data, dest_length);
    }
  
  extern "C"
--- 3749,3758 ----
    size_t source_length = input_size;
    memset(dest->data, internal_space, dest_length);
    memcpy(dest->data, input->data+input_offset, std::min(dest_length, source_length));
!   internal_to_ascii( PTRCAST(char, dest->data), dest_length);
    std::transform(dest->data, dest->data + dest_length, dest->data,
  		 [](unsigned char c) { return std::toupper(c); });
!   ascii_to_internal_str( PTRCAST(char, dest->data), dest_length);
    }
  
  extern "C"
*************** extern "C"
*** 3765,3771 ****
  void
  __gg__when_compiled(cblc_field_t *dest, size_t tv_sec, long tv_nsec)
    {
!   struct timespec tp = {};
    tp.tv_sec  = tv_sec;
    tp.tv_nsec = tv_nsec;
    char retval[DATE_STRING_BUFFER_SIZE];
--- 3776,3782 ----
  void
  __gg__when_compiled(cblc_field_t *dest, size_t tv_sec, long tv_nsec)
    {
!   struct cbl_timespec tp = {};
    tp.tv_sec  = tv_sec;
    tp.tv_nsec = tv_nsec;
    char retval[DATE_STRING_BUFFER_SIZE];
*************** __gg__when_compiled(cblc_field_t *dest,
*** 3777,3789 ****
  extern "C"
  void
  __gg__year_to_yyyy( cblc_field_t *dest,
!                     cblc_field_t *par1,
                      size_t par1_o,
                      size_t par1_s,
!                     cblc_field_t *par2,
                      size_t par2_o,
                      size_t par2_s,
!                     cblc_field_t *par3,
                      size_t par3_o,
                      size_t par3_s)
    {
--- 3788,3800 ----
  extern "C"
  void
  __gg__year_to_yyyy( cblc_field_t *dest,
!               const cblc_field_t *par1,
                      size_t par1_o,
                      size_t par1_s,
!               const cblc_field_t *par2,
                      size_t par2_o,
                      size_t par2_s,
!               const cblc_field_t *par3,
                      size_t par3_o,
                      size_t par3_s)
    {
*************** __gg__year_to_yyyy( cblc_field_t *dest,
*** 3804,3810 ****
  
  static
  int
! gets_int(int ndigits, char *p, char *pend, int *digits)
    {
    // This routine returns the value of the integer at p.  If there is something
    // wrong with the integer, it returns a negative number, the value being the
--- 3815,3821 ----
  
  static
  int
! gets_int(int ndigits, const char *p, const char *pend, int *digits)
    {
    // This routine returns the value of the integer at p.  If there is something
    // wrong with the integer, it returns a negative number, the value being the
*************** gets_int(int ndigits, char *p, char *pen
*** 3835,3841 ****
  
  static
  int
! gets_year(char *p, char *pend, struct cobol_tm &ctm)
    {
    // Populates ctm.YYYY, ctm.days_in_year, and ctm.weeks_in_year, which are
    // all determined by the YYYY value.
--- 3846,3852 ----
  
  static
  int
! gets_year(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // Populates ctm.YYYY, ctm.days_in_year, and ctm.weeks_in_year, which are
    // all determined by the YYYY value.
*************** gets_year(char *p, char *pend, struct co
*** 3855,3864 ****
      {
      return 2;
      }
-   if( digits[0] == 0 && digits[1] < 5)
-     {
-     return 2;
-     }
    if( digits[2] == -1 )
      {
      return 3;
--- 3866,3871 ----
*************** gets_year(char *p, char *pend, struct co
*** 3903,3909 ****
  
  static
  int
! gets_month(char *p, char *pend, struct cobol_tm &ctm)
    {
    // Populates ctm.MM
  
--- 3910,3916 ----
  
  static
  int
! gets_month(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // Populates ctm.MM
  
*************** gets_month(char *p, char *pend, struct c
*** 3950,3956 ****
  
  static
  int
! gets_day(char *p, char *pend, struct cobol_tm &ctm)
    {
    // Populates ctm.DD, ctm.day_of_week, ctm.week_of_year, ctm.day_of_week
  
--- 3957,3963 ----
  
  static
  int
! gets_day(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // Populates ctm.DD, ctm.day_of_week, ctm.week_of_year, ctm.day_of_week
  
*************** gets_day(char *p, char *pend, struct cob
*** 3968,4015 ****
      {
      return 2;
      }
!   if(DD >= 0)
      {
!     if( DD >= 0 )
        {
!       if( DD == 0)
!         {
!         // If zero, we know we failed at the second '0' in "00"
!         retval = 2;
!         }
!       else if( DD >= 40)
          {
!         // 40 or more, then we knew there was trouble at the first digit
!         retval = 1;
          }
!       else if(ctm.MM == 2 && DD >=30)
          {
!         // It's February, so if we see 3x we know on the 3 that we are in
!         // error:
!         retval = 1;
          }
        else
          {
!         static const int month_days[13] = {-1,31,28,31,30,31,30,31,31,30,31,30,31};
!         int days_in_month = month_days[ctm.MM];
!         if( ctm.MM == 2 && ctm.days_in_year == 366 )
!           {
!           days_in_month = 29;
!           }
! 
!         if( DD > days_in_month )
!           {
!           retval = 2;
!           }
!         else
!           {
!           // We have a good YYYY-MM-DD
!           ctm.DD = DD;
!           double JD      = YMD_to_JD(ctm.YYYY, ctm.MM, DD);
!           double JD_Jan0 = YMD_to_JD(ctm.YYYY, 1, 0);
!           ctm.day_of_year = (int)(JD - JD_Jan0);
!           ctm.day_of_week = JD_to_DOW(JD);
!           }
          }
        }
      }
--- 3975,4019 ----
      {
      return 2;
      }
!   if( DD >= 0 )
      {
!     if( DD == 0)
        {
!       // If zero, we know we failed at the second '0' in "00"
!       retval = 2;
!       }
!     else if( DD >= 40)
!       {
!       // 40 or more, then we knew there was trouble at the first digit
!       retval = 1;
!       }
!     else if(ctm.MM == 2 && DD >=30)
!       {
!       // It's February, so if we see 3x we know on the 3 that we are in
!       // error:
!       retval = 1;
!       }
!     else
!       {
!       static const int month_days[13] = {-1,31,28,31,30,31,30,31,31,30,31,30,31};
!       int days_in_month = month_days[ctm.MM];
!       if( ctm.MM == 2 && ctm.days_in_year == 366 )
          {
!         days_in_month = 29;
          }
! 
!       if( DD > days_in_month )
          {
!         retval = 2;
          }
        else
          {
!         // We have a good YYYY-MM-DD
!         ctm.DD = DD;
!         double JD      = YMD_to_JD(ctm.YYYY, ctm.MM, DD);
!         double JD_Jan0 = YMD_to_JD(ctm.YYYY, 1, 0);
!         ctm.day_of_year = (int)(JD - JD_Jan0);
!         ctm.day_of_week = JD_to_DOW(JD);
          }
        }
      }
*************** gets_day(char *p, char *pend, struct cob
*** 4022,4028 ****
  
  static
  int
! gets_day_of_week(char *p, char *pend, struct cobol_tm &ctm)
    {
    // This is just a simple D, for day-of-week.  The COBOL spec is that
    // it be 1 to 7, 1 being Monday
--- 4026,4032 ----
  
  static
  int
! gets_day_of_week(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // This is just a simple D, for day-of-week.  The COBOL spec is that
    // it be 1 to 7, 1 being Monday
*************** gets_day_of_week(char *p, char *pend, st
*** 4071,4077 ****
  
  static
  int
! gets_day_of_year(char *p, char *pend, struct cobol_tm &ctm)
    {
    // This is a three-digit day-of-year, 001 through 365,366
    int digits[3];
--- 4075,4081 ----
  
  static
  int
! gets_day_of_year(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // This is a three-digit day-of-year, 001 through 365,366
    int digits[3];
*************** gets_day_of_year(char *p, char *pend, st
*** 4128,4134 ****
  
  static
  int
! gets_week(char *p, char *pend, struct cobol_tm &ctm)
    {
    // This is a two-digit value, 01 through 52,53
    int digits[2];
--- 4132,4138 ----
  
  static
  int
! gets_week(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // This is a two-digit value, 01 through 52,53
    int digits[2];
*************** gets_week(char *p, char *pend, struct co
*** 4168,4174 ****
  
  static
  int
! gets_hours(char *p, char *pend, struct cobol_tm &ctm, bool in_offset)
    {
    // This is a two-digit value, 01 through 23
    int digits[2];
--- 4172,4181 ----
  
  static
  int
! gets_hours( const char *p,
!             const char *pend,
!             struct cobol_tm &ctm,
!             bool in_offset)
    {
    // This is a two-digit value, 01 through 23
    int digits[2];
*************** gets_hours(char *p, char *pend, struct c
*** 4213,4219 ****
  
  static
  int
! gets_minutes(char *p, char *pend, struct cobol_tm &ctm, bool in_offset)
    {
    // This is a two-digit value, 01 through 59
    int digits[2];
--- 4220,4229 ----
  
  static
  int
! gets_minutes( const char *p,
!               const char *pend,
!               struct cobol_tm &ctm,
!               bool in_offset)
    {
    // This is a two-digit value, 01 through 59
    int digits[2];
*************** gets_minutes(char *p, char *pend, struct
*** 4251,4257 ****
  
  static
  int
! gets_seconds(char *p, char *pend, struct cobol_tm &ctm)
    {
    // This is a two-digit value, 01 through 59
    int digits[2];
--- 4261,4267 ----
  
  static
  int
! gets_seconds(const char *p, const char *pend, struct cobol_tm &ctm)
    {
    // This is a two-digit value, 01 through 59
    int digits[2];
*************** gets_seconds(char *p, char *pend, struct
*** 4281,4287 ****
  
  static
  int
! gets_nanoseconds(char *f, char *f_end, char *p, char *pend, struct cobol_tm &ctm)
    {
    // Because nanoseconds digits to the right of the decimal point can vary from
    // one digit to our implementation-specific limit of nine characters, this
--- 4291,4301 ----
  
  static
  int
! gets_nanoseconds( const char *f,
!                   const char *f_end,
!                   const char *p,
!                   const char *pend,
!                   struct cobol_tm &ctm)
    {
    // Because nanoseconds digits to the right of the decimal point can vary from
    // one digit to our implementation-specific limit of nine characters, this
*************** gets_nanoseconds(char *f, char *f_end, c
*** 4293,4299 ****
    int ncount = 0;
    int nanoseconds = 0;
  
!   char *pinit = p;
    while( f < f_end && *f == internal_s && p < pend )
      {
      f += 1;
--- 4307,4313 ----
    int ncount = 0;
    int nanoseconds = 0;
  
!   const char *pinit = p;
    while( f < f_end && *f == internal_s && p < pend )
      {
      f += 1;
*************** gets_nanoseconds(char *f, char *f_end, c
*** 4325,4343 ****
  static
  int
  fill_cobol_tm(cobol_tm &ctm,
!               cblc_field_t *par1,
                size_t par1_offset,
                size_t par1_size,
!               cblc_field_t *par2,
                size_t par2_offset,
                size_t par2_size)
    {
    // Establish the formatting string:
!   char *format     = (char *)(par1->data+par1_offset);
    char *format_end = format + par1_size;
  
    // Establish the string to be checked:
!   char *source     = (char *)(par2->data+par2_offset);
    char *source_end = source + par2_size;
  
    // Let's eliminate trailing spaces...
--- 4339,4357 ----
  static
  int
  fill_cobol_tm(cobol_tm &ctm,
!         const cblc_field_t *par1,
                size_t par1_offset,
                size_t par1_size,
!         const cblc_field_t *par2,
                size_t par2_offset,
                size_t par2_size)
    {
    // Establish the formatting string:
!   char *format     = PTRCAST(char, (par1->data+par1_offset));
    char *format_end = format + par1_size;
  
    // Establish the string to be checked:
!   char *source     = PTRCAST(char, (par2->data+par2_offset));
    char *source_end = source + par2_size;
  
    // Let's eliminate trailing spaces...
*************** proceed:
*** 4587,4596 ****
  extern "C"
  void
  __gg__test_formatted_datetime(cblc_field_t *dest,
!                               cblc_field_t *arg1,
                                size_t arg1_offset,
                                size_t arg1_size,
!                               cblc_field_t *arg2,
                                size_t arg2_offset,
                                size_t arg2_size)
  
--- 4601,4610 ----
  extern "C"
  void
  __gg__test_formatted_datetime(cblc_field_t *dest,
!                         const cblc_field_t *arg1,
                                size_t arg1_offset,
                                size_t arg1_size,
!                         const cblc_field_t *arg2,
                                size_t arg2_offset,
                                size_t arg2_size)
  
*************** __gg__test_formatted_datetime(cblc_field
*** 4610,4619 ****
  extern "C"
  void
  __gg__integer_of_formatted_date(cblc_field_t *dest,
!                                 cblc_field_t *arg1,
                                  size_t arg1_offset,
                                  size_t arg1_size,
!                                 cblc_field_t *arg2,
                                  size_t arg2_offset,
                                  size_t arg2_size)
    {
--- 4624,4633 ----
  extern "C"
  void
  __gg__integer_of_formatted_date(cblc_field_t *dest,
!                           const cblc_field_t *arg1,
                                  size_t arg1_offset,
                                  size_t arg1_size,
!                           const cblc_field_t *arg2,
                                  size_t arg2_offset,
                                  size_t arg2_size)
    {
*************** __gg__integer_of_formatted_date(cblc_fie
*** 4645,4654 ****
  extern "C"
  void
  __gg__seconds_from_formatted_time(cblc_field_t *dest,
!                                   cblc_field_t *arg1,
                                    size_t arg1_offset,
                                    size_t arg1_size,
!                                   cblc_field_t *arg2,
                                    size_t arg2_offset,
                                    size_t arg2_size)
    {
--- 4659,4668 ----
  extern "C"
  void
  __gg__seconds_from_formatted_time(cblc_field_t *dest,
!                             const cblc_field_t *arg1,
                                    size_t arg1_offset,
                                    size_t arg1_size,
!                             const cblc_field_t *arg2,
                                    size_t arg2_offset,
                                    size_t arg2_size)
    {
*************** __gg__seconds_from_formatted_time(cblc_f
*** 4673,4679 ****
  extern "C"
  void
  __gg__hex_of(cblc_field_t *dest,
!              cblc_field_t *field,
               size_t field_offset,
               size_t field_size)
    {
--- 4687,4693 ----
  extern "C"
  void
  __gg__hex_of(cblc_field_t *dest,
!        const cblc_field_t *field,
               size_t field_offset,
               size_t field_size)
    {
*************** __gg__hex_of(cblc_field_t *dest,
*** 4691,4697 ****
  extern "C"
  void
  __gg__highest_algebraic(cblc_field_t *dest,
!                         cblc_field_t *var,
                          size_t,
                          size_t)
    {
--- 4705,4711 ----
  extern "C"
  void
  __gg__highest_algebraic(cblc_field_t *dest,
!                   const cblc_field_t *var,
                          size_t,
                          size_t)
    {
*************** __gg__highest_algebraic(cblc_field_t *de
*** 4733,4739 ****
  extern "C"
  void
  __gg__lowest_algebraic( cblc_field_t *dest,
!                         cblc_field_t *var,
                          size_t,
                          size_t)
    {
--- 4747,4753 ----
  extern "C"
  void
  __gg__lowest_algebraic( cblc_field_t *dest,
!                   const cblc_field_t *var,
                          size_t,
                          size_t)
    {
*************** __gg__lowest_algebraic( cblc_field_t *de
*** 4795,4801 ****
    }
  
  static int
! floating_format_tester(char const * const f, char * const f_end)
    {
    int retval = -1;
    char decimal_point = __gg__get_decimal_point();
--- 4809,4815 ----
    }
  
  static int
! floating_format_tester(char const * const f, char const * const f_end)
    {
    int retval = -1;
    char decimal_point = __gg__get_decimal_point();
*************** floating_format_tester(char const * cons
*** 4983,4995 ****
  extern "C"
  void
  __gg__numval_f( cblc_field_t *dest,
!                 cblc_field_t *source,
                  size_t source_offset,
                  size_t source_size)
    {
    GCOB_FP128 value = 0;
!   char *data     = (char * )(source->data + source_offset);
!   char *data_end = data + source_size;
  
    int error = floating_format_tester(data, data_end);
  
--- 4997,5009 ----
  extern "C"
  void
  __gg__numval_f( cblc_field_t *dest,
!           const cblc_field_t *source,
                  size_t source_offset,
                  size_t source_size)
    {
    GCOB_FP128 value = 0;
!   const char *data     = PTRCAST(char, (source->data + source_offset));
!   const char *data_end = data + source_size;
  
    int error = floating_format_tester(data, data_end);
  
*************** __gg__numval_f( cblc_field_t *dest,
*** 5022,5033 ****
  extern "C"
  void
  __gg__test_numval_f(cblc_field_t *dest,
!                     cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size)
    {
!   char *data     = (char * )(source->data + source_offset);
!   char *data_end = data + source_size;
  
    int error = floating_format_tester(data, data_end);
  
--- 5036,5047 ----
  extern "C"
  void
  __gg__test_numval_f(cblc_field_t *dest,
!               const cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size)
    {
!   const char *data     = PTRCAST(char, (source->data + source_offset));
!   const char *data_end = data + source_size;
  
    int error = floating_format_tester(data, data_end);
  
*************** __gg__test_numval_f(cblc_field_t *dest,
*** 5039,5045 ****
    }
  
  static bool
! ismatch(char *a1, char *a2, char *b1, char *b2)
    {
    bool retval = true;
    while( a1 < a2 && b1 < b2 )
--- 5053,5059 ----
    }
  
  static bool
! ismatch(const char *a1, const char *a2, const char *b1, const char *b2)
    {
    bool retval = true;
    while( a1 < a2 && b1 < b2 )
*************** ismatch(char *a1, char *a2, char *b1, ch
*** 5053,5059 ****
    }
  
  static bool
! iscasematch(char *a1, char *a2, char *b1, char *b2)
    {
    bool retval = true;
    while( a1 < a2 && b1 < b2 )
--- 5067,5073 ----
    }
  
  static bool
! iscasematch(const char *a1, const char *a2, const char *b1, const char *b2)
    {
    bool retval = true;
    while( a1 < a2 && b1 < b2 )
*************** iscasematch(char *a1, char *a2, char *b1
*** 5066,5076 ****
    return retval;
    }
  
! static char *
! strstr(char *haystack, char *haystack_e, char *needle, char *needle_e)
    {
!   char *retval = NULL;
!   char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(ismatch(haystack, haystack_e, needle, needle_e))
--- 5080,5094 ----
    return retval;
    }
  
! static
! const char *
! strstr( const char *haystack,
!         const char *haystack_e,
!         const char *needle,
!         const char *needle_e)
    {
!   const char *retval = NULL;
!   const char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(ismatch(haystack, haystack_e, needle, needle_e))
*************** strstr(char *haystack, char *haystack_e,
*** 5083,5093 ****
    return retval;
    }
  
! static char *
! strcasestr(char *haystack, char *haystack_e, char *needle, char *needle_e)
    {
!   char *retval = NULL;
!   char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(iscasematch(haystack, haystack_e, needle, needle_e))
--- 5101,5115 ----
    return retval;
    }
  
! static
! const char *
! strcasestr( const char *haystack,
!             const char *haystack_e,
!             const char *needle,
!             const char *needle_e)
    {
!   const char *retval = NULL;
!   const char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(iscasematch(haystack, haystack_e, needle, needle_e))
*************** strcasestr(char *haystack, char *haystac
*** 5100,5110 ****
    return retval;
    }
  
! static char *
! strlaststr(char *haystack, char *haystack_e, char *needle, char *needle_e)
    {
!   char *retval = NULL;
!   char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(ismatch(haystack, haystack_e, needle, needle_e))
--- 5122,5136 ----
    return retval;
    }
  
! static 
! const char *
! strlaststr( const char *haystack,
!             const char *haystack_e,
!             const char *needle,
!             const char *needle_e)
    {
!   const char *retval = NULL;
!   const char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(ismatch(haystack, haystack_e, needle, needle_e))
*************** strlaststr(char *haystack, char *haystac
*** 5116,5126 ****
    return retval;
    }
  
! static char *
! strcaselaststr(char *haystack, char *haystack_e, char *needle, char *needle_e)
    {
!   char *retval = NULL;
!   char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(iscasematch(haystack, haystack_e, needle, needle_e))
--- 5142,5156 ----
    return retval;
    }
  
! static 
! const char *
! strcaselaststr( const char *haystack,
!                 const char *haystack_e,
!                 const char *needle,
!                 const char *needle_e)
    {
!   const char *retval = NULL;
!   const char *pend = haystack_e - (needle_e - needle);
    while( haystack <= pend )
      {
      if(iscasematch(haystack, haystack_e, needle, needle_e))
*************** strcaselaststr(char *haystack, char *hay
*** 5134,5146 ****
  
  
  extern "C"
! void __gg__substitute(cblc_field_t *dest,
!                       cblc_field_t *arg1_f,
!                       size_t        arg1_o,
!                       size_t        arg1_s,
!                       size_t        N,
!                       uint8_t      *control
!                       )
    {
    // arg2 is the Group 1 triplet.
    // arg3 is the Group 2 triplet
--- 5164,5176 ----
  
  
  extern "C"
! void 
! __gg__substitute( cblc_field_t *dest,
!             const cblc_field_t *arg1_f,
!                   size_t        arg1_o,
!                   size_t        arg1_s,
!                   size_t        N,
!             const uint8_t      *control)
    {
    // arg2 is the Group 1 triplet.
    // arg3 is the Group 2 triplet
*************** void __gg__substitute(cblc_field_t *dest
*** 5148,5166 ****
    size_t        *arg2_o = __gg__treeplet_1o;
    size_t        *arg2_s = __gg__treeplet_1s;
    cblc_field_t **arg3_f = __gg__treeplet_2f;
!   size_t        *arg3_o = __gg__treeplet_2o;
!   size_t        *arg3_s = __gg__treeplet_2s;
  
!   ssize_t retval_size = 256;
!   char  *retval = (char *)malloc(retval_size);
    *retval = '\0';
  
!   char *haystack   = (char *)(arg1_f->data + arg1_o);
!   char *haystack_e = haystack + arg1_s;
  
    ssize_t outdex = 0;
  
!   char **pflasts = (char **)malloc(N * sizeof(char *));
  
    if( arg1_s == 0 )
      {
--- 5178,5199 ----
    size_t        *arg2_o = __gg__treeplet_1o;
    size_t        *arg2_s = __gg__treeplet_1s;
    cblc_field_t **arg3_f = __gg__treeplet_2f;
!   const size_t  *arg3_o = __gg__treeplet_2o;
!   const size_t  *arg3_s = __gg__treeplet_2s;
  
!   ssize_t retval_size;
!   retval_size = 256;
!   char  *retval = static_cast<char *>(malloc(retval_size));
!   massert(retval);
    *retval = '\0';
  
!   const char *haystack   = PTRCAST(char, (arg1_f->data + arg1_o));
!   const char *haystack_e = haystack + arg1_s;
  
    ssize_t outdex = 0;
  
!   const char **pflasts = static_cast<const char **>(malloc(N * sizeof(char *)));
!   massert(pflasts);
  
    if( arg1_s == 0 )
      {
*************** void __gg__substitute(cblc_field_t *dest
*** 5181,5195 ****
          {
          pflasts[i] = strcasestr(haystack,
                                  haystack_e,
!                                 (char *)(arg2_f[i]->data+arg2_o[i]),
!                                 (char *)(arg2_f[i]->data+arg2_o[i]) + arg2_s[i]);
          }
        else if( control[i] & substitute_last_e)
          {
          pflasts[i] = strcaselaststr(haystack,
                                  haystack_e,
!                                 (char *)(arg2_f[i]->data+arg2_o[i]),
!                                 (char *)(arg2_f[i]->data+arg2_o[i]) + arg2_s[i]);
          }
        else
          {
--- 5214,5228 ----
          {
          pflasts[i] = strcasestr(haystack,
                                  haystack_e,
!                                 PTRCAST(char, (arg2_f[i]->data+arg2_o[i])),
!                                 PTRCAST(char, (arg2_f[i]->data+arg2_o[i])) + arg2_s[i]);
          }
        else if( control[i] & substitute_last_e)
          {
          pflasts[i] = strcaselaststr(haystack,
                                  haystack_e,
!                                 PTRCAST(char, (arg2_f[i]->data+arg2_o[i])),
!                                 PTRCAST(char, (arg2_f[i]->data+arg2_o[i])) + arg2_s[i]);
          }
        else
          {
*************** void __gg__substitute(cblc_field_t *dest
*** 5202,5216 ****
          {
          pflasts[i] = strstr(haystack,
                              haystack_e,
!                             (char *)(arg2_f[i]->data+arg2_o[i]),
!                             (char *)(arg2_f[i]->data+arg2_o[i]) + arg2_s[i]);
          }
        else if( control[i] & substitute_last_e)
          {
          pflasts[i] = strlaststr(haystack,
                                  haystack_e,
!                                 (char *)(arg2_f[i]->data+arg2_o[i]),
!                                 (char *)(arg2_f[i]->data+arg2_o[i]) + arg2_s[i]);
          }
        else
          {
--- 5235,5249 ----
          {
          pflasts[i] = strstr(haystack,
                              haystack_e,
!                             PTRCAST(char, (arg2_f[i]->data+arg2_o[i])),
!                             PTRCAST(char, (arg2_f[i]->data+arg2_o[i])) + arg2_s[i]);
          }
        else if( control[i] & substitute_last_e)
          {
          pflasts[i] = strlaststr(haystack,
                                  haystack_e,
!                                 PTRCAST(char, (arg2_f[i]->data+arg2_o[i])),
!                                 PTRCAST(char, (arg2_f[i]->data+arg2_o[i])) + arg2_s[i]);
          }
        else
          {
*************** void __gg__substitute(cblc_field_t *dest
*** 5230,5236 ****
                                                                   > retval_size )
          {
          retval_size *= 2;
!         retval = (char *)realloc(retval, retval_size);
          }
  
        // We checked earlier for FIRST/LAST matches
--- 5263,5270 ----
                                                                   > retval_size )
          {
          retval_size *= 2;
!         retval = static_cast<char *>(realloc(retval, retval_size));
!         massert(retval);
          }
  
        // We checked earlier for FIRST/LAST matches
*************** void __gg__substitute(cblc_field_t *dest
*** 5245,5252 ****
            continue;
            }
  
!         char *needle   = (char *)(arg2_f[i]->data+arg2_o[i]);
!         char *needle_e = (char *)(arg2_f[i]->data+arg2_o[i]) + arg2_s[i];
          matched = (control[i] & substitute_anycase_e) && iscasematch(
                                                                   haystack,
                                                                   haystack_e,
--- 5279,5286 ----
            continue;
            }
  
!         const char *needle   = PTRCAST(char, arg2_f[i]->data+arg2_o[i]);
!         const char *needle_e = PTRCAST(char, arg2_f[i]->data+arg2_o[i]) + arg2_s[i];
          matched = (control[i] & substitute_anycase_e) && iscasematch(
                                                                   haystack,
                                                                   haystack_e,
*************** void __gg__substitute(cblc_field_t *dest
*** 5274,5280 ****
        while( outdex + 1 > retval_size )
          {
          retval_size *= 2;
!         retval = (char *)realloc(retval, retval_size);
          }
        retval[outdex++] = *haystack++;
        }
--- 5308,5315 ----
        while( outdex + 1 > retval_size )
          {
          retval_size *= 2;
!         retval = static_cast<char *>(realloc(retval, retval_size));
!         massert(retval);
          }
        retval[outdex++] = *haystack++;
        }
*************** void __gg__substitute(cblc_field_t *dest
*** 5291,5303 ****
  extern "C"
  void
  __gg__locale_compare( cblc_field_t *dest,
!                       cblc_field_t *arg1,
                        size_t        arg1_o,
                        size_t        arg1_s,
!                       cblc_field_t *arg2,
                        size_t        arg2_o,
                        size_t        arg2_s,
!                       cblc_field_t *arg_locale,
                        size_t        /*arg_locale_o*/,
                        size_t        /*arg_locale_s*/
                        )
--- 5326,5338 ----
  extern "C"
  void
  __gg__locale_compare( cblc_field_t *dest,
!                 const cblc_field_t *arg1,
                        size_t        arg1_o,
                        size_t        arg1_s,
!                 const cblc_field_t *arg2,
                        size_t        arg2_o,
                        size_t        arg2_s,
!                 const cblc_field_t *arg_locale,
                        size_t        /*arg_locale_o*/,
                        size_t        /*arg_locale_s*/
                        )
*************** __gg__locale_compare( cblc_field_t *dest
*** 5348,5357 ****
  extern "C"
  void
  __gg__locale_date(cblc_field_t *dest,
!                   cblc_field_t *arg1,
                    size_t        arg1_o,
                    size_t        /*arg1_s*/,
!                   cblc_field_t *arg_locale,
                    size_t        /*arg_locale_o*/,
                    size_t        /*arg_locale_s*/)
    {
--- 5383,5392 ----
  extern "C"
  void
  __gg__locale_date(cblc_field_t *dest,
!             const cblc_field_t *arg1,
                    size_t        arg1_o,
                    size_t        /*arg1_s*/,
!             const cblc_field_t *arg_locale,
                    size_t        /*arg_locale_o*/,
                    size_t        /*arg_locale_s*/)
    {
*************** __gg__locale_date(cblc_field_t *dest,
*** 5384,5393 ****
  extern "C"
  void
  __gg__locale_time(cblc_field_t *dest,
!                   cblc_field_t *arg1,
                    size_t        arg1_o,
                    size_t        /*arg1_s*/,
!                   cblc_field_t *arg_locale,
                    size_t        /*arg_locale_o*/,
                    size_t        /*arg_locale_s*/)
  
--- 5419,5428 ----
  extern "C"
  void
  __gg__locale_time(cblc_field_t *dest,
!             const cblc_field_t *arg1,
                    size_t        arg1_o,
                    size_t        /*arg1_s*/,
!             const cblc_field_t *arg_locale,
                    size_t        /*arg_locale_o*/,
                    size_t        /*arg_locale_s*/)
  
*************** __gg__locale_time(cblc_field_t *dest,
*** 5420,5429 ****
  extern "C"
  void
  __gg__locale_time_from_seconds( cblc_field_t *dest,
!                                 cblc_field_t *arg1,
                                  size_t        arg1_o,
                                  size_t        arg1_s,
!                                 cblc_field_t *arg_locale,
                                  size_t        /*arg_locale_o*/,
                                  size_t        /*arg_locale_s*/)
    {
--- 5455,5464 ----
  extern "C"
  void
  __gg__locale_time_from_seconds( cblc_field_t *dest,
!                           const cblc_field_t *arg1,
                                  size_t        arg1_o,
                                  size_t        arg1_s,
!                           const cblc_field_t *arg_locale,
                                  size_t        /*arg_locale_o*/,
                                  size_t        /*arg_locale_s*/)
    {
*************** __gg__locale_time_from_seconds( cblc_fie
*** 5439,5445 ****
      // Default locale
      tm tm = {};
  
!     int rdigits;
      long seconds = (long)__gg__binary_value_from_qualified_field(&rdigits,
                                                                   arg1,
                                                                   arg1_o,
--- 5474,5480 ----
      // Default locale
      tm tm = {};
  
!     int rdigits=0;
      long seconds = (long)__gg__binary_value_from_qualified_field(&rdigits,
                                                                   arg1,
                                                                   arg1_o,
diff -Nrcpad gcc-16-20250601/libgcobol/libgcobol.cc gcc-16-20250608/libgcobol/libgcobol.cc
*** gcc-16-20250601/libgcobol/libgcobol.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/libgcobol.cc	Sun Jun  8 22:32:41 2025
***************
*** 65,78 ****
  #include "gfileio.h"
  #include "charmaps.h"
  #include "valconv.h"
- 
  #include <sys/mman.h>
  #include <sys/resource.h>
  #include <sys/stat.h>
  #include <sys/types.h>
- 
  #include <execinfo.h>
- 
  #include "exceptl.h"
  
  /* BSD extension.  */
--- 65,75 ----
*************** size_t      __gg__unique_prog_id
*** 196,202 ****
  // location information are established in the "last_exception..." variables.
  // This is in accordance with the ISO requirements of "14.6.13.1.1 General" that
  // describe how a "last exception status" is maintained.
! // other "location" information 
  static int         last_exception_code;
  static const char *last_exception_program_id;
  static const char *last_exception_section;
--- 193,199 ----
  // location information are established in the "last_exception..." variables.
  // This is in accordance with the ISO requirements of "14.6.13.1.1 General" that
  // describe how a "last exception status" is maintained.
! // other "location" information
  static int         last_exception_code;
  static const char *last_exception_program_id;
  static const char *last_exception_section;
*************** void       *__gg__exit_address = NULL;
*** 240,275 ****
   *   4.  handled, where handled == type
   *
   * If the statement includes some kind of ON ERROR
!  * clause that covers it, the generated code does not raise an EC. 
   *
   * The status is updated by __gg_match_exception if it runs, else
!  * __gg__check_fatal_exception. 
   *
   * If a Declarative is matched, its section number is passed to handled_by(),
   * which does two things:
   *  1. sets isection to record the declarative
   *  2. for a nonfatal EC, sets handled, indication no further action is needed
   *
!  * A Declarative may use RESUME, which clears ec_status, which is a "handled" state. 
!  * 
!  * Default processing ensures return to initial state. 
   */
  class ec_status_t {
   public:
    struct file_status_t {
!     size_t ifile; 
!     cblc_file_prior_op_t operation; 
!     cbl_file_mode_t mode; 
      cblc_field_t *user_status;
      const char * filename;
!     file_status_t() : ifile(0) , operation(file_op_none), mode(file_mode_none_e) {}
!     file_status_t( cblc_file_t *file )
!       : ifile(file->symbol_table_index)
!       , operation(file->prior_op)
!       , mode(cbl_file_mode_t(file->mode_char))
!       , user_status(file->user_status)
!       , filename(file->filename)
!     {}
      const char * op_str() const {
        switch( operation ) {
        case file_op_none: return "none";
--- 237,278 ----
   *   4.  handled, where handled == type
   *
   * If the statement includes some kind of ON ERROR
!  * clause that covers it, the generated code does not raise an EC.
   *
   * The status is updated by __gg_match_exception if it runs, else
!  * __gg__check_fatal_exception.
   *
   * If a Declarative is matched, its section number is passed to handled_by(),
   * which does two things:
   *  1. sets isection to record the declarative
   *  2. for a nonfatal EC, sets handled, indication no further action is needed
   *
!  * A Declarative may use RESUME, which clears ec_status, which is a "handled" state.
!  *
!  * Default processing ensures return to initial state.
   */
  class ec_status_t {
   public:
    struct file_status_t {
!     size_t ifile;
!     cblc_file_prior_op_t operation;
!     cbl_file_mode_t mode;
      cblc_field_t *user_status;
      const char * filename;
!     file_status_t()
!                     : ifile(0)
!                     ,  operation(file_op_none)
!                     ,  mode(file_mode_none_e)
!                     ,  user_status(nullptr)
!                     ,  filename(nullptr) 
!                       {}
!     explicit file_status_t( const cblc_file_t *file )
!                     : ifile(file->symbol_table_index)
!                     , operation(file->prior_op)
!                     , mode(cbl_file_mode_t(file->mode_char))
!                     , user_status(file->user_status)
!                     , filename(file->filename)
!                       {}
      const char * op_str() const {
        switch( operation ) {
        case file_op_none: return "none";
*************** class ec_status_t {
*** 284,290 ****
        return "???";
      }
    };
!  private:  
    char msg[132];
    ec_type_t type, handled;
    size_t isection;
--- 287,293 ----
        return "???";
      }
    };
!  private:
    char msg[132];
    ec_type_t type, handled;
    size_t isection;
*************** class ec_status_t {
*** 292,298 ****
    cbl_declaratives_t declaratives;
    struct file_status_t file;
   public:
!   size_t lineno;
    const char *source_file;
    cbl_name_t statement; // e.g., "ADD"
  
--- 295,301 ----
    cbl_declaratives_t declaratives;
    struct file_status_t file;
   public:
!   int lineno;
    const char *source_file;
    cbl_name_t statement; // e.g., "ADD"
  
*************** class ec_status_t {
*** 308,335 ****
  
    bool is_fatal() const;
    ec_status_t& update();
!   
    bool is_enabled() const { return enabled.match(type); }
    bool is_enabled( ec_type_t ec) const { return enabled.match(ec); }
    ec_status_t& handled_by( size_t declarative_section ) {
      isection = declarative_section;
!     // A fatal exception remains unhandled unless RESUME clears it. 
!     if( ! is_fatal() ) { 
        handled = type;
      }
      return *this;
    }
    ec_status_t& clear() {
      handled = type = ec_none_e;
!     isection = lineno = 0;
      msg[0] = statement[0] = '\0';
      return *this;
    }
    bool unset() const { return isection == 0 && lineno == 0; }
!   
    void reset_environment() const;
    ec_status_t& copy_environment();
!   
    // Return the EC's type if it is *not* handled.
    ec_type_t unhandled() const {
      bool was_handled = ec_cmp(type, handled);
--- 311,339 ----
  
    bool is_fatal() const;
    ec_status_t& update();
! 
    bool is_enabled() const { return enabled.match(type); }
    bool is_enabled( ec_type_t ec) const { return enabled.match(ec); }
    ec_status_t& handled_by( size_t declarative_section ) {
      isection = declarative_section;
!     // A fatal exception remains unhandled unless RESUME clears it.
!     if( ! is_fatal() ) {
        handled = type;
      }
      return *this;
    }
    ec_status_t& clear() {
      handled = type = ec_none_e;
!     isection = 0;
!     lineno = 0;
      msg[0] = statement[0] = '\0';
      return *this;
    }
    bool unset() const { return isection == 0 && lineno == 0; }
! 
    void reset_environment() const;
    ec_status_t& copy_environment();
! 
    // Return the EC's type if it is *not* handled.
    ec_type_t unhandled() const {
      bool was_handled = ec_cmp(type, handled);
*************** class ec_status_t {
*** 341,347 ****
    const file_status_t& file_status() const { return file; }
  
    const char * exception_location() {
!     snprintf(msg, sizeof(msg), "%s:%zu: '%s'", source_file, lineno, statement);
      return msg;
    }
  };
--- 345,351 ----
    const file_status_t& file_status() const { return file; }
  
    const char * exception_location() {
!     snprintf(msg, sizeof(msg), "%s:%d: '%s'", source_file, lineno, statement);
      return msg;
    }
  };
*************** ec_status_t::reset_environment() const {
*** 428,435 ****
--- 432,448 ----
    ::declaratives = declaratives;
  }
  
+ 
+ // This is the default truncation mode
  static cbl_truncation_mode truncation_mode = trunc_std_e;
  
+ extern "C"
+ void
+ __gg__set_truncation_mode(cbl_truncation_mode trunc_mode)
+   {
+   truncation_mode = trunc_mode;
+   }
+ 
  struct program_state
    {
    // These are the run-time values of these characters.
*************** void *malloc(size_t a)
*** 535,541 ****
    void *retval = malloc(a);
    fprintf(stderr, " --malloc(%p)-- ", retval);
    return retval;
-   return retval;
    }
  #endif
  
--- 548,553 ----
*************** __gg__abort(const char *msg)
*** 546,551 ****
--- 558,569 ----
    abort();
    }
  
+ void 
+ __gg__mabort()
+   {
+   __gg__abort("Memory allocation error\n");
+   }
+ 
  extern "C"
  char
  __gg__get_decimal_point()
*************** __gg__resize_int_p( size_t *size,
*** 576,582 ****
    if( new_size > *size )
      {
      *size = new_size;
!     *block = (int *)realloc(*block, new_size * sizeof(int));
      }
    }
  
--- 594,600 ----
    if( new_size > *size )
      {
      *size = new_size;
!     *block = static_cast<int *>(realloc(*block, new_size * sizeof(int)));
      }
    }
  
*************** __gg__resize_treeplet(int     ngroup,
*** 591,626 ****
        if( new_size > treeplet_1_size )
          {
          treeplet_1_size = new_size;
!         __gg__treeplet_1f = (cblc_field_t **)realloc(__gg__treeplet_1f, new_size * sizeof(cblc_field_t *));
!         __gg__treeplet_1o = (size_t *)realloc(__gg__treeplet_1o, new_size * sizeof(size_t));
!         __gg__treeplet_1s = (size_t *)realloc(__gg__treeplet_1s, new_size * sizeof(size_t));
          }
      break;
      case 2:
        if( new_size > treeplet_2_size )
          {
          treeplet_2_size = new_size;
!         __gg__treeplet_2f = (cblc_field_t **)realloc(__gg__treeplet_2f, new_size * sizeof(cblc_field_t *));
!         __gg__treeplet_2o = (size_t *)realloc(__gg__treeplet_2o, new_size * sizeof(size_t));
!         __gg__treeplet_2s = (size_t *)realloc(__gg__treeplet_2s, new_size * sizeof(size_t));
          }
      break;
      case 3:
        if( new_size > treeplet_3_size )
          {
          treeplet_3_size = new_size;
!         __gg__treeplet_3f = (cblc_field_t **)realloc(__gg__treeplet_3f, new_size * sizeof(cblc_field_t *));
!         __gg__treeplet_3o = (size_t *)realloc(__gg__treeplet_3o, new_size * sizeof(size_t));
!         __gg__treeplet_3s = (size_t *)realloc(__gg__treeplet_3s, new_size * sizeof(size_t));
          }
      break;
      case 4:
        if( new_size > treeplet_4_size )
          {
          treeplet_4_size = new_size;
!         __gg__treeplet_4f = (cblc_field_t **)realloc(__gg__treeplet_4f, new_size * sizeof(cblc_field_t *));
!         __gg__treeplet_4o = (size_t *)realloc(__gg__treeplet_4o, new_size * sizeof(size_t));
!         __gg__treeplet_4s = (size_t *)realloc(__gg__treeplet_4s, new_size * sizeof(size_t));
          }
      break;
      }
--- 609,644 ----
        if( new_size > treeplet_1_size )
          {
          treeplet_1_size = new_size;
!         __gg__treeplet_1f = static_cast<cblc_field_t **>(realloc(__gg__treeplet_1f, new_size * sizeof(cblc_field_t *)));
!         __gg__treeplet_1o = static_cast<size_t *>(realloc(__gg__treeplet_1o, new_size * sizeof(size_t)));
!         __gg__treeplet_1s = static_cast<size_t *>(realloc(__gg__treeplet_1s, new_size * sizeof(size_t)));
          }
      break;
      case 2:
        if( new_size > treeplet_2_size )
          {
          treeplet_2_size = new_size;
!         __gg__treeplet_2f = static_cast<cblc_field_t **>(realloc(__gg__treeplet_2f, new_size * sizeof(cblc_field_t *)));
!         __gg__treeplet_2o = static_cast<size_t *>(realloc(__gg__treeplet_2o, new_size * sizeof(size_t)));
!         __gg__treeplet_2s = static_cast<size_t *>(realloc(__gg__treeplet_2s, new_size * sizeof(size_t)));
          }
      break;
      case 3:
        if( new_size > treeplet_3_size )
          {
          treeplet_3_size = new_size;
!         __gg__treeplet_3f = static_cast<cblc_field_t **>(realloc(__gg__treeplet_3f, new_size * sizeof(cblc_field_t *)));
!         __gg__treeplet_3o = static_cast<size_t *>(realloc(__gg__treeplet_3o, new_size * sizeof(size_t)));
!         __gg__treeplet_3s = static_cast<size_t *>(realloc(__gg__treeplet_3s, new_size * sizeof(size_t)));
          }
      break;
      case 4:
        if( new_size > treeplet_4_size )
          {
          treeplet_4_size = new_size;
!         __gg__treeplet_4f = static_cast<cblc_field_t **>(realloc(__gg__treeplet_4f, new_size * sizeof(cblc_field_t *)));
!         __gg__treeplet_4o = static_cast<size_t *>(realloc(__gg__treeplet_4o, new_size * sizeof(size_t)));
!         __gg__treeplet_4s = static_cast<size_t *>(realloc(__gg__treeplet_4s, new_size * sizeof(size_t)));
          }
      break;
      }
*************** __gg__init_program_state()
*** 738,744 ****
    }
  
  static int
! var_is_refmod( cblc_field_t *var )
    {
    return (var->attr & refmod_e) != 0;
    }
--- 756,762 ----
    }
  
  static int
! var_is_refmod( const cblc_field_t *var )
    {
    return (var->attr & refmod_e) != 0;
    }
*************** __gg__binary_to_string_internal(char *re
*** 907,915 ****
    }
  
  static bool
! value_is_too_big(   cblc_field_t *var,
!                     __int128 value,
!                     int source_rdigits)
    {
    // This routine is in support of arithmetic ON SIZE ERROR.  It returns
    // TRUE if var hasn't enough bytes to hold the decimal representation
--- 925,933 ----
    }
  
  static bool
! value_is_too_big(const cblc_field_t *var,
!                  __int128            value,
!                  int                 source_rdigits)
    {
    // This routine is in support of arithmetic ON SIZE ERROR.  It returns
    // TRUE if var hasn't enough bytes to hold the decimal representation
*************** is_sign_bit_on(char ch)
*** 1046,1057 ****
  
  extern "C"
  void
! __gg__string_to_alpha_edited_ascii( char *dest,
!                                     char *source,
!                                     int slength,
!                                     char *picture)
    {
!   char *dupe = (char *)malloc(slength);
    memcpy(dupe, source, slength);
    ascii_to_internal_str(dupe, slength);
    __gg__string_to_alpha_edited(dest, dupe, slength, picture);
--- 1064,1076 ----
  
  extern "C"
  void
! __gg__string_to_alpha_edited_ascii( char       *dest,
!                                     const char *source,
!                                     int         slength,
!                                     const char *picture)
    {
!   char *dupe = static_cast<char *>(malloc(slength));
!   massert(dupe);
    memcpy(dupe, source, slength);
    ascii_to_internal_str(dupe, slength);
    __gg__string_to_alpha_edited(dest, dupe, slength, picture);
*************** int128_to_field(cblc_field_t   *var,
*** 1406,1412 ****
            {
            float tvalue = (float)value;
            tvalue /= (float)__gg__power_of_ten(source_rdigits);
!           *(float *)location = tvalue;
            break;
            }
  
--- 1425,1431 ----
            {
            float tvalue = (float)value;
            tvalue /= (float)__gg__power_of_ten(source_rdigits);
!           *PTRCAST(float, location) = tvalue;
            break;
            }
  
*************** int128_to_field(cblc_field_t   *var,
*** 1414,1420 ****
            {
            double tvalue = (double)value;
            tvalue /= (double)__gg__power_of_ten(source_rdigits);
!           *(double *)location = tvalue;
            break;
            }
  
--- 1433,1439 ----
            {
            double tvalue = (double)value;
            tvalue /= (double)__gg__power_of_ten(source_rdigits);
!           *PTRCAST(double, location) = tvalue;
            break;
            }
  
*************** int128_to_field(cblc_field_t   *var,
*** 1478,1485 ****
  
      default:
        {
-       bool size_error = false;
- 
        int target_rdigits = var->rdigits;
        if( var->attr & intermediate_e && var->type == FldNumericBin5)
          {
--- 1497,1502 ----
*************** int128_to_field(cblc_field_t   *var,
*** 1569,1574 ****
--- 1586,1592 ----
        else
          {
          // Value is now scaled to the target's target_rdigits
+         bool size_error = false;
  
          int is_negative = value < 0 ;
  
*************** int128_to_field(cblc_field_t   *var,
*** 1598,1605 ****
  
              // Note that sending a signed value to an alphanumeric strips off
              // any plus or minus signs.
!             size_error = __gg__binary_to_string_internal( (char *)location,
!                          length, value);
              break;
  
            case FldNumericDisplay:
--- 1616,1624 ----
  
              // Note that sending a signed value to an alphanumeric strips off
              // any plus or minus signs.
!             size_error = __gg__binary_to_string_internal(
!                           PTRCAST(char, location),
!                           length, value);
              break;
  
            case FldNumericDisplay:
*************** int128_to_field(cblc_field_t   *var,
*** 1615,1621 ****
                    {
                    // The sign character goes into the first location
                    size_error =
!                     __gg__binary_to_string_internal((char *)(location+1),
                                                      length-1, value);
                    location[0] = sign_ch;
                    }
--- 1634,1640 ----
                    {
                    // The sign character goes into the first location
                    size_error =
!                     __gg__binary_to_string_internal(PTRCAST(char, location+1),
                                                      length-1, value);
                    location[0] = sign_ch;
                    }
*************** int128_to_field(cblc_field_t   *var,
*** 1623,1630 ****
                    {
                    // The sign character goes into the last location
                    size_error =
!                     __gg__binary_to_string_internal(  (char *)location,
!                                                       length-1, value);
                    location[length-1] = sign_ch;
                    }
                  }
--- 1642,1649 ----
                    {
                    // The sign character goes into the last location
                    size_error =
!                     __gg__binary_to_string_internal(PTRCAST(char, location),
!                                                     length-1, value);
                    location[length-1] = sign_ch;
                    }
                  }
*************** int128_to_field(cblc_field_t   *var,
*** 1633,1639 ****
                  // The sign information is not separate, so we put it into
                  // the number
                  size_error =
!                   __gg__binary_to_string_internal(( char *)location,
                                                    length, value);
  
                  if( size_error && is_negative )
--- 1652,1658 ----
                  // The sign information is not separate, so we put it into
                  // the number
                  size_error =
!                   __gg__binary_to_string_internal(PTRCAST(char, location),
                                                    length, value);
  
                  if( size_error && is_negative )
*************** int128_to_field(cblc_field_t   *var,
*** 1669,1675 ****
              else
                {
                // It's a simple positive number
!               size_error = __gg__binary_to_string_internal( (char *)location,
                             length, value);
                }
  
--- 1688,1695 ----
              else
                {
                // It's a simple positive number
!               size_error = __gg__binary_to_string_internal( PTRCAST(char,
!                                                                     location),
                             length, value);
                }
  
*************** int128_to_field(cblc_field_t   *var,
*** 1692,1703 ****
  
                // Convert that string according to the PICTURE clause
                size_error |= __gg__string_to_numeric_edited(
!                                 (char *)location,
                                  ach,
                                  target_rdigits,
                                  is_negative,
                                  var->picture);
!               ascii_to_internal_str((char *)location, var->capacity);
                }
  
              break;
--- 1712,1723 ----
  
                // Convert that string according to the PICTURE clause
                size_error |= __gg__string_to_numeric_edited(
!                                  PTRCAST(char, location),
                                  ach,
                                  target_rdigits,
                                  is_negative,
                                  var->picture);
!               ascii_to_internal_str( PTRCAST(char, location), var->capacity);
                }
  
              break;
*************** int128_to_field(cblc_field_t   *var,
*** 1733,1739 ****
  
              // Convert that string according to the PICTURE clause
              __gg__string_to_alpha_edited(
!               (char *)location,
                ach,
                strlen(ach),
                var->picture);
--- 1753,1759 ----
  
              // Convert that string according to the PICTURE clause
              __gg__string_to_alpha_edited(
!               PTRCAST(char, location),
                ach,
                strlen(ach),
                var->picture);
*************** int128_to_field(cblc_field_t   *var,
*** 1849,1859 ****
    }
  
  static __int128
! edited_to_binary( const char *ps_,
                    int length,
                    int *rdigits)
    {
!   const unsigned char *ps = (const unsigned char *)ps_;
    // This routine is used for converting NumericEdited strings to
    // binary.
  
--- 1869,1879 ----
    }
  
  static __int128
! edited_to_binary( char *ps_,
                    int length,
                    int *rdigits)
    {
!   const unsigned char *ps = const_cast<const unsigned char *>(PTRCAST(unsigned char, ps_));
    // This routine is used for converting NumericEdited strings to
    // binary.
  
*************** edited_to_binary( const char *ps_,
*** 1879,1886 ****
  
    __int128 result = 0;
  
-   unsigned char ch;
- 
    // We need to check the last two characters.  If CR or DB, then the result
    // is negative:
    if( length >= 2)
--- 1899,1904 ----
*************** edited_to_binary( const char *ps_,
*** 1901,1907 ****
  
    while( index < length )
      {
!     ch = ps[index++] & 0xFF;
      if( ch == ascii_to_internal(__gg__decimal_point) )
        {
        delta_r = 1;
--- 1919,1925 ----
  
    while( index < length )
      {
!     unsigned char ch = ps[index++] & 0xFF;
      if( ch == ascii_to_internal(__gg__decimal_point) )
        {
        delta_r = 1;
*************** edited_to_binary( const char *ps_,
*** 1923,1933 ****
        }
      }
  
!   if( result == 0 )
!     {
!     hyphen = 0;
!     }
!   else if( hyphen )
      {
      result = -result;
      }
--- 1941,1947 ----
        }
      }
  
!   if( hyphen )
      {
      result = -result;
      }
*************** big_endian_to_binary_signed(
*** 1957,1963 ****
      }
  
    // move the bytes of psource into retval, flipping them end-to-end
!   unsigned char *dest = (unsigned char *)&retval;
    while(capacity > 0)
      {
      *dest++ = psource[--capacity];
--- 1971,1977 ----
      }
  
    // move the bytes of psource into retval, flipping them end-to-end
!   unsigned char *dest = PTRCAST(unsigned char, &retval);
    while(capacity > 0)
      {
      *dest++ = psource[--capacity];
*************** big_endian_to_binary_unsigned(
*** 2021,2027 ****
    __int128 retval = 0 ;
  
    // move the bytes of psource into retval, flipping them end-to-end
!   unsigned char *dest = (unsigned char *)&retval;
    while(capacity > 0)
      {
      *dest++ = psource[--capacity];
--- 2035,2041 ----
    __int128 retval = 0 ;
  
    // move the bytes of psource into retval, flipping them end-to-end
!   unsigned char *dest = PTRCAST(unsigned char, &retval);
    while(capacity > 0)
      {
      *dest++ = psource[--capacity];
*************** big_endian_to_binary_unsigned(
*** 2031,2040 ****
  
  static
  __int128
! get_binary_value_local(  int           *rdigits,
!                          cblc_field_t  *resolved_var,
!                          unsigned char *resolved_location,
!                          size_t         resolved_length)
    {
    __int128 retval = 0;
  
--- 2045,2054 ----
  
  static
  __int128
! get_binary_value_local(  int                 *rdigits,
!                          const cblc_field_t  *resolved_var,
!                          unsigned char       *resolved_location,
!                          size_t               resolved_length)
    {
    __int128 retval = 0;
  
*************** get_binary_value_local(  int           *
*** 2055,2061 ****
      case FldGroup :
      case FldAlphanumeric :
        // Read the data area as a dirty string:
!       retval = __gg__dirty_to_binary_internal( (const char *)resolved_location,
                 resolved_length,
                 rdigits );
        break;
--- 2069,2076 ----
      case FldGroup :
      case FldAlphanumeric :
        // Read the data area as a dirty string:
!       retval = __gg__dirty_to_binary_internal( PTRCAST(const char,
!                                                        resolved_location),
                 resolved_length,
                 rdigits );
        break;
*************** get_binary_value_local(  int           *
*** 2082,2089 ****
          // Turn all the bits on
          memset( &retval, 0xFF, sizeof(retval) );
  
!         // Make it positive
!         ((unsigned char *)&retval)[sizeof(retval)-1] = 0x3F;
          *rdigits = resolved_var->rdigits;
          }
        else
--- 2097,2104 ----
          // Turn all the bits on
          memset( &retval, 0xFF, sizeof(retval) );
  
!         // Make it positive by turning off the highest order bit:
!         (PTRCAST(unsigned char, &retval))[sizeof(retval)-1] = 0x3F;
          *rdigits = resolved_var->rdigits;
          }
        else
*************** get_binary_value_local(  int           *
*** 2120,2126 ****
          // We know where the decimal point is because of rdigits.  Because
          // we know that it a clean string of ASCII digits, we can use the
          // dirty converter:
!         retval = __gg__dirty_to_binary_internal((const char *)resolved_location,
                   resolved_length,
                   rdigits );
          *rdigits = resolved_var->rdigits;
--- 2135,2142 ----
          // We know where the decimal point is because of rdigits.  Because
          // we know that it a clean string of ASCII digits, we can use the
          // dirty converter:
!         retval = __gg__dirty_to_binary_internal(PTRCAST(const char,
!                                                         resolved_location),
                   resolved_length,
                   rdigits );
          *rdigits = resolved_var->rdigits;
*************** get_binary_value_local(  int           *
*** 2136,2142 ****
        break;
  
      case FldNumericEdited :
!       retval = edited_to_binary(  (const char *)resolved_location,
                                    resolved_length,
                                    rdigits);
        break;
--- 2152,2158 ----
        break;
  
      case FldNumericEdited :
!       retval = edited_to_binary(  PTRCAST(char, resolved_location),
                                    resolved_length,
                                    rdigits);
        break;
*************** get_binary_value_local(  int           *
*** 2145,2157 ****
        if( resolved_var->attr & signable_e)
          {
          retval = big_endian_to_binary_signed(
!                         (const unsigned char *)resolved_location,
                          resolved_length);
          }
        else
          {
          retval = big_endian_to_binary_unsigned(
!                         (const unsigned char *)resolved_location,
                          resolved_length);
          }
        *rdigits = resolved_var->rdigits;
--- 2161,2173 ----
        if( resolved_var->attr & signable_e)
          {
          retval = big_endian_to_binary_signed(
!                         PTRCAST(const unsigned char, resolved_location),
                          resolved_length);
          }
        else
          {
          retval = big_endian_to_binary_unsigned(
!                         PTRCAST(const unsigned char, resolved_location),
                          resolved_length);
          }
        *rdigits = resolved_var->rdigits;
*************** get_binary_value_local(  int           *
*** 2179,2191 ****
        if( resolved_var->attr & signable_e)
          {
          retval = little_endian_to_binary_signed(
!                       (const unsigned char *)resolved_location,
                        resolved_length);
          }
        else
          {
          retval = little_endian_to_binary_unsigned(
!                       (const unsigned char *)resolved_location,
                        resolved_length);
          }
        *rdigits = resolved_var->rdigits;
--- 2195,2207 ----
        if( resolved_var->attr & signable_e)
          {
          retval = little_endian_to_binary_signed(
!                       PTRCAST(const unsigned char, resolved_location),
                        resolved_length);
          }
        else
          {
          retval = little_endian_to_binary_unsigned(
!                       PTRCAST(const unsigned char, resolved_location),
                        resolved_length);
          }
        *rdigits = resolved_var->rdigits;
*************** get_binary_value_local(  int           *
*** 2273,2279 ****
  static time_t
  cobol_time()
    {
!   struct timespec tp;
    __gg__clock_gettime(CLOCK_REALTIME, &tp);
    return tp.tv_sec;
    }
--- 2289,2295 ----
  static time_t
  cobol_time()
    {
!   struct cbl_timespec tp;
    __gg__clock_gettime(CLOCK_REALTIME, &tp);
    return tp.tv_sec;
    }
*************** __gg__get_date_yymmdd()
*** 2285,2291 ****
    char ach[32];
  
    time_t t = cobol_time();
!   struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%2.2d%2.2d%2.2d",
--- 2301,2307 ----
    char ach[32];
  
    time_t t = cobol_time();
!   const struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%2.2d%2.2d%2.2d",
*************** __gg__get_date_yyyymmdd()
*** 2304,2310 ****
    char ach[32];
  
    time_t t = cobol_time();
!   struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%4.4d%2.2d%2.2d",
--- 2320,2326 ----
    char ach[32];
  
    time_t t = cobol_time();
!   const struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%4.4d%2.2d%2.2d",
*************** __gg__get_date_yyddd()
*** 2323,2329 ****
    char ach[32];
  
    time_t t = cobol_time();
!   struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%2.2d%3.3d",
--- 2339,2345 ----
    char ach[32];
  
    time_t t = cobol_time();
!   const struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%2.2d%3.3d",
*************** __gg__get_yyyyddd()
*** 2341,2347 ****
    char ach[32];
  
    time_t t = cobol_time();
!   struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%4.4d%3.3d",
--- 2357,2363 ----
    char ach[32];
  
    time_t t = cobol_time();
!   const struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%4.4d%3.3d",
*************** __gg__get_date_dow()
*** 2359,2365 ****
    char ach[32];
  
    time_t t = cobol_time();
!   struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%1.1d",
--- 2375,2381 ----
    char ach[32];
  
    time_t t = cobol_time();
!   const struct tm *local = localtime(&t);
  
    sprintf(ach,
            "%1.1d",
*************** int_from_digits(const char * &p, int ndi
*** 2386,2395 ****
    return retval;
    }
  
  
  extern "C"
  void
! __gg__clock_gettime(clockid_t clk_id, struct timespec *tp)
    {
    const char *p = getenv("GCOBOL_CURRENT_DATE");
  
--- 2402,2433 ----
    return retval;
    }
  
+ uint64_t
+ get_time_nanoseconds()
+ {
+   // This code was unabashedly stolen from gcc/timevar.cc.
+   // It returns the Unix epoch with nine decimal places.
+ 
+   uint64_t retval = 0;
+ 
+ #ifdef HAVE_CLOCK_GETTIME
+   struct timespec ts;
+   clock_gettime (CLOCK_REALTIME, &ts);
+   retval = ts.tv_sec * 1000000000 + ts.tv_nsec;
+   return retval;
+ #endif
+ #ifdef HAVE_GETTIMEOFDAY
+   struct timeval tv;
+   gettimeofday (&tv, NULL);
+   retval = tv.tv_sec * 1000000000 + tv.tv_usec * 1000;
+   return retval;
+ #endif
+   return retval;
+ }
  
  extern "C"
  void
! __gg__clock_gettime(clockid_t clk_id, struct cbl_timespec *tp)
    {
    const char *p = getenv("GCOBOL_CURRENT_DATE");
  
*************** __gg__clock_gettime(clockid_t clk_id, st
*** 2419,2425 ****
      }
    else
      {
!     clock_gettime(clk_id, tp);
      }
    }
  
--- 2457,2467 ----
      }
    else
      {
!     timespec tm;
!     clock_gettime(clk_id, &tm);
!     uint64_t ns = get_time_nanoseconds();
!     tp->tv_sec  = ns/1000000000;
!     tp->tv_nsec = ns%1000000000;
      }
    }
  
*************** __gg__get_date_hhmmssff()
*** 2429,2435 ****
    {
    char ach[32];
  
!   struct timespec tv;
    __gg__clock_gettime(CLOCK_REALTIME, &tv);
  
    struct tm tm;
--- 2471,2477 ----
    {
    char ach[32];
  
!   struct cbl_timespec tv;
    __gg__clock_gettime(CLOCK_REALTIME, &tv);
  
    struct tm tm;
*************** int
*** 2459,2478 ****
  __gg__setop_compare(
    const char *candidate,
    int capacity,
!   const char *domain)
    {
    // This routine is called to compare the characters of 'candidate'
    // against the list of character pairs in 'domain'
  
    int retval = 0;
-   int ch;
    int l;
    int h;
!   const char *d;
  
    for(int i=0; i<capacity; i++)
      {
!     ch = (*candidate++ & 0xFF);
      d = domain;
      while(*d)
        {
--- 2501,2519 ----
  __gg__setop_compare(
    const char *candidate,
    int capacity,
!   char *domain)
    {
    // This routine is called to compare the characters of 'candidate'
    // against the list of character pairs in 'domain'
  
    int retval = 0;
    int l;
    int h;
!   char *d;
  
    for(int i=0; i<capacity; i++)
      {
!     int ch = (*candidate++ & 0xFF);
      d = domain;
      while(*d)
        {
*************** __gg__setop_compare(
*** 2484,2490 ****
        // See the comments in genapi.cc::get_class_condition_string
        // to see how this string was encoded.
  
!       l = (int)strtoll(d, (char **)&d, 16);
        if( l < 0 )
          {
          l = -l;
--- 2525,2531 ----
        // See the comments in genapi.cc::get_class_condition_string
        // to see how this string was encoded.
  
!       l = (int)strtoll(d, reinterpret_cast<char **>(&d), 16);
        if( l < 0 )
          {
          l = -l;
*************** __gg__setop_compare(
*** 2493,2499 ****
        if( *d == '/' )
          {
          d += 1;
!         h = (int)strtoll(d, (char **)&d, 16);
          if( h < 0 )
            {
            h = -h;
--- 2534,2540 ----
        if( *d == '/' )
          {
          d += 1;
!         h = (int)strtoll(d, reinterpret_cast<char **>(&d), 16);
          if( h < 0 )
            {
            h = -h;
*************** void psz_to_internal(char *psz)
*** 2943,2949 ****
    }
  
  static int
! get_scaled_rdigits(cblc_field_t *field)
    {
    int retval;
    if( !(field->attr & scaled_e) )
--- 2984,2990 ----
    }
  
  static int
! get_scaled_rdigits(const cblc_field_t *field)
    {
    int retval;
    if( !(field->attr & scaled_e) )
*************** format_for_display_internal(char **dest,
*** 3048,3054 ****
          break;
          }
  
!       unsigned char *running_location = actual_location;
  
        // We need the counts of digits to the left and right of the decimal point
        int rdigits = get_scaled_rdigits(var);
--- 3089,3095 ----
          break;
          }
  
!       const unsigned char *running_location = actual_location;
  
        // We need the counts of digits to the left and right of the decimal point
        int rdigits = get_scaled_rdigits(var);
*************** format_for_display_internal(char **dest,
*** 3063,3069 ****
          rdigits += ldigits;
          }
  
-       int index = 0;  // This is the running index into our output destination
        if( rdigits )
          {
          // We need room for the inside decimal point
--- 3104,3109 ----
*************** format_for_display_internal(char **dest,
*** 3080,3085 ****
--- 3120,3126 ----
  
        if( actual_location )
          {
+         int index = 0;  // This is the running index into our output destination
          if( var->attr & signable_e )
            {
            if( var->attr & separate_e )
*************** format_for_display_internal(char **dest,
*** 3124,3130 ****
              // the user.
              if( (*dest)[index-1] != (char)DEGENERATE_HIGH_VALUE )
                {
!               turn_sign_bit_off((unsigned char *)&ch);
                }
              (*dest)[index++] = ch;
              }
--- 3165,3171 ----
              // the user.
              if( (*dest)[index-1] != (char)DEGENERATE_HIGH_VALUE )
                {
!               turn_sign_bit_off( PTRCAST(unsigned char, &ch));
                }
              (*dest)[index++] = ch;
              }
*************** format_for_display_internal(char **dest,
*** 3148,3154 ****
                char ch = *running_location++;
                if( (*dest)[index-1] != (char)DEGENERATE_HIGH_VALUE )
                  {
!                 turn_sign_bit_off((unsigned char *)&ch);
                  }
                (*dest)[index++] = ch;
                }
--- 3189,3195 ----
                char ch = *running_location++;
                if( (*dest)[index-1] != (char)DEGENERATE_HIGH_VALUE )
                  {
!                 turn_sign_bit_off(PTRCAST(unsigned char, &ch));
                  }
                (*dest)[index++] = ch;
                }
*************** format_for_display_internal(char **dest,
*** 3257,3267 ****
          }
        __gg__realloc_if_necessary(dest, dest_size, nsize);
  
-       bool is_signed = value < 0;
- 
        if( var->attr & signable_e )
          {
!         if( is_signed )
            {
            (*dest)[index++] = internal_minus;
            }
--- 3298,3306 ----
          }
        __gg__realloc_if_necessary(dest, dest_size, nsize);
  
        if( var->attr & signable_e )
          {
!         if( value < 0 )
            {
            (*dest)[index++] = internal_minus;
            }
*************** format_for_display_internal(char **dest,
*** 3293,3299 ****
                                                actual_location,
                                                actual_length);
        char ach[64];
!       sprintf(ach, "%lu", (size_t)value);
        __gg__realloc_if_necessary(dest, dest_size, strlen(ach)+1);
        strcpy(*dest, ach);
        }
--- 3332,3338 ----
                                                actual_location,
                                                actual_length);
        char ach[64];
!       sprintf(ach, "%lu", (unsigned long)value);
        __gg__realloc_if_necessary(dest, dest_size, strlen(ach)+1);
        strcpy(*dest, ach);
        }
*************** format_for_display_internal(char **dest,
*** 3349,3355 ****
            // side, and 9999999 and then 1E+7 on the high side
            // 10,000,000 = 1E7
            char ach[64];
!           _Float32 floatval = *(_Float32 *)actual_location;
            strfromf32(ach, sizeof(ach), "%.9E", floatval);
            char *p = strchr(ach, 'E');
            if( !p )
--- 3388,3394 ----
            // side, and 9999999 and then 1E+7 on the high side
            // 10,000,000 = 1E7
            char ach[64];
!           _Float32 floatval = *PTRCAST(_Float32, actual_location);
            strfromf32(ach, sizeof(ach), "%.9E", floatval);
            char *p = strchr(ach, 'E');
            if( !p )
*************** format_for_display_internal(char **dest,
*** 3389,3395 ****
            // We will also format numbers so that we produce 0.01 and 1E-3 on the low
            // side, and 9999999 and then 1E+15 on the high side
            char ach[64];
!           _Float64 floatval = *(_Float64 *)actual_location;
            strfromf64(ach, sizeof(ach), "%.17E", floatval);
            char *p = strchr(ach, 'E');
            if( !p )
--- 3428,3434 ----
            // We will also format numbers so that we produce 0.01 and 1E-3 on the low
            // side, and 9999999 and then 1E+15 on the high side
            char ach[64];
!           _Float64 floatval = *PTRCAST(_Float64, actual_location);
            strfromf64(ach, sizeof(ach), "%.17E", floatval);
            char *p = strchr(ach, 'E');
            if( !p )
*************** format_for_display_internal(char **dest,
*** 3483,3489 ****
    if( var->attr & scaled_e && var->type != FldNumericDisplay )
      {
      static size_t buffer_size = MINIMUM_ALLOCATION_SIZE;
!     static char * buffer = (char *)malloc(buffer_size);
      if( var->rdigits > 0)
        {
        // We have something like 123 or +123.  We need to insert a decimal
--- 3522,3529 ----
    if( var->attr & scaled_e && var->type != FldNumericDisplay )
      {
      static size_t buffer_size = MINIMUM_ALLOCATION_SIZE;
!     static char  *buffer = static_cast<char *>(malloc(buffer_size));
!     massert(buffer);
      if( var->rdigits > 0)
        {
        // We have something like 123 or +123.  We need to insert a decimal
*************** format_for_display_internal(char **dest,
*** 3542,3548 ****
        {
        p2 += 1;
        }
!     strcpy((char *)p1, (char *)p2);
      }
  
    done:
--- 3582,3588 ----
        {
        p2 += 1;
        }
!     strcpy(PTRCAST(char, p1), PTRCAST(char, p2));
      }
  
    done:
*************** compare_88( const char    *list,
*** 3591,3597 ****
      {
      // We are working with a figurative constant
  
!     test = (char *)malloc(conditional_length);
      test_len = conditional_length;
      // This is where we handle the zero-length strings that
      // nonetheless can magically be expanded into figurative
--- 3631,3638 ----
      {
      // We are working with a figurative constant
  
!     test = static_cast<char *>(malloc(conditional_length));
!     massert(test);
      test_len = conditional_length;
      // This is where we handle the zero-length strings that
      // nonetheless can magically be expanded into figurative
*************** compare_88( const char    *list,
*** 3628,3641 ****
    else if( list_len < conditional_length )
      {
      // 'list' is too short; we have to right-fill with spaces:
!     test = (char *)malloc(conditional_length);
      test_len = conditional_length;
      memset(test, internal_space, conditional_length);
      memcpy(test, list, list_len);
      }
    else
      {
!     test = (char *)malloc(list_len);
      test_len = list_len;
      memcpy(test, list, list_len);
      }
--- 3669,3684 ----
    else if( list_len < conditional_length )
      {
      // 'list' is too short; we have to right-fill with spaces:
!     test = static_cast<char *>(malloc(conditional_length));
!     massert(test);
      test_len = conditional_length;
      memset(test, internal_space, conditional_length);
      memcpy(test, list, list_len);
      }
    else
      {
!     test = static_cast<char *>(malloc(list_len));
!     massert(test);
      test_len = list_len;
      memcpy(test, list, list_len);
      }
*************** compare_88( const char    *list,
*** 3648,3654 ****
      }
    else
      {
!     cmpval = cstrncmp(test, (char *)conditional_location, conditional_length);
      if( cmpval == 0 && (int)strlen(test) != conditional_length )
        {
        // When strncmp returns 0, the actual smaller string is the
--- 3691,3699 ----
      }
    else
      {
!     cmpval = cstrncmp (test, 
!                       PTRCAST(char, conditional_location),
!                       conditional_length);
      if( cmpval == 0 && (int)strlen(test) != conditional_length )
        {
        // When strncmp returns 0, the actual smaller string is the
*************** compare_88( const char    *list,
*** 3671,3677 ****
    }
  
  static GCOB_FP128
! get_float128( cblc_field_t *field,
                unsigned char *location )
    {
    GCOB_FP128 retval=0;
--- 3716,3722 ----
    }
  
  static GCOB_FP128
! get_float128( const cblc_field_t *field,
                unsigned char *location )
    {
    GCOB_FP128 retval=0;
*************** get_float128( cblc_field_t *field,
*** 3680,3689 ****
      switch( field->capacity )
        {
        case 4:
!         retval = *(_Float32 *)location;
          break;
        case 8:
!         retval = *(_Float64 *)location;
          break;
        case 16:
          // retval = *(_Float128 *)location; doesn't work, because the SSE
--- 3725,3734 ----
      switch( field->capacity )
        {
        case 4:
!         retval = *PTRCAST(_Float32 , location);
          break;
        case 8:
!         retval = *PTRCAST(_Float64 , location);
          break;
        case 16:
          // retval = *(_Float128 *)location; doesn't work, because the SSE
*************** get_float128( cblc_field_t *field,
*** 3703,3714 ****
        {
        // We need to replace any commas with periods
        static size_t size = 128;
!       static char *buffer = (char *)malloc(size);
        while( strlen(field->initial)+1 > size )
          {
          size *= 2;
!         buffer = (char *)malloc(size);
          }
        strcpy(buffer, field->initial);
        char *p = strchr(buffer, ',');
        if(p)
--- 3748,3760 ----
        {
        // We need to replace any commas with periods
        static size_t size = 128;
!       static char *buffer = static_cast<char *>(malloc(size));
        while( strlen(field->initial)+1 > size )
          {
          size *= 2;
!         buffer = static_cast<char *>(malloc(size));
          }
+       massert(buffer);
        strcpy(buffer, field->initial);
        char *p = strchr(buffer, ',');
        if(p)
*************** compare_field_class(cblc_field_t  *condi
*** 3753,3759 ****
                                        conditional,
                                        conditional_location,
                                        conditional_length);
!       char *walker = list->initial;
        while(*walker)
          {
          char   left_flag;
--- 3799,3805 ----
                                        conditional,
                                        conditional_location,
                                        conditional_length);
!       const char *walker = list->initial;
        while(*walker)
          {
          char   left_flag;
*************** compare_field_class(cblc_field_t  *condi
*** 3899,3906 ****
  
      case FldFloat:
        {
!       GCOB_FP128 value = get_float128(conditional, conditional_location) ;
!       char *walker = list->initial;
        while(*walker)
          {
          char   left_flag;
--- 3945,3952 ----
  
      case FldFloat:
        {
!       GCOB_FP128 fp128 = get_float128(conditional, conditional_location) ;
!       const char *walker = list->initial;
        while(*walker)
          {
          char   left_flag;
*************** compare_field_class(cblc_field_t  *condi
*** 3945,3951 ****
                                                right_len);
            }
  
!         if( left_value <= value && value <= right_value )
            {
            retval = 0;
            break;
--- 3991,3997 ----
                                                right_len);
            }
  
!         if( left_value <= fp128 && fp128 <= right_value )
            {
            retval = 0;
            break;
*************** local_is_alpha(int type, bool address_of
*** 4025,4036 ****
  
  static
  int
! compare_strings(char   *left_string,
!                 size_t  left_length,
!                 bool    left_all,
!                 char   *right_string,
!                 size_t  right_length,
!                 bool    right_all)
    {
    int retval = 0;
    size_t i = 0;
--- 4071,4082 ----
  
  static
  int
! compare_strings(const char   *left_string,
!                 size_t        left_length,
!                 bool          left_all,
!                 const char   *right_string,
!                 size_t        right_length,
!                 bool          right_all)
    {
    int retval = 0;
    size_t i = 0;
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4284,4289 ****
--- 4330,4336 ----
              retval = 0;
              retval = value < 0 ? -1 : retval;
              retval = value > 0 ?  1 : retval;
+             compare = true;
              break;
              }
  
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4294,4299 ****
--- 4341,4347 ----
              retval = 0;
              retval = value < 0 ? -1 : retval;
              retval = value > 0 ?  1 : retval;
+             compare = true;
              break;
              }
  
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4312,4320 ****
              compare = true;
              break;
            }
-         compare = true;
          goto fixup_retval;
-         break;
          }
        }
      }
--- 4360,4366 ----
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4329,4338 ****
      if(    local_is_alpha(left_side->type,  left_address_of)
          && local_is_alpha(right_side->type, right_address_of) )
        {
!       retval = compare_strings(   (char *)left_location,
                                    left_length,
                                    left_all,
!                                   (char *)right_location,
                                    right_length,
                                    right_all );
  
--- 4375,4384 ----
      if(    local_is_alpha(left_side->type,  left_address_of)
          && local_is_alpha(right_side->type, right_address_of) )
        {
!       retval = compare_strings(   reinterpret_cast<char *>(left_location),
                                    left_length,
                                    left_all,
!                                   reinterpret_cast<char *>(right_location),
                                    right_length,
                                    right_all );
  
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4368,4379 ****
            // literal to be the same flavor as the left side:
            // We need to replace any commas with periods
            static size_t size = 128;
!           static char *buffer = (char *)malloc(size);
            while( strlen(right_side->initial)+1 > size )
              {
              size *= 2;
!             buffer = (char *)malloc(size);
              }
            strcpy(buffer, right_side->initial);
            if( __gg__decimal_point == ',' )
              {
--- 4414,4426 ----
            // literal to be the same flavor as the left side:
            // We need to replace any commas with periods
            static size_t size = 128;
!           static char *buffer = static_cast<char *>(malloc(size));
            while( strlen(right_side->initial)+1 > size )
              {
              size *= 2;
!             buffer = static_cast<char *>(malloc(size));
              }
+           massert(buffer);
            strcpy(buffer, right_side->initial);
            if( __gg__decimal_point == ',' )
              {
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4391,4421 ****
              {
              case 4:
                {
!               _Float32 left_value  = *(_Float32 *)left_location;
!               _Float32 right_value = strtof(buffer, NULL);
                retval = 0;
!               retval = left_value < right_value ? -1 : retval;
!               retval = left_value > right_value ?  1 : retval;
                break;
                }
              case 8:
                {
!               _Float64 left_value  = *(_Float64 *)left_location;
!               _Float64 right_value = strtod(buffer, NULL);
                retval = 0;
!               retval = left_value < right_value ? -1 : retval;
!               retval = left_value > right_value ?  1 : retval;
                break;
                }
              case 16:
                {
                //_Float128 left_value  = *(_Float128 *)left_location;
!               GCOB_FP128 left_value;
!               memcpy(&left_value, left_location, 16);
!               GCOB_FP128 right_value = strtofp128(buffer, NULL);
                retval = 0;
!               retval = left_value < right_value ? -1 : retval;
!               retval = left_value > right_value ?  1 : retval;
                break;
                }
              }
--- 4438,4468 ----
              {
              case 4:
                {
!               _Float32 left_value4  = *PTRCAST(_Float32, left_location);
!               _Float32 right_value4 = strtof(buffer, NULL);
                retval = 0;
!               retval = left_value4 < right_value4 ? -1 : retval;
!               retval = left_value4 > right_value4 ?  1 : retval;
                break;
                }
              case 8:
                {
!               _Float64 left_value8  = *PTRCAST(_Float64, left_location);
!               _Float64 right_value8 = strtod(buffer, NULL);
                retval = 0;
!               retval = left_value8 < right_value8 ? -1 : retval;
!               retval = left_value8 > right_value8 ?  1 : retval;
                break;
                }
              case 16:
                {
                //_Float128 left_value  = *(_Float128 *)left_location;
!               GCOB_FP128 left_value16;
!               memcpy(&left_value16, left_location, 16);
!               GCOB_FP128 right_value16 = strtofp128(buffer, NULL);
                retval = 0;
!               retval = left_value16 < right_value16 ? -1 : retval;
!               retval = left_value16 > right_value16 ?  1 : retval;
                break;
                }
              }
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4500,4509 ****
  
        if( right_refmod )
          {
!         retval = compare_strings(   (char *)left_location,
                                      left_length,
                                      left_all,
!                                     (char *)right_location,
                                      right_length,
                                      right_all);
          compare = true;
--- 4547,4556 ----
  
        if( right_refmod )
          {
!         retval = compare_strings(   reinterpret_cast<char *>(left_location),
                                      left_length,
                                      left_all,
!                                     reinterpret_cast<char *>(right_location),
                                      right_length,
                                      right_all);
          compare = true;
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4521,4532 ****
        // VAL5 EQUAL "005" is TRUE
        if( left_side->type == FldLiteralA )
          {
!         left_location = (unsigned char *)left_side->data;
          left_length   = left_side->capacity;
          }
  
        static size_t right_string_size = MINIMUM_ALLOCATION_SIZE;
!       static char *right_string = (char *)malloc(right_string_size);
  
        right_string = format_for_display_internal(
                               &right_string,
--- 4568,4580 ----
        // VAL5 EQUAL "005" is TRUE
        if( left_side->type == FldLiteralA )
          {
!         left_location = reinterpret_cast<unsigned char *>(left_side->data);
          left_length   = left_side->capacity;
          }
  
        static size_t right_string_size = MINIMUM_ALLOCATION_SIZE;
!       static char *right_string 
!                               = static_cast<char *>(malloc(right_string_size));
  
        right_string = format_for_display_internal(
                               &right_string,
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4550,4556 ****
          left_length -= 1;
          }
  
!       char *right_fixed;
        if( *right_string == internal_plus || *right_string == internal_minus )
          {
          right_fixed = right_string + 1;
--- 4598,4604 ----
          left_length -= 1;
          }
  
!       const char *right_fixed;
        if( *right_string == internal_plus || *right_string == internal_minus )
          {
          right_fixed = right_string + 1;
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4560,4566 ****
          right_fixed = right_string;
          }
  
!       retval = compare_strings(   (char *)left_location,
                                    left_length,
                                    left_all,
                                    right_fixed,
--- 4608,4614 ----
          right_fixed = right_string;
          }
  
!       retval = compare_strings(   reinterpret_cast<char *>(left_location),
                                    left_length,
                                    left_all,
                                    right_fixed,
*************** sort_contents(unsigned char       *conte
*** 4793,4808 ****
  
  extern "C"
  void
! __gg__sort_table( cblc_field_t    *table,
!                   size_t           table_o,
!                   size_t          depending_on,
!                   size_t          nkeys,
!                   cblc_field_t  **keys,
!                   size_t         *ascending,
!                   int             duplicates )
    {
    size_t buffer_size = 128;
!   unsigned char *contents = (unsigned char *)malloc(buffer_size);
    size_t offset = 0;
    std::vector<size_t>offsets;
    size_t record_size = table->capacity;
--- 4841,4856 ----
  
  extern "C"
  void
! __gg__sort_table( const cblc_field_t    *table,
!                   size_t                 table_o,
!                   size_t                 depending_on,
!                   size_t                 nkeys,
!                   cblc_field_t         **keys,
!                   size_t                *ascending,
!                   int                    duplicates )
    {
    size_t buffer_size = 128;
!   unsigned char *contents = static_cast<unsigned char *>(malloc(buffer_size));
    size_t offset = 0;
    std::vector<size_t>offsets;
    size_t record_size = table->capacity;
*************** __gg__sort_table( cblc_field_t    *table
*** 4814,4820 ****
      while( offset + sizeof(size_t) + record_size > buffer_size )
        {
        buffer_size *= 2;
!       contents = (unsigned char *)realloc(contents, buffer_size);
        }
      offsets.push_back(offset);
      memcpy(contents+offset, &record_size, sizeof(size_t));
--- 4862,4868 ----
      while( offset + sizeof(size_t) + record_size > buffer_size )
        {
        buffer_size *= 2;
!       contents = static_cast<unsigned char *>(realloc(contents, buffer_size));
        }
      offsets.push_back(offset);
      memcpy(contents+offset, &record_size, sizeof(size_t));
*************** init_var_both(cblc_field_t  *var,
*** 4894,4900 ****
      {
      //fprintf(stderr, "ABORTING on %2.2d %s %d\n", var->level, var->name, var->type);
      //abort();
!     var->data = (unsigned char *)malloc(var->capacity);
      }
  
    // Set the "initialized" bit, which is tested in parser_symbol_add to make
--- 4942,4948 ----
      {
      //fprintf(stderr, "ABORTING on %2.2d %s %d\n", var->level, var->name, var->type);
      //abort();
!     var->data = static_cast<unsigned char *>(malloc(var->capacity));
      }
  
    // Set the "initialized" bit, which is tested in parser_symbol_add to make
*************** init_var_both(cblc_field_t  *var,
*** 4920,4930 ****
      // We need to convert the options to the internal native codeset
  
      size_t buffer_size = 4;
!     char *buffer = (char *)malloc(buffer_size);
  
      size_t index = 0;
  
!     cblc_field_t *parent = var->parent;
      switch(parent->type)
        {
        case FldGroup:
--- 4968,4978 ----
      // We need to convert the options to the internal native codeset
  
      size_t buffer_size = 4;
!     char *buffer = static_cast<char *>(malloc(buffer_size));
  
      size_t index = 0;
  
!     const cblc_field_t *parent = var->parent;
      switch(parent->type)
        {
        case FldGroup:
*************** init_var_both(cblc_field_t  *var,
*** 4934,4942 ****
          while(*walker)
            {
            static size_t first_size = MINIMUM_ALLOCATION_SIZE;
!           static char *first = (char *)malloc(first_size);
            static size_t last_size = MINIMUM_ALLOCATION_SIZE;
!           static char *last = (char *)malloc(last_size);
            if( (*walker & 0xFF) == 0xFF )
              {
              strcpy(first, walker);
--- 4982,4990 ----
          while(*walker)
            {
            static size_t first_size = MINIMUM_ALLOCATION_SIZE;
!           static char *first = static_cast<char *>(malloc(first_size));
            static size_t last_size = MINIMUM_ALLOCATION_SIZE;
!           static char *last = static_cast<char *>(malloc(last_size));
            if( (*walker & 0xFF) == 0xFF )
              {
              strcpy(first, walker);
*************** init_var_both(cblc_field_t  *var,
*** 4959,4965 ****
            while(index + strlen(first) + strlen(last) + 3 > buffer_size)
              {
              buffer_size *= 2;
!             buffer = (char *)realloc(buffer, buffer_size);
              }
            strcpy(buffer+index, first);
            index += strlen(first) + 1;
--- 5007,5013 ----
            while(index + strlen(first) + strlen(last) + 3 > buffer_size)
              {
              buffer_size *= 2;
!             buffer = static_cast<char *>(realloc(buffer, buffer_size));
              }
            strcpy(buffer+index, first);
            index += strlen(first) + 1;
*************** init_var_both(cblc_field_t  *var,
*** 4972,4978 ****
        }
      if( index > 0 )
        {
!       buffer = (char *)realloc(buffer, index);
        local_initial = buffer;
        }
      }
--- 5020,5026 ----
        }
      if( index > 0 )
        {
!       buffer = static_cast<char *>(realloc(buffer, index));
        local_initial = buffer;
        }
      }
*************** init_var_both(cblc_field_t  *var,
*** 5012,5018 ****
    // memory to the default.  But if a parent has been initialized, we must not
    // touch our memory:
    bool a_parent_initialized = false;
!   if( var->data && !explicitly )
      {
      while(parent)
        {
--- 5060,5066 ----
    // memory to the default.  But if a parent has been initialized, we must not
    // touch our memory:
    bool a_parent_initialized = false;
!   if( !explicitly )
      {
      while(parent)
        {
*************** init_var_both(cblc_field_t  *var,
*** 5228,5234 ****
          __gg__abort("Unknown variable type");
        }
  
!     char *location = (char *)save_the_location;
  
      there_is_more = false;
      size_t i=0;
--- 5276,5282 ----
          __gg__abort("Unknown variable type");
        }
  
!     char *location = reinterpret_cast<char *>(save_the_location);
  
      there_is_more = false;
      size_t i=0;
*************** init_var_both(cblc_field_t  *var,
*** 5254,5260 ****
          }
        }
  
!     outer_location = (unsigned char *)location;
      } while(there_is_more);
  
    var->data = save_the_location;
--- 5302,5308 ----
          }
        }
  
!     outer_location = reinterpret_cast<unsigned char *>(location);
      } while(there_is_more);
  
    var->data = save_the_location;
*************** alpha_to_alpha_move_from_location(cblc_f
*** 5301,5307 ****
    // and dest are alphanumeric
    dest_length = dest_length ? dest_length : field->capacity;
  
!   char *to         = (char *)field->data + dest_offset;
    const char *from = source_location;
    size_t count     = std::min(dest_length, source_length);
  
--- 5349,5355 ----
    // and dest are alphanumeric
    dest_length = dest_length ? dest_length : field->capacity;
  
!   char *to         = reinterpret_cast<char *>(field->data + dest_offset);
    const char *from = source_location;
    size_t count     = std::min(dest_length, source_length);
  
*************** static void
*** 5397,5403 ****
  alpha_to_alpha_move(cblc_field_t *dest,
                      size_t dest_offset,
                      size_t dest_size,
!                     cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size,
                      bool source_move_all)
--- 5445,5451 ----
  alpha_to_alpha_move(cblc_field_t *dest,
                      size_t dest_offset,
                      size_t dest_size,
!                     const cblc_field_t *source,
                      size_t source_offset,
                      size_t source_size,
                      bool source_move_all)
*************** alpha_to_alpha_move(cblc_field_t *dest,
*** 5405,5411 ****
    alpha_to_alpha_move_from_location(  dest,
                                        dest_offset,
                                        dest_size,
!                                       (char *)(source->data + source_offset),
                                        source_size,
                                        source_move_all);
    }
--- 5453,5459 ----
    alpha_to_alpha_move_from_location(  dest,
                                        dest_offset,
                                        dest_size,
!                                       reinterpret_cast<char *>(source->data + source_offset),
                                        source_size,
                                        source_move_all);
    }
*************** __gg__move( cblc_field_t        *fdest,
*** 5439,5451 ****
    {
    int size_error = 0; // This is the return value
  
-   bool moved = true;
- 
    __int128 value;
    int rdigits;
  
-   size_t min_length;
- 
    cbl_figconst_t source_figconst =
                          (cbl_figconst_t)(fsource->attr & FIGCONST_MASK);
    cbl_field_type_t dest_type   = (cbl_field_type_t)fdest->type;
--- 5487,5495 ----
*************** __gg__move( cblc_field_t        *fdest,
*** 5489,5495 ****
       *  standard COBOL and its use should be avoided
       */
  
!     int special_char;
      if( source_figconst == low_value_e )
        {
        special_char = ascii_to_internal(__gg__low_value_character);
--- 5533,5539 ----
       *  standard COBOL and its use should be avoided
       */
  
!     int special_char = 0; // quiets cppcheck
      if( source_figconst == low_value_e )
        {
        special_char = ascii_to_internal(__gg__low_value_character);
*************** __gg__move( cblc_field_t        *fdest,
*** 5512,5517 ****
--- 5556,5563 ----
      }
    else
      {
+     size_t min_length;
+     bool moved = true;
      switch( dest_type )
        {
        case FldGroup:
*************** __gg__move( cblc_field_t        *fdest,
*** 5592,5600 ****
                // alphanumeric.  We ignore any sign bit, and just
                // move the characters:
  
-               int rdigits;
-               __int128 value;
- 
                size_t source_digits
                  = fsource->digits
                    + ( fsource->rdigits < 0
--- 5638,5643 ----
*************** __gg__move( cblc_field_t        *fdest,
*** 5760,5766 ****
                                                              fsource,
                                                              source_offset,
                                                              source_size);
!             sprintf(ach, "%lu", (size_t)value);
  
              char *pach = ach;
  
--- 5803,5809 ----
                                                              fsource,
                                                              source_offset,
                                                              source_size);
!             sprintf(ach, "%lu", (unsigned long)value);
  
              char *pach = ach;
  
*************** __gg__move( cblc_field_t        *fdest,
*** 5884,5914 ****
              {
              rdigits = get_scaled_rdigits(fdest);
              bool negative = false;
!             __int128 value=0;
              switch(fsource->capacity)
                {
                case 4:
                  {
!                 _Float32 val = *(_Float32 *)(fsource->data+source_offset);
                  if(val < 0)
                    {
                    negative = true;
                    val = -val;
                    }
!                 val *= (_Float32)__gg__power_of_ten(rdigits);
!                 value = (__int128)val;
                  break;
                  }
                case 8:
                  {
!                 _Float64 val = *(_Float64 *)(fsource->data+source_offset);
                  if(val < 0)
                    {
                    negative = true;
                    val = -val;
                    }
                  val *= (_Float32)__gg__power_of_ten(rdigits);
!                 value = (__int128)val;
                  break;
                  }
                case 16:
--- 5927,5957 ----
              {
              rdigits = get_scaled_rdigits(fdest);
              bool negative = false;
!             __int128 value128 = 0;
              switch(fsource->capacity)
                {
                case 4:
                  {
!                 _Float32 val = *PTRCAST(_Float32, fsource->data+source_offset);
                  if(val < 0)
                    {
                    negative = true;
                    val = -val;
                    }
!                 val *= static_cast<_Float32>(__gg__power_of_ten(rdigits));
!                 value128 = (__int128)val;
                  break;
                  }
                case 8:
                  {
!                 _Float64 val = *PTRCAST(_Float64, fsource->data+source_offset);
                  if(val < 0)
                    {
                    negative = true;
                    val = -val;
                    }
                  val *= (_Float32)__gg__power_of_ten(rdigits);
!                 value128 = (__int128)val;
                  break;
                  }
                case 16:
*************** __gg__move( cblc_field_t        *fdest,
*** 5922,5940 ****
                    val = -val;
                    }
                  val *= (_Float32)__gg__power_of_ten(rdigits);
!                 value = (__int128)val;
                  break;
                  }
                }
              if( negative )
                {
!               value = -value;
                }
              __gg__int128_to_qualified_field(
                                    fdest,
                                    dest_offset,
                                    dest_size,
!                                   value,
                                    rdigits,
                                    rounded,
                                    &size_error );
--- 5965,5983 ----
                    val = -val;
                    }
                  val *= (_Float32)__gg__power_of_ten(rdigits);
!                 value128 = (__int128)val;
                  break;
                  }
                }
              if( negative )
                {
!               value128 = -value128;
                }
              __gg__int128_to_qualified_field(
                                    fdest,
                                    dest_offset,
                                    dest_size,
!                                   value128,
                                    rdigits,
                                    rounded,
                                    &size_error );
*************** __gg__move( cblc_field_t        *fdest,
*** 6002,6031 ****
              // We are converted a floating-point value fixed-point
  
              rdigits = get_scaled_rdigits(fdest);
!             GCOB_FP128 value=0;
              switch(fsource->capacity)
                {
                case 4:
                  {
!                 value = *(_Float32 *)(fsource->data+source_offset);
                  break;
                  }
                case 8:
                  {
!                 value = *(_Float64 *)(fsource->data+source_offset);
                  break;
                  }
                case 16:
                  {
                  // value = *(_Float128 *)(fsource->data+source_offset);
!                 memcpy(&value, fsource->data+source_offset, 16);
                  break;
                  }
                }
              __gg__float128_to_qualified_field(
                                      fdest,
                                      dest_offset,
!                                     value,
                                      rounded,
                                      &size_error);
              break;
--- 6045,6074 ----
              // We are converted a floating-point value fixed-point
  
              rdigits = get_scaled_rdigits(fdest);
!             GCOB_FP128 fp128=0;
              switch(fsource->capacity)
                {
                case 4:
                  {
!                 fp128 = *reinterpret_cast<_Float32 *>(fsource->data+source_offset);
                  break;
                  }
                case 8:
                  {
!                 fp128 = *reinterpret_cast<_Float64 *>(fsource->data+source_offset);
                  break;
                  }
                case 16:
                  {
                  // value = *(_Float128 *)(fsource->data+source_offset);
!                 memcpy(&fp128, fsource->data+source_offset, 16);
                  break;
                  }
                }
              __gg__float128_to_qualified_field(
                                      fdest,
                                      dest_offset,
!                                     fp128,
                                      rounded,
                                      &size_error);
              break;
*************** __gg__move( cblc_field_t        *fdest,
*** 6056,6064 ****
  
            case FldNumericDisplay:
              {
-             int rdigits;
-             __int128 value;
- 
              int source_digits = fsource->digits + (fsource->rdigits<0 ? -fsource->rdigits : 0) ;
  
              // Pick up the absolute value of the source
--- 6099,6104 ----
*************** __gg__move( cblc_field_t        *fdest,
*** 6079,6085 ****
                }
  
              // And move them into place:
!             __gg__string_to_alpha_edited( (char *)(fdest->data+dest_offset),
                                            ach,
                                            source_digits,
                                            fdest->picture);
--- 6119,6125 ----
                }
  
              // And move them into place:
!             __gg__string_to_alpha_edited( reinterpret_cast<char *>(fdest->data+dest_offset),
                                            ach,
                                            source_digits,
                                            fdest->picture);
*************** __gg__move( cblc_field_t        *fdest,
*** 6089,6095 ****
            default:
              {
              static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
!             static char *display_string = (char *)malloc(display_string_size);
  
              size_t display_string_length = dest_size;
              __gg__realloc_if_necessary( &display_string,
--- 6129,6135 ----
            default:
              {
              static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
!             static char *display_string = static_cast<char *>(malloc(display_string_size));
  
              size_t display_string_length = dest_size;
              __gg__realloc_if_necessary( &display_string,
*************** __gg__move( cblc_field_t        *fdest,
*** 6122,6133 ****
                                  &display_string,
                                  &display_string_size,
                                  fsource,
!                                 (unsigned char *)(fsource->data+source_offset),
                                  source_size,
                                  source_flags && REFER_T_ADDRESS_OF);
                display_string_length = strlen(display_string);
                }
!             __gg__string_to_alpha_edited( (char *)(fdest->data+dest_offset),
                                            display_string,
                                            display_string_length,
                                            fdest->picture);
--- 6162,6173 ----
                                  &display_string,
                                  &display_string_size,
                                  fsource,
!                                 reinterpret_cast<unsigned char *>(fsource->data+source_offset),
                                  source_size,
                                  source_flags && REFER_T_ADDRESS_OF);
                display_string_length = strlen(display_string);
                }
!             __gg__string_to_alpha_edited( reinterpret_cast<char *>(fdest->data+dest_offset),
                                            display_string,
                                            display_string_length,
                                            fdest->picture);
*************** __gg__move( cblc_field_t        *fdest,
*** 6152,6163 ****
                {
                case 4:
                  {
!                 *(float *)(fdest->data+dest_offset) = strtof(ach, NULL);
                  break;
                  }
                case 8:
                  {
!                 *(double *)(fdest->data+dest_offset) = strtod(ach, NULL);
                  break;
                  }
                case 16:
--- 6192,6203 ----
                {
                case 4:
                  {
!                 *PTRCAST(float, fdest->data+dest_offset) = strtod(ach, NULL);
                  break;
                  }
                case 8:
                  {
!                 *PTRCAST(double, fdest->data+dest_offset) = strtod(ach, NULL);
                  break;
                  }
                case 16:
*************** __gg__move( cblc_field_t        *fdest,
*** 6167,6173 ****
                  memcpy(fdest->data+dest_offset, &t, 16);
                  break;
                  }
-               break;
                }
              break;
              }
--- 6207,6212 ----
*************** __gg__move_literala(cblc_field_t *field,
*** 6296,6302 ****
      case FldAlphaEdited:
        {
        static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
!       static char *display_string = (char *)malloc(display_string_size);
  
        __gg__realloc_if_necessary( &display_string,
                                    &display_string_size,
--- 6335,6341 ----
      case FldAlphaEdited:
        {
        static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
!       static char *display_string = static_cast<char *>(malloc(display_string_size));
  
        __gg__realloc_if_necessary( &display_string,
                                    &display_string_size,
*************** __gg__move_literala(cblc_field_t *field,
*** 6305,6311 ****
        memset(display_string, internal_space, display_string_size);
        size_t len = std::min(display_string_size, strlen);
        memcpy(display_string, str, len);
!       __gg__string_to_alpha_edited( (char *)(field->data+field_offset),
                                      display_string,
                                      field_size,
                                      field->picture);
--- 6344,6350 ----
        memset(display_string, internal_space, display_string_size);
        size_t len = std::min(display_string_size, strlen);
        memcpy(display_string, str, len);
!       __gg__string_to_alpha_edited( reinterpret_cast<char *>(field->data+field_offset),
                                      display_string,
                                      field_size,
                                      field->picture);
*************** __gg__move_literala(cblc_field_t *field,
*** 6322,6333 ****
          {
          case 4:
            {
!           *(float *)(field->data+field_offset) = strtof(ach, NULL);
            break;
            }
          case 8:
            {
!           *(double *)(field->data+field_offset) = strtod(ach, NULL);
            break;
            }
          case 16:
--- 6361,6372 ----
          {
          case 4:
            {
!           *PTRCAST(float, field->data+field_offset) = strtod(ach, NULL);
            break;
            }
          case 8:
            {
!           *PTRCAST(double, field->data+field_offset) = strtod(ach, NULL);
            break;
            }
          case 16:
*************** __gg__move_literala(cblc_field_t *field,
*** 6336,6342 ****
            memcpy(field->data+field_offset, &t, 16);
            break;
            }
-         break;
          }
        break;
        }
--- 6375,6380 ----
*************** __gg__sort_workfile(cblc_file_t    *work
*** 6457,6463 ****
  
    // Read the file into memory
    size_t buffer_size = 128;
!   unsigned char *contents = (unsigned char *)malloc(buffer_size);
    size_t offset = 0;
    std::vector<size_t>offsets;
    size_t bytes_read;
--- 6495,6501 ----
  
    // Read the file into memory
    size_t buffer_size = 128;
!   unsigned char *contents = static_cast<unsigned char *>(malloc(buffer_size));
    size_t offset = 0;
    std::vector<size_t>offsets;
    size_t bytes_read;
*************** __gg__sort_workfile(cblc_file_t    *work
*** 6487,6493 ****
      while( offset + sizeof(size_t) + bytes_read > buffer_size )
        {
        buffer_size *= 2;
!       contents = (unsigned char *)realloc(contents, buffer_size);
        }
      offsets.push_back(offset);
  
--- 6525,6531 ----
      while( offset + sizeof(size_t) + bytes_read > buffer_size )
        {
        buffer_size *= 2;
!       contents = static_cast<unsigned char *>(realloc(contents, buffer_size));
        }
      offsets.push_back(offset);
  
*************** __gg__merge_files( cblc_file_t   *workfi
*** 6586,6592 ****
      return;
      }
  
!   unsigned char *prior_winner = (unsigned char *)malloc(the_biggest);
    *prior_winner = '\0';
  
    for(;;)
--- 6624,6631 ----
      return;
      }
  
!   unsigned char *prior_winner = static_cast<unsigned char *>(malloc(the_biggest));
!   massert(prior_winner);
    *prior_winner = '\0';
  
    for(;;)
*************** normalize_id( const cblc_field_t *refer,
*** 6766,6772 ****
  
    if( refer )
      {
!     unsigned char *data = refer->data + refer_o;
      cbl_figconst_t figconst
        = (cbl_figconst_t)(refer->attr & FIGCONST_MASK);
  
--- 6805,6811 ----
  
    if( refer )
      {
!     const unsigned char *data = refer->data + refer_o;
      cbl_figconst_t figconst
        = (cbl_figconst_t)(refer->attr & FIGCONST_MASK);
  
*************** the_alpha_and_omega_backward( const norm
*** 7007,7013 ****
  
  static
  void
! inspect_backward_format_1(size_t integers[])
    {
    size_t int_index = 0;
    size_t cblc_index = 0;
--- 7046,7052 ----
  
  static
  void
! inspect_backward_format_1(const size_t integers[])
    {
    size_t int_index = 0;
    size_t cblc_index = 0;
*************** inspect_backward_format_1(size_t integer
*** 7020,7028 ****
    std::vector<id_2_result> id_2_results(n_identifier_2);
  
    // Pick up identifier_1, which is the string being inspected
!   cblc_field_t *id1   = __gg__treeplet_1f[cblc_index];
!   size_t        id1_o = __gg__treeplet_1o[cblc_index];
!   size_t        id1_s = __gg__treeplet_1s[cblc_index];
    cblc_index += 1;
    // normalize it, according to the language specification.
    normalized_operand normalized_id_1 = normalize_id(id1, id1_o, id1_s);
--- 7059,7067 ----
    std::vector<id_2_result> id_2_results(n_identifier_2);
  
    // Pick up identifier_1, which is the string being inspected
!   const cblc_field_t *id1   = __gg__treeplet_1f[cblc_index];
!   size_t              id1_o = __gg__treeplet_1o[cblc_index];
!   size_t              id1_s = __gg__treeplet_1s[cblc_index];
    cblc_index += 1;
    // normalize it, according to the language specification.
    normalized_operand normalized_id_1 = normalize_id(id1, id1_o, id1_s);
*************** inspect_backward_format_1(size_t integer
*** 7055,7073 ****
            // We are counting characters.  There is no identifier-3,
            // but we we hard-code the length to one to represent a
            // single character.
!           comparand next_comparand;
            next_comparand.id_2_index = i;
            next_comparand.operation = operation;
            next_comparand.identifier_3.length = 1;
  
!           cblc_field_t *id4_before   = __gg__treeplet_1f  [cblc_index];
!           size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!           size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            normalized_operand normalized_id_4_before
--- 7094,7112 ----
            // We are counting characters.  There is no identifier-3,
            // but we we hard-code the length to one to represent a
            // single character.
!           comparand next_comparand = {};
            next_comparand.id_2_index = i;
            next_comparand.operation = operation;
            next_comparand.identifier_3.length = 1;
  
!           const cblc_field_t *id4_before   = __gg__treeplet_1f  [cblc_index];
!           size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!           size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            normalized_operand normalized_id_4_before
*************** inspect_backward_format_1(size_t integer
*** 7099,7121 ****
  
            for(size_t k=0; k<pair_count; k++)
              {
!             comparand next_comparand;
              next_comparand.id_2_index = i;
              next_comparand.operation = operation;
  
!             cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!             size_t        id3_o = __gg__treeplet_1o[cblc_index];
!             size_t        id3_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!             size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!             size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!             size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!             size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
              next_comparand.identifier_3
--- 7138,7160 ----
  
            for(size_t k=0; k<pair_count; k++)
              {
!             comparand next_comparand = {};
              next_comparand.id_2_index = i;
              next_comparand.operation = operation;
  
!             const cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!             size_t              id3_o = __gg__treeplet_1o[cblc_index];
!             size_t              id3_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             const cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!             size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!             size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             const cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!             size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!             size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
              next_comparand.identifier_3
*************** __gg__inspect_format_1(int backward, siz
*** 7356,7364 ****
    std::vector<id_2_result> id_2_results(n_identifier_2);
  
    // Pick up identifier_1, which is the string being inspected
!   cblc_field_t *id1   = __gg__treeplet_1f[cblc_index];
!   size_t        id1_o = __gg__treeplet_1o[cblc_index];
!   size_t        id1_s = __gg__treeplet_1s[cblc_index];
    cblc_index += 1;
    // normalize it, according to the language specification.
    normalized_operand normalized_id_1
--- 7395,7403 ----
    std::vector<id_2_result> id_2_results(n_identifier_2);
  
    // Pick up identifier_1, which is the string being inspected
!   const cblc_field_t *id1   = __gg__treeplet_1f[cblc_index];
!   size_t              id1_o = __gg__treeplet_1o[cblc_index];
!   size_t              id1_s = __gg__treeplet_1s[cblc_index];
    cblc_index += 1;
    // normalize it, according to the language specification.
    normalized_operand normalized_id_1
*************** __gg__inspect_format_1(int backward, siz
*** 7392,7410 ****
            // We are counting characters.  There is no identifier-3,
            // but we we hard-code the length to one to represent a
            // single character.
!           comparand next_comparand;
            next_comparand.id_2_index = i;
            next_comparand.operation = operation;
            next_comparand.identifier_3.length = 1;
  
!           cblc_field_t *id4_before   = __gg__treeplet_1f  [cblc_index];
!           size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!           size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            normalized_operand normalized_id_4_before
--- 7431,7449 ----
            // We are counting characters.  There is no identifier-3,
            // but we we hard-code the length to one to represent a
            // single character.
!           comparand next_comparand = {};
            next_comparand.id_2_index = i;
            next_comparand.operation = operation;
            next_comparand.identifier_3.length = 1;
  
!           const cblc_field_t *id4_before   = __gg__treeplet_1f  [cblc_index];
!           size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!           size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            normalized_operand normalized_id_4_before
*************** __gg__inspect_format_1(int backward, siz
*** 7436,7458 ****
  
            for(size_t k=0; k<pair_count; k++)
              {
!             comparand next_comparand;
              next_comparand.id_2_index = i;
              next_comparand.operation = operation;
  
!             cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!             size_t        id3_o = __gg__treeplet_1o[cblc_index];
!             size_t        id3_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!             size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!             size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!             size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!             size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
              next_comparand.identifier_3
--- 7475,7497 ----
  
            for(size_t k=0; k<pair_count; k++)
              {
!             comparand next_comparand = {};
              next_comparand.id_2_index = i;
              next_comparand.operation = operation;
  
!             const cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!             size_t              id3_o = __gg__treeplet_1o[cblc_index];
!             size_t              id3_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             const cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!             size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!             size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
!             const cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!             size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!             size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
              cblc_index += 1;
  
              next_comparand.identifier_3
*************** __gg__inspect_format_1(int backward, siz
*** 7681,7687 ****
  
  static
  void
! inspect_backward_format_2(size_t integers[])
    {
    size_t int_index = 0;
    size_t cblc_index = 0;
--- 7720,7726 ----
  
  static
  void
! inspect_backward_format_2(const size_t integers[])
    {
    size_t int_index = 0;
    size_t cblc_index = 0;
*************** inspect_backward_format_2(size_t integer
*** 7711,7732 ****
        {
        case bound_characters_e:
          {
!         comparand next_comparand;
          next_comparand.operation = operation;
  
!         cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!         size_t        id5_o = __gg__treeplet_1o[cblc_index];
!         size_t        id5_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!         size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!         size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!         size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!         size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
          next_comparand.identifier_5
--- 7750,7771 ----
        {
        case bound_characters_e:
          {
!         comparand next_comparand = {};
          next_comparand.operation = operation;
  
!         const cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!         size_t              id5_o = __gg__treeplet_1o[cblc_index];
!         size_t              id5_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         const cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!         size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!         size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         const cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!         size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!         size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
          next_comparand.identifier_5
*************** inspect_backward_format_2(size_t integer
*** 7762,7788 ****
  
          for(size_t k=0; k<pair_count; k++)
            {
!           comparand next_comparand;
            next_comparand.operation = operation;
  
!           cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!           size_t        id3_o = __gg__treeplet_1o[cblc_index];
!           size_t        id3_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!           size_t        id5_o = __gg__treeplet_1o[cblc_index];
!           size_t        id5_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!           size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!           size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            next_comparand.identifier_3 = normalize_id(id3, id3_o, id3_s);
--- 7801,7827 ----
  
          for(size_t k=0; k<pair_count; k++)
            {
!           comparand next_comparand = {};
            next_comparand.operation = operation;
  
!           const cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!           size_t              id3_o = __gg__treeplet_1o[cblc_index];
!           size_t              id3_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!           size_t              id5_o = __gg__treeplet_1o[cblc_index];
!           size_t              id5_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!           size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!           size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            next_comparand.identifier_3 = normalize_id(id3, id3_o, id3_s);
*************** __gg__inspect_format_2(int backward, siz
*** 8059,8080 ****
        {
        case bound_characters_e:
          {
!         comparand next_comparand;
          next_comparand.operation = operation;
  
!         cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!         size_t        id5_o = __gg__treeplet_1o[cblc_index];
!         size_t        id5_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!         size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!         size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!         size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!         size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
          next_comparand.identifier_5
--- 8098,8119 ----
        {
        case bound_characters_e:
          {
!         comparand next_comparand = {} ;
          next_comparand.operation = operation;
  
!         const cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!         size_t              id5_o = __gg__treeplet_1o[cblc_index];
!         size_t              id5_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         const cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!         size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!         size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
!         const cblc_field_t *id4_after   = __gg__treeplet_1f  [cblc_index];
!         size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!         size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
          cblc_index += 1;
  
          next_comparand.identifier_5
*************** __gg__inspect_format_2(int backward, siz
*** 8110,8136 ****
  
          for(size_t k=0; k<pair_count; k++)
            {
!           comparand next_comparand;
            next_comparand.operation = operation;
  
!           cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!           size_t        id3_o = __gg__treeplet_1o[cblc_index];
!           size_t        id3_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!           size_t        id5_o = __gg__treeplet_1o[cblc_index];
!           size_t        id5_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!           size_t        id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!           size_t        id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t        id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            next_comparand.identifier_3 = normalize_id(id3, id3_o, id3_s);
--- 8149,8175 ----
  
          for(size_t k=0; k<pair_count; k++)
            {
!           comparand next_comparand = {};
            next_comparand.operation = operation;
  
!           const cblc_field_t *id3   = __gg__treeplet_1f[cblc_index];
!           size_t              id3_o = __gg__treeplet_1o[cblc_index];
!           size_t              id3_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id5   = __gg__treeplet_1f[cblc_index];
!           size_t              id5_o = __gg__treeplet_1o[cblc_index];
!           size_t              id5_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id4_before   = __gg__treeplet_1f[cblc_index];
!           size_t              id4_before_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_before_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
!           const cblc_field_t *id4_after   = __gg__treeplet_1f[cblc_index];
!           size_t              id4_after_o = __gg__treeplet_1o[cblc_index];
!           size_t              id4_after_s = __gg__treeplet_1s[cblc_index];
            cblc_index += 1;
  
            next_comparand.identifier_3 = normalize_id(id3, id3_o, id3_s);
*************** __gg__inspect_format_4( int backward,
*** 8405,8416 ****
    static size_t psz_before_size      = MINIMUM_ALLOCATION_SIZE;
    static size_t psz_figstring_size   = MINIMUM_ALLOCATION_SIZE;
  
!   static char *psz_input       = (char *)malloc(psz_input_size      );
!   static char *psz_original    = (char *)malloc(psz_original_size   );
!   static char *psz_replacement = (char *)malloc(psz_replacement_size);
!   static char *psz_after       = (char *)malloc(psz_after_size      );
!   static char *psz_before      = (char *)malloc(psz_before_size     );
!   static char *psz_figstring   = (char *)malloc(psz_figstring_size  );
  
    bool all = replacement_size == (size_t)(-1LL);
    if( all )
--- 8444,8455 ----
    static size_t psz_before_size      = MINIMUM_ALLOCATION_SIZE;
    static size_t psz_figstring_size   = MINIMUM_ALLOCATION_SIZE;
  
!   static char *psz_input       = static_cast<char *>(malloc(psz_input_size      ));
!   static char *psz_original    = static_cast<char *>(malloc(psz_original_size   ));
!   static char *psz_replacement = static_cast<char *>(malloc(psz_replacement_size));
!   static char *psz_after       = static_cast<char *>(malloc(psz_after_size      ));
!   static char *psz_before      = static_cast<char *>(malloc(psz_before_size     ));
!   static char *psz_figstring   = static_cast<char *>(malloc(psz_figstring_size  ));
  
    bool all = replacement_size == (size_t)(-1LL);
    if( all )
*************** __gg__inspect_format_4( int backward,
*** 8504,8510 ****
      }
  
    char *pstart = NULL;
!   char *pend = NULL;
    if( backward )
      {
      if( strlen(psz_before) )
--- 8543,8549 ----
      }
  
    char *pstart = NULL;
!   const char *pend = NULL;
    if( backward )
      {
      if( strlen(psz_before) )
*************** move_string(cblc_field_t *field,
*** 8597,8603 ****
      case FldAlphanumeric:
      case FldAlphaEdited:
        {
!       char *to = (char *)(field->data + offset);
        size_t dest_length = length ? length : field->capacity;
        size_t source_length = strlen_from;
        size_t count = std::min(dest_length, source_length);
--- 8636,8642 ----
      case FldAlphanumeric:
      case FldAlphaEdited:
        {
!       char *to = reinterpret_cast<char *>(field->data + offset);
        size_t dest_length = length ? length : field->capacity;
        size_t source_length = strlen_from;
        size_t count = std::min(dest_length, source_length);
*************** brute_force_trim(char *str)
*** 8706,8712 ****
  
  extern "C"
  int
! __gg__string(size_t integers[])
    {
    // The first integer is the count of identifier-2 values.  Call it N
    // The following N integers are the counts of each of the identifier-1 values,
--- 8745,8751 ----
  
  extern "C"
  int
! __gg__string(const size_t integers[])
    {
    // The first integer is the count of identifier-2 values.  Call it N
    // The following N integers are the counts of each of the identifier-1 values,
*************** __gg__string(size_t integers[])
*** 8720,8731 ****
    // And so on
  
    cblc_field_t **ref   = __gg__treeplet_1f;
!   size_t        *ref_o = __gg__treeplet_1o;
!   size_t        *ref_s = __gg__treeplet_1s;
  
    static const int INDEX_OF_POINTER = 1;
  
-   size_t index_int  = 0;
    size_t index_cblc = 0 ;
  
    char figlow[2]   = {ascii_to_internal(__gg__low_value_character), 0x00};
--- 8759,8769 ----
    // And so on
  
    cblc_field_t **ref   = __gg__treeplet_1f;
!   const size_t  *ref_o = __gg__treeplet_1o;
!   const size_t  *ref_s = __gg__treeplet_1s;
  
    static const int INDEX_OF_POINTER = 1;
  
    size_t index_cblc = 0 ;
  
    char figlow[2]   = {ascii_to_internal(__gg__low_value_character), 0x00};
*************** __gg__string(size_t integers[])
*** 8743,8757 ****
      fighigh[0] = ascii_to_internal(__gg__high_value_character);
      }
  
-   // Pick up the number of identifier-2 values
-   size_t N = integers[index_int++];
  
    // Pick up the target
!   cblc_field_t *tgt   = ref[index_cblc];
!   size_t tgt_o        = ref_o[index_cblc];
!   size_t tgt_s        = ref_s[index_cblc];
    index_cblc += 1;
!   char  *dest         = (char *)(tgt->data + tgt_o);
    ssize_t dest_length = tgt_s;
  
    // Skip over the index of POINTER:
--- 8781,8793 ----
      fighigh[0] = ascii_to_internal(__gg__high_value_character);
      }
  
  
    // Pick up the target
!   const cblc_field_t *tgt   = ref[index_cblc];
!   size_t tgt_o              = ref_o[index_cblc];
!   size_t tgt_s              = ref_s[index_cblc];
    index_cblc += 1;
!   char  *dest         = reinterpret_cast<char *>(tgt->data + tgt_o);
    ssize_t dest_length = tgt_s;
  
    // Skip over the index of POINTER:
*************** __gg__string(size_t integers[])
*** 8778,8795 ****
      {
      // We are go for looping through identifier-2 values:
  
      for( size_t i=0; i<N; i++ )
        {
        size_t M = integers[index_int++];
  
        // Pick up the identifier_2 DELIMITED BY value
!       cblc_field_t *id2   = ref[index_cblc];
!       size_t        id2_o = ref_o[index_cblc];
!       size_t        id2_s = ref_s[index_cblc];
        index_cblc += 1;
  
        char *piece;
!       char *piece_end;
        cbl_figconst_t figconst = (cbl_figconst_t) ( id2
                                    ? (id2->attr & FIGCONST_MASK)
                                    : 0 );
--- 8814,8836 ----
      {
      // We are go for looping through identifier-2 values:
  
+     size_t index_int  = 0;
+ 
+     // Pick up the number of identifier-2 values
+     size_t N = integers[index_int++];
+ 
      for( size_t i=0; i<N; i++ )
        {
        size_t M = integers[index_int++];
  
        // Pick up the identifier_2 DELIMITED BY value
!       const cblc_field_t *id2   = ref[index_cblc];
!       size_t              id2_o = ref_o[index_cblc];
!       size_t              id2_s = ref_s[index_cblc];
        index_cblc += 1;
  
        char *piece;
!       const char *piece_end;
        cbl_figconst_t figconst = (cbl_figconst_t) ( id2
                                    ? (id2->attr & FIGCONST_MASK)
                                    : 0 );
*************** __gg__string(size_t integers[])
*** 8816,8839 ****
            piece_end = piece + 1;
            break;
          default:
!           piece = id2 ? (char *)(id2->data + id2_o) : NULL;
            piece_end = id2 ? piece + id2_s : NULL;
            break;
          }
  
!       for(size_t i=0; i<M; i++)
          {
          // Pick up the next identifier-1 source string:
!         cblc_field_t *id1 = ref[index_cblc];
          size_t id1_o = ref_o[index_cblc];
          size_t id1_s = ref_s[index_cblc];
          index_cblc += 1;
  
!         const char *whole = id1 ? (const char *)(id1->data + id1_o): NULL ;
          const char *whole_end = id1 ? whole + id1_s : NULL;
  
          // As usual, we need to cope with figurative constants:
!         cbl_figconst_t figconst = (cbl_figconst_t) ( id1 ? (id1->attr & FIGCONST_MASK) : 0 );
          switch( figconst )
            {
            case low_value_e:
--- 8857,8880 ----
            piece_end = piece + 1;
            break;
          default:
!           piece = id2 ? reinterpret_cast<char *>(id2->data + id2_o) : NULL;
            piece_end = id2 ? piece + id2_s : NULL;
            break;
          }
  
!       for(size_t j=0; j<M; j++)
          {
          // Pick up the next identifier-1 source string:
!         const cblc_field_t *id1 = ref[index_cblc];
          size_t id1_o = ref_o[index_cblc];
          size_t id1_s = ref_s[index_cblc];
          index_cblc += 1;
  
!         const char *whole = id1 ? reinterpret_cast<char *>(id1->data + id1_o): NULL ;
          const char *whole_end = id1 ? whole + id1_s : NULL;
  
          // As usual, we need to cope with figurative constants:
!         figconst = (cbl_figconst_t) ( id1 ? (id1->attr & FIGCONST_MASK) : 0 );
          switch( figconst )
            {
            case low_value_e:
*************** __gg__string(size_t integers[])
*** 8866,8876 ****
                                              whole, whole_end);
            if(found)
              {
! #pragma GCC diagnostic push
! #pragma GCC diagnostic ignored "-Wcast-qual"
!             char *wfound = (char *)found;
! #pragma GCC diagnostic pop
!             whole_end = wfound;
              }
            }
          while(whole < whole_end)
--- 8907,8913 ----
                                              whole, whole_end);
            if(found)
              {
!             whole_end = found;
              }
            }
          while(whole < whole_end)
*************** display_both(cblc_field_t  *field,
*** 8920,8926 ****
               int            advance )
    {
    static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
!   static char *display_string = (char *)malloc(display_string_size);
  
    format_for_display_internal(&display_string,
                                &display_string_size,
--- 8957,8963 ----
               int            advance )
    {
    static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
!   static char *display_string = static_cast<char *>(malloc(display_string_size));
  
    format_for_display_internal(&display_string,
                                &display_string_size,
*************** display_both(cblc_field_t  *field,
*** 8931,8937 ****
  
    // Let's honor the locale of the system, as best we can:
    static size_t converted_size = MINIMUM_ALLOCATION_SIZE;
!   static char *converted = (char *)malloc(converted_size);
  
    internal_to_console(&converted, &converted_size, display_string, strlen(display_string));
  
--- 8968,8974 ----
  
    // Let's honor the locale of the system, as best we can:
    static size_t converted_size = MINIMUM_ALLOCATION_SIZE;
!   static char *converted = static_cast<char *>(malloc(converted_size));
  
    internal_to_console(&converted, &converted_size, display_string, strlen(display_string));
  
*************** display_both(cblc_field_t  *field,
*** 8941,8947 ****
    if(ss == -1)
      {
      fprintf(stderr, "__gg__display() %s %p\n", field->name, qual_data);
!     fprintf(stderr, "__gg__display() %zd\n", converted_size);
      fprintf(stderr, "__gg__display() ");
      for(size_t i=0; i<converted_size; i++)
        {
--- 8978,8984 ----
    if(ss == -1)
      {
      fprintf(stderr, "__gg__display() %s %p\n", field->name, qual_data);
!     fprintf(stderr, "__gg__display() %ld\n", static_cast<long>(converted_size));
      fprintf(stderr, "__gg__display() ");
      for(size_t i=0; i<converted_size; i++)
        {
*************** display_both(cblc_field_t  *field,
*** 8953,8961 ****
  
    if( advance )
      {
!     ss = write( file_descriptor,
!                 "\n",
!                 1);
      }
    }
  
--- 8990,8998 ----
  
    if( advance )
      {
!     write( file_descriptor,
!            "\n",
!            1);
      }
    }
  
*************** __gg__display_clean(cblc_field_t *field,
*** 8994,9013 ****
  
  extern "C"
  void
! __gg__display_string( int     file_descriptor,
!                       char   *str,
!                       size_t  length,
!                       int     advance )
    {
    // Let's honor the locale of the system, as best we can:
    static size_t converted_size = MINIMUM_ALLOCATION_SIZE;
!   static char *converted = (char *)malloc(converted_size);
  
    size_t max_possible = 2 * length;
    if( max_possible > converted_size )
      {
      converted_size = max_possible;
!     converted = (char *)realloc(converted, converted_size);
      }
  
    __gg__ascii_to_console(&converted, &converted_size, str, length);
--- 9031,9050 ----
  
  extern "C"
  void
! __gg__display_string( int           file_descriptor,
!                       const char   *str,
!                       size_t        length,
!                       int           advance )
    {
    // Let's honor the locale of the system, as best we can:
    static size_t converted_size = MINIMUM_ALLOCATION_SIZE;
!   static char *converted = static_cast<char *>(malloc(converted_size));
  
    size_t max_possible = 2 * length;
    if( max_possible > converted_size )
      {
      converted_size = max_possible;
!     converted = static_cast<char *>(realloc(converted, converted_size));
      }
  
    __gg__ascii_to_console(&converted, &converted_size, str, length);
*************** __gg__accept(   enum special_name_t spec
*** 9143,9149 ****
        }
      }
  
!   char *buffer = (char *)malloc(max_chars+1);
    memset(buffer, ascii_space, max_chars);
    buffer[max_chars] = NULLCH;
    size_t i = 0;
--- 9180,9187 ----
        }
      }
  
!   char *buffer = static_cast<char *>(malloc(max_chars+1));
!   massert(buffer);
    memset(buffer, ascii_space, max_chars);
    buffer[max_chars] = NULLCH;
    size_t i = 0;
*************** __gg__binary_value_from_field(   int *rd
*** 9309,9315 ****
  extern "C"
  __int128
  __gg__binary_value_from_qualified_field(int          *rdigits,
!                                         cblc_field_t *var,
                                          size_t        offset,
                                          size_t        size)
    {
--- 9347,9353 ----
  extern "C"
  __int128
  __gg__binary_value_from_qualified_field(int          *rdigits,
!                                         const cblc_field_t *var,
                                          size_t        offset,
                                          size_t        size)
    {
*************** __gg__float128_from_field( cblc_field_t
*** 9342,9348 ****
  
  extern "C"
  GCOB_FP128
! __gg__float128_from_qualified_field( cblc_field_t *field, size_t offset, size_t size)
    {
    GCOB_FP128 retval=0;
    if( field->type == FldFloat || field->type == FldLiteralN )
--- 9380,9386 ----
  
  extern "C"
  GCOB_FP128
! __gg__float128_from_qualified_field(const cblc_field_t *field, size_t offset, size_t size)
    {
    GCOB_FP128 retval=0;
    if( field->type == FldFloat || field->type == FldLiteralN )
*************** __gg__int128_to_qualified_field(cblc_fie
*** 9419,9429 ****
    }
  
  static __int128
! float128_to_int128( int          *rdigits,
!                     cblc_field_t *field,
!                     GCOB_FP128     value,
!                     cbl_round_t   rounded,
!                     int          *compute_error)
    {
    __int128 retval = 0;
    if( value == INFINITY )
--- 9457,9467 ----
    }
  
  static __int128
! float128_to_int128( int                *rdigits,
!                     const cblc_field_t *field,
!                     GCOB_FP128          value,
!                     cbl_round_t         rounded,
!                     int                *compute_error)
    {
    __int128 retval = 0;
    if( value == INFINITY )
*************** float128_to_location( cblc_field_t   *tg
*** 9505,9520 ****
                }
              if( value < 0 )
                {
!               *(float *)(data) = -INFINITY;
                }
              else
                {
!               *(float *)(data) = INFINITY;
                }
              }
            else
              {
!             *(float *)(data) = (float)value;
              }
            break;
  
--- 9543,9558 ----
                }
              if( value < 0 )
                {
!               *PTRCAST(float, data) = -INFINITY;
                }
              else
                {
!               *PTRCAST(float, data) = INFINITY;
                }
              }
            else
              {
!             *PTRCAST(float, data) = static_cast<float>(value);
              }
            break;
  
*************** float128_to_location( cblc_field_t   *tg
*** 9528,9543 ****
                }
              if( value < 0 )
                {
!               *(double *)(data) = -INFINITY;
                }
              else
                {
!               *(double *)(data) = INFINITY;
                }
              }
            else
              {
!             *(double *)(data) = (double)value;
              }
            break;
  
--- 9566,9581 ----
                }
              if( value < 0 )
                {
!               *PTRCAST(double, data) = -INFINITY;
                }
              else
                {
!               *PTRCAST(double, data) = INFINITY;
                }
              }
            else
              {
!             *PTRCAST(double, data) = static_cast<double>(value);
              }
            break;
  
*************** __gg__set_initial_switch_value( )
*** 9738,9744 ****
    __int128 bit = 1;
    char ach[129];
    memset(ach, 0, sizeof(ach));
!   char *p = getenv("UPSI");
    if( p )
      {
      snprintf(ach, sizeof(ach), "%s", p);
--- 9776,9782 ----
    __int128 bit = 1;
    char ach[129];
    memset(ach, 0, sizeof(ach));
!   const char *p = getenv("UPSI");
    if( p )
      {
      snprintf(ach, sizeof(ach), "%s", p);
*************** is_numeric_display_numeric(cblc_field_t
*** 9771,9777 ****
    bool leading  = !!(field->attr & leading_e);
    bool separate = !!(field->attr & separate_e);
  
!   char *digits   = (char *)(field->data + offset);
    char *digits_e = digits + size;
  
    if( leading && separate && signable )
--- 9809,9815 ----
    bool leading  = !!(field->attr & leading_e);
    bool separate = !!(field->attr & separate_e);
  
!   char *digits   = reinterpret_cast<char *>(field->data + offset);
    char *digits_e = digits + size;
  
    if( leading && separate && signable )
*************** is_numeric_display_numeric(cblc_field_t
*** 9843,9855 ****
    }
  
  static int
! is_packed_numeric(cblc_field_t *field, size_t offset, size_t size)
    {
    int retval = 1;
    bool is_comp6 = !!(field->attr&packed_no_sign_e);
    int digits = field->digits;
    bool signable = !!(field->attr & signable_e);
!   unsigned char *bytes   = field->data + offset;
  
    int nybble   = 0;
    int nybble_e = nybble + digits;
--- 9881,9893 ----
    }
  
  static int
! is_packed_numeric(const cblc_field_t *field, size_t offset, size_t size)
    {
    int retval = 1;
    bool is_comp6 = !!(field->attr&packed_no_sign_e);
    int digits = field->digits;
    bool signable = !!(field->attr & signable_e);
!   const unsigned char *bytes   = field->data + offset;
  
    int nybble   = 0;
    int nybble_e = nybble + digits;
*************** is_packed_numeric(cblc_field_t *field, s
*** 9918,9927 ****
    }
  
  static int
! is_alpha_a_number(cblc_field_t *field, size_t offset, size_t size)
    {
    int retval = 1;
!   unsigned char *bytes = (field->data + offset);
    for( size_t i=0; i<size; i++ )
      {
      unsigned char ch = bytes[i];
--- 9956,9967 ----
    }
  
  static int
! is_alpha_a_number(const cblc_field_t *field,
!                   size_t offset,
!                   size_t size)
    {
    int retval = 1;
!   const unsigned char *bytes = (field->data + offset);
    for( size_t i=0; i<size; i++ )
      {
      unsigned char ch = bytes[i];
*************** __gg__classify( classify_t type,
*** 9945,9951 ****
    // The default answer is TRUE
    int retval = 1;
  
!   const unsigned char *alpha = (unsigned char *)(field->data+offset);
  
    size_t str_length = size;
  
--- 9985,9991 ----
    // The default answer is TRUE
    int retval = 1;
  
!   const unsigned char *alpha = reinterpret_cast<unsigned char *>(field->data+offset);
  
    size_t str_length = size;
  
*************** __gg__accept_envar( cblc_field_t *tgt,
*** 10095,10101 ****
    if( env_length < name_length+1 )
      {
      env_length = name_length+1;
!     env = (char *)realloc(env, env_length);
      }
    memcpy(env, name->data + name_offset, name_length);
    env[name_length] = '\0';
--- 10135,10141 ----
    if( env_length < name_length+1 )
      {
      env_length = name_length+1;
!     env = static_cast<char *>(realloc(env, env_length));
      }
    memcpy(env, name->data + name_offset, name_length);
    env[name_length] = '\0';
*************** __gg__accept_envar( cblc_field_t *tgt,
*** 10107,10113 ****
    __gg__internal_to_console_in_place(trimmed_env, strlen(trimmed_env));
  
    // Pick up the environment variable, and convert it to the internal codeset
!   char *p = getenv(trimmed_env);
    if(p)
      {
      char *pp = strdup(p);
--- 10147,10153 ----
    __gg__internal_to_console_in_place(trimmed_env, strlen(trimmed_env));
  
    // Pick up the environment variable, and convert it to the internal codeset
!   const char *p = getenv(trimmed_env);
    if(p)
      {
      char *pp = strdup(p);
*************** __gg__set_envar(cblc_field_t    *name,
*** 10146,10159 ****
    if( env_length < name_length+1 )
      {
      env_length = name_length+1;
!     env = (char *)realloc(env, env_length);
      }
    if( val_length < value_length+1 )
      {
      val_length = value_length+1;
!     val = (char *)realloc(val, val_length);
      }
  
    // The name and the value arrive in the internal codeset:
    memcpy(env, name->data+name_offset  , name_length);
    env[name_length] = '\0';
--- 10186,10202 ----
    if( env_length < name_length+1 )
      {
      env_length = name_length+1;
!     env = static_cast<char *>(realloc(env, env_length));
      }
    if( val_length < value_length+1 )
      {
      val_length = value_length+1;
!     val = static_cast<char *>(realloc(val, val_length));
      }
  
+   massert(val);
+   massert(env);
+ 
    // The name and the value arrive in the internal codeset:
    memcpy(env, name->data+name_offset  , name_length);
    env[name_length] = '\0';
*************** command_line_plan_b()
*** 10222,10236 ****
        if( bytes_read )
          {
          char *p = input;
!         char *p_end = p + bytes_read;
          char prior_char = '\0';
          while( p < p_end )
            {
            if( prior_char == '\0' )
              {
              stashed_argc += 1;
!             stashed_argv = (char **)realloc(stashed_argv,
!                                             stashed_argc * sizeof(char *));
              stashed_argv[stashed_argc-1] = p;
              }
            prior_char = *p++;
--- 10265,10279 ----
        if( bytes_read )
          {
          char *p = input;
!         const char *p_end = p + bytes_read;
          char prior_char = '\0';
          while( p < p_end )
            {
            if( prior_char == '\0' )
              {
              stashed_argc += 1;
!             stashed_argv = static_cast<char **>(realloc(stashed_argv,
!                                             stashed_argc * sizeof(char *)));
              stashed_argv[stashed_argc-1] = p;
              }
            prior_char = *p++;
*************** __gg__get_command_line( cblc_field_t *fi
*** 10301,10307 ****
    int retcode;
    command_line_plan_b();
    size_t length = 1;
!   char *retval = (char *)malloc(length);
    *retval = NULLCH;
  
    for( int i=1; i<stashed_argc; i++ )
--- 10344,10351 ----
    int retcode;
    command_line_plan_b();
    size_t length = 1;
!   char *retval = static_cast<char *>(malloc(length));
!   massert(retval);
    *retval = NULLCH;
  
    for( int i=1; i<stashed_argc; i++ )
*************** __gg__get_command_line( cblc_field_t *fi
*** 10309,10315 ****
      while( strlen(retval) + strlen(stashed_argv[i]) + 2 > length )
        {
        length *= 2;
!       retval = (char *)realloc(retval, length);
        }
      if( *retval )
        {
--- 10353,10360 ----
      while( strlen(retval) + strlen(stashed_argv[i]) + 2 > length )
        {
        length *= 2;
!       retval = static_cast<char *>(realloc(retval, length));
!       massert(retval);
        }
      if( *retval )
        {
*************** __gg__get_command_line( cblc_field_t *fi
*** 10337,10348 ****
  
  extern "C"
  void
! __gg__set_pointer(cblc_field_t *target,
!                   size_t        target_o,
!                   int           target_flags,
!                   cblc_field_t *source,
!                   size_t        source_o,
!                   int           source_flags)
    {
    void *source_address;
    if( source_flags & REFER_T_ADDRESS_OF )
--- 10382,10393 ----
  
  extern "C"
  void
! __gg__set_pointer(cblc_field_t       *target,
!                   size_t              target_o,
!                   int                 target_flags,
!                   const cblc_field_t *source,
!                   size_t              source_o,
!                   int                 source_flags)
    {
    void *source_address;
    if( source_flags & REFER_T_ADDRESS_OF )
*************** __gg__set_pointer(cblc_field_t *target,
*** 10355,10361 ****
      // This is SET <something> TO POINTER
      if( source )
        {
!       source_address = *(void **)(source->data + source_o);
        }
      else
        {
--- 10400,10406 ----
      // This is SET <something> TO POINTER
      if( source )
        {
!       source_address = *reinterpret_cast<void **>(source->data + source_o);
        }
      else
        {
*************** __gg__set_pointer(cblc_field_t *target,
*** 10368,10374 ****
      {
      // This is SET ADDRESS OF target TO ....
      // We know it has to be an unqualified LINKAGE level 01 or level 77
!     target->data  = (unsigned char *)source_address;
      // The caller will propogate data + offset to their children.
      }
    else
--- 10413,10419 ----
      {
      // This is SET ADDRESS OF target TO ....
      // We know it has to be an unqualified LINKAGE level 01 or level 77
!     target->data  = reinterpret_cast<unsigned char *>(source_address);
      // The caller will propogate data + offset to their children.
      }
    else
*************** __gg__set_pointer(cblc_field_t *target,
*** 10379,10390 ****
        // This is [almost certainly] INITIALIZE <pointer> when -fdefaultbyte
        // was specified.
        memset( target->data+target_o,
!               *(unsigned char *)source_address,
                target->capacity);
        }
      else
        {
!       *(void **)(target->data+target_o) = source_address;
        }
      }
    }
--- 10424,10435 ----
        // This is [almost certainly] INITIALIZE <pointer> when -fdefaultbyte
        // was specified.
        memset( target->data+target_o,
!               *reinterpret_cast<unsigned char *>(source_address),
                target->capacity);
        }
      else
        {
!       *reinterpret_cast<void **>(target->data+target_o) = source_address;
        }
      }
    }
*************** extern "C"
*** 10467,10473 ****
  void
  __gg__ascii_to_internal_field(cblc_field_t *var)
    {
!   ascii_to_internal_str((char *)var->data, var->capacity);
    }
  
  extern "C"
--- 10512,10518 ----
  void
  __gg__ascii_to_internal_field(cblc_field_t *var)
    {
!   ascii_to_internal_str(reinterpret_cast<char *>(var->data), var->capacity);
    }
  
  extern "C"
*************** void
*** 10519,10525 ****
  __gg__internal_to_console_in_place(char *loc, size_t length)
    {
    static size_t dest_size = MINIMUM_ALLOCATION_SIZE;
!   static char *dest = (char *)malloc(dest_size);
  
    internal_to_console(&dest, &dest_size, loc, length);
    memcpy(loc, dest, length);
--- 10564,10570 ----
  __gg__internal_to_console_in_place(char *loc, size_t length)
    {
    static size_t dest_size = MINIMUM_ALLOCATION_SIZE;
!   static char *dest = static_cast<char *>(malloc(dest_size));
  
    internal_to_console(&dest, &dest_size, loc, length);
    memcpy(loc, dest, length);
*************** __gg__internal_to_console_in_place(char
*** 10527,10534 ****
  
  extern "C"
  int
! __gg__routine_to_call(char *name,
!                       int  program_id)
    {
    // The list of names is sorted, so at the very least this should be replaced
    // with a binary search:
--- 10572,10579 ----
  
  extern "C"
  int
! __gg__routine_to_call(const char *name,
!                       int         program_id)
    {
    // The list of names is sorted, so at the very least this should be replaced
    // with a binary search:
*************** __gg__routine_to_call(char *name,
*** 10544,10553 ****
    char **names = *(it->second);
  
    int retval = -1;
-   int i=0;
  
    if( names )
      {
      while(*names)
        {
        if( strstr(*names, name) )
--- 10589,10598 ----
    char **names = *(it->second);
  
    int retval = -1;
  
    if( names )
      {
+     int i=0;
      while(*names)
        {
        if( strstr(*names, name) )
*************** __gg__routine_to_call(char *name,
*** 10569,10582 ****
  
  extern "C"
  __int128
! __gg__fetch_call_by_value_value(cblc_field_t *field,
                                  size_t field_o,
                                  size_t field_s)
  
    {
    int rdigits;
!   unsigned char *data = field->data + field_o;
!   size_t         length = field_s;
  
    __int128 retval = 0;
    switch(field->type)
--- 10614,10627 ----
  
  extern "C"
  __int128
! __gg__fetch_call_by_value_value(const cblc_field_t *field,
                                  size_t field_o,
                                  size_t field_s)
  
    {
    int rdigits;
!   unsigned char *data   = field->data + field_o;
!   const size_t   length = field_s;
  
    __int128 retval = 0;
    switch(field->type)
*************** __gg__fetch_call_by_value_value(cblc_fie
*** 10585,10591 ****
      case FldAlphanumeric:
      case FldAlphaEdited:
      case FldLiteralA:
!       retval = *(char *)data;
        break;
  
      case FldFloat:
--- 10630,10636 ----
      case FldAlphanumeric:
      case FldAlphaEdited:
      case FldLiteralA:
!       retval = *reinterpret_cast<char *>(data);
        break;
  
      case FldFloat:
*************** __gg__fetch_call_by_value_value(cblc_fie
*** 10593,10603 ****
        switch(length)
          {
          case 4:
!           *(float *)(&retval) = *(float *)data;
            break;
  
          case 8:
!           *(double *)(&retval) = *(double *)data;
            break;
  
          case 16:
--- 10638,10648 ----
        switch(length)
          {
          case 4:
!           *PTRCAST(float, &retval) = *PTRCAST(float, data);
            break;
  
          case 8:
!           *PTRCAST(double, &retval) = *PTRCAST(double, data);
            break;
  
          case 16:
*************** __gg__assign_value_from_stack(cblc_field
*** 10654,10664 ****
        switch(dest->capacity)
          {
          case 4:
!           *(float *)(dest->data) = *(float *)&parameter;
            break;
  
          case 8:
!           *(double *)(dest->data) = *(double *)&parameter;
            break;
  
          case 16:
--- 10699,10709 ----
        switch(dest->capacity)
          {
          case 4:
!           *PTRCAST(float, dest->data) = *PTRCAST(float, (&parameter));
            break;
  
          case 8:
!           *PTRCAST(double, dest->data) = *PTRCAST(double, (&parameter));
            break;
  
          case 16:
*************** __gg__assign_value_from_stack(cblc_field
*** 10692,10719 ****
  
  extern "C"
  int
! __gg__literaln_alpha_compare(char *left_side,
!                              cblc_field_t *right,
!                              size_t        offset,
!                              size_t        length,
!                              int  flags)
    {
    int retval;
    if( length == 0 )
      {
      length = right->capacity;
      }
!   retval = compare_strings(   (char *)left_side,
                                strlen(left_side),
                                false,
!                               (char *)right->data + offset,
                                length,
                                !!(flags & REFER_T_MOVE_ALL) );
    return retval;
    }
  
  static char *
! string_in(char *str, char *str_e, char *frag, char *frag_e)
    {
    // This simple routine could be improved.  Instead of using memcmp, we could
    // use established, albeit complex, techniques of string searching:
--- 10737,10767 ----
  
  extern "C"
  int
! __gg__literaln_alpha_compare(const char         *left_side,
!                              const cblc_field_t *right,
!                              size_t              offset,
!                              size_t              length,
!                              int                 flags)
    {
    int retval;
    if( length == 0 )
      {
      length = right->capacity;
      }
!   retval = compare_strings(   left_side,
                                strlen(left_side),
                                false,
!                               reinterpret_cast<char *>((right->data + offset)),
                                length,
                                !!(flags & REFER_T_MOVE_ALL) );
    return retval;
    }
  
  static char *
! string_in(      char *str,
!           const char *str_e,
!           const char *frag,
!           const char *frag_e)
    {
    // This simple routine could be improved.  Instead of using memcmp, we could
    // use established, albeit complex, techniques of string searching:
*************** string_in(char *str, char *str_e, char *
*** 10743,10753 ****
  
  extern "C"
  int
! __gg__unstring( cblc_field_t *id1,        // The string being unstring
!                 size_t        id1_o,
!                 size_t        id1_s,
                  size_t ndelimiteds,       // The number of DELIMITED entries
!                 char *all_flags,          // The number of ALL flags, one per ndelimiteds
                  size_t nreceivers,        // The number of DELIMITER receivers
                  cblc_field_t *id7,        // The index of characters, both for starting updated at end
                  size_t        id7_o,
--- 10791,10801 ----
  
  extern "C"
  int
! __gg__unstring( const cblc_field_t *id1,        // The string being unstring
!                 size_t              id1_o,
!                 size_t              id1_s,
                  size_t ndelimiteds,       // The number of DELIMITED entries
!                 const char *all_flags,          // The number of ALL flags, one per ndelimiteds
                  size_t nreceivers,        // The number of DELIMITER receivers
                  cblc_field_t *id7,        // The index of characters, both for starting updated at end
                  size_t        id7_o,
*************** __gg__unstring( cblc_field_t *id1,
*** 10766,10783 ****
    // resolved.  Each might have an identifier-5 delimiter, and each might have
    // an identifier-6 count.
  
!   cblc_field_t **id2   = __gg__treeplet_1f;      // The delimiting strings; one per ndelimiteds
!   size_t        *id2_o = __gg__treeplet_1o;
!   size_t        *id2_s = __gg__treeplet_1s;
!   cblc_field_t **id4   = __gg__treeplet_2f;      // The delimited string; one per nreceiver
!   size_t        *id4_o = __gg__treeplet_2o;
!   size_t        *id4_s = __gg__treeplet_2s;
!   cblc_field_t **id5   = __gg__treeplet_3f;      // The delimiting string; one per receiver
!   size_t        *id5_o = __gg__treeplet_3o;
!   size_t        *id5_s = __gg__treeplet_3s;
!   cblc_field_t **id6   = __gg__treeplet_4f;      // The count of characters examined;  one per receiver
!   size_t        *id6_o = __gg__treeplet_4o;
!   size_t        *id6_s = __gg__treeplet_4s;
  
    // Initialize the state variables
    int overflow = 0;
--- 10814,10835 ----
    // resolved.  Each might have an identifier-5 delimiter, and each might have
    // an identifier-6 count.
  
!   // The delimiting strings; one per ndelimiteds
!   cblc_field_t **id2         = __gg__treeplet_1f;
!   const size_t        *id2_o = __gg__treeplet_1o;
!   const size_t        *id2_s = __gg__treeplet_1s;
!   // The delimited string; one per nreceiver
!   cblc_field_t **id4         = __gg__treeplet_2f;
!   const size_t        *id4_o = __gg__treeplet_2o;
!   const size_t        *id4_s = __gg__treeplet_2s;
!   // The delimiting string; one per receiver
!   cblc_field_t **id5         = __gg__treeplet_3f;
!   const size_t        *id5_o = __gg__treeplet_3o;
!   const size_t        *id5_s = __gg__treeplet_3s;
!   // The count of characters examined;  one per receiver
!   cblc_field_t **id6         = __gg__treeplet_4f;
!   const size_t        *id6_o = __gg__treeplet_4o;
!   const size_t        *id6_s = __gg__treeplet_4s;
  
    // Initialize the state variables
    int overflow = 0;
*************** __gg__unstring( cblc_field_t *id1,
*** 10820,10827 ****
      goto done;
      }
  
!   left  = (char *)(id1->data+id1_o) + pointer-1;
!   right = (char *)(id1->data+id1_o) + id1_s;
  
    if( ndelimiteds == 0 )
      {
--- 10872,10879 ----
      goto done;
      }
  
!   left  = reinterpret_cast<char *>(id1->data+id1_o) + pointer-1;
!   right = reinterpret_cast<char *>(id1->data+id1_o) + id1_s;
  
    if( ndelimiteds == 0 )
      {
*************** __gg__unstring( cblc_field_t *id1,
*** 10919,10926 ****
          default:
            pfound = string_in( left,
                                right,
!                               (char *)(id2[i]->data+id2_o[i]),
!                               (char *)(id2[i]->data+id2_o[i]) + id2_s[i]);
            break;
          }
  
--- 10971,10979 ----
          default:
            pfound = string_in( left,
                                right,
!                               reinterpret_cast<char *>(id2[i]->data+id2_o[i]),
!                               reinterpret_cast<char *>((id2[i]->data+id2_o[i])
!                                                                  + id2_s[i]));
            break;
          }
  
*************** __gg__unstring( cblc_field_t *id1,
*** 10997,11003 ****
          else
            {
            move_string(id5[nreceiver], id5_o[nreceiver], id5_s[nreceiver],
!                       (char *)(id2[ifound]->data+id2_o[ifound]),
                        id2_s[ifound]);
            }
          }
--- 11050,11056 ----
          else
            {
            move_string(id5[nreceiver], id5_o[nreceiver], id5_s[nreceiver],
!                       reinterpret_cast<char *>(id2[ifound]->data+id2_o[ifound]),
                        id2_s[ifound]);
            }
          }
*************** static inline ec_type_t
*** 11092,11106 ****
  local_ec_type_of( file_status_t status )
    {
    int status10 = (int)status / 10;
!   assert( 0 <= status10 ); // was enum, can't be negative. 
!   if( 10 < status10 ) 
      {
      __gg__abort("local_ec_type_of(): status10 out of range");
      }
!   
    static const std::vector<ec_type_t> ec_by_status {
      /* 0 */ ec_none_e, // ec_io_warning_e if low byte is nonzero
!     /* 1 */ ec_io_at_end_e, 
      /* 2 */ ec_io_invalid_key_e,
      /* 3 */ ec_io_permanent_error_e,
      /* 4 */ ec_io_logic_error_e,
--- 11145,11159 ----
  local_ec_type_of( file_status_t status )
    {
    int status10 = (int)status / 10;
!   assert( 0 <= status10 ); // was enum, can't be negative.
!   if( 10 < status10 )
      {
      __gg__abort("local_ec_type_of(): status10 out of range");
      }
! 
    static const std::vector<ec_type_t> ec_by_status {
      /* 0 */ ec_none_e, // ec_io_warning_e if low byte is nonzero
!     /* 1 */ ec_io_at_end_e,
      /* 2 */ ec_io_invalid_key_e,
      /* 3 */ ec_io_permanent_error_e,
      /* 4 */ ec_io_logic_error_e,
*************** local_ec_type_of( file_status_t status )
*** 11122,11132 ****
   */
  struct exception_descr_t {
    bool location;
!   std::set<size_t> files;
  };
  
  struct cbl_exception_t {
!   size_t program, file;
    ec_type_t type;
    cbl_file_mode_t mode;
  };
--- 11175,11186 ----
   */
  struct exception_descr_t {
    bool location;
!   //std::set<size_t> files;
  };
  
  struct cbl_exception_t {
! //  size_t program,
!   size_t file;
    ec_type_t type;
    cbl_file_mode_t mode;
  };
*************** match_declarative( bool enabled,
*** 11168,11176 ****
      }
  
      if( matches && MATCH_DECLARATIVE ) {
!       warnx("                   matches exception      %s (file %zu mode %s)",
              local_ec_type_str(raised.type),
!             raised.file,
              cbl_file_mode_str(raised.mode));
      }
    }
--- 11222,11230 ----
      }
  
      if( matches && MATCH_DECLARATIVE ) {
!       warnx("                   matches exception      %s (file %u mode %s)",
              local_ec_type_str(raised.type),
!             static_cast<unsigned int>(raised.file),
              cbl_file_mode_str(raised.mode));
      }
    }
*************** default_exception_handler( ec_type_t ec
*** 11188,11203 ****
  {
  #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
    /* Declared in errno.h, when available.  */
!   const char *ident = program_invocation_short_name;
  #elif defined (HAVE_GETPROGNAME)
    /* Declared in stdlib.h.  */
!   const char *ident = getprogname();
  #else
    /* Avoid a NULL entry.  */
!   const char *ident = "unnamed_COBOL_program";
  #endif
    static bool first_time = true;
!   static int priority = LOG_INFO, option = LOG_PERROR, facility = LOG_USER;
    ec_disposition_t disposition = ec_category_fatal_e;
  
    if( first_time ) {
--- 11242,11257 ----
  {
  #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
    /* Declared in errno.h, when available.  */
!   static const char * const ident = program_invocation_short_name;
  #elif defined (HAVE_GETPROGNAME)
    /* Declared in stdlib.h.  */
!   static const char * const ident = getprogname();
  #else
    /* Avoid a NULL entry.  */
!   static const char * const ident = "unnamed_COBOL_program";
  #endif
    static bool first_time = true;
!   static const int priority = LOG_INFO, option = LOG_PERROR, facility = LOG_USER;
    ec_disposition_t disposition = ec_category_fatal_e;
  
    if( first_time ) {
*************** default_exception_handler( ec_type_t ec
*** 11258,11264 ****
      case ec_category_fatal_e:
      case uc_category_fatal_e:
        if( filename ) {
!         syslog(priority, "fatal exception: %s:%zu: %s %s: %s (%s)",
                 program_name,
                 ec_status.lineno,
                 ec_status.statement,
--- 11312,11318 ----
      case ec_category_fatal_e:
      case uc_category_fatal_e:
        if( filename ) {
!         syslog(priority, "fatal exception: %s:%d: %s %s: %s (%s)",
                 program_name,
                 ec_status.lineno,
                 ec_status.statement,
*************** default_exception_handler( ec_type_t ec
*** 11266,11272 ****
                 pec->name,
                 pec->description);
        } else {
!         syslog(priority, "fatal exception: %s:%zu: %s: %s (%s)",
                 program_name,
                 ec_status.lineno,
                 ec_status.statement,
--- 11320,11326 ----
                 pec->name,
                 pec->description);
        } else {
!         syslog(priority, "fatal exception: %s:%d: %s: %s (%s)",
                 program_name,
                 ec_status.lineno,
                 ec_status.statement,
*************** default_exception_handler( ec_type_t ec
*** 11277,11283 ****
        break;
      case ec_category_nonfatal_e:
      case uc_category_nonfatal_e:
!       syslog(priority, "%s:%zu: %s: %s (%s)",
               program_name,
               ec_status.lineno,
               ec_status.statement,
--- 11331,11337 ----
        break;
      case ec_category_nonfatal_e:
      case uc_category_nonfatal_e:
!       syslog(priority, "%s:%d: %s: %s (%s)",
               program_name,
               ec_status.lineno,
               ec_status.statement,
*************** __gg__check_fatal_exception()
*** 11339,11345 ****
--- 11393,11403 ----
      warnx("%s: ec_status is %s", __func__, ec_status.unset()? "unset" : "set");
  
    if( ec_status.copy_environment().unset() )
+     {
      ec_status.update();  // __gg__match_exception was not called first
+     // This is a good time to set the exception code back to zero
+     __gg__exception_code = 0;
+     }
  
    if( ec_status.done() ) { // false for part-handled fatal
      if( MATCH_DECLARATIVE )
*************** __gg__exception_push()
*** 11406,11413 ****
  {
    ec_stack.push(ec_status);
    if( MATCH_DECLARATIVE )
!     warnx("%s: %s: %zu ECs, %zu declaratives", __func__,
!           __gg__exception_statement, enabled_ECs.size(), declaratives.size());
  }
  
  /*
--- 11464,11473 ----
  {
    ec_stack.push(ec_status);
    if( MATCH_DECLARATIVE )
!     warnx("%s: %s: %u ECs, %u declaratives", __func__,
!           __gg__exception_statement,
! 	  static_cast<unsigned int>(enabled_ECs.size()),
! 	  static_cast<unsigned int>(declaratives.size()));
  }
  
  /*
*************** __gg__exception_pop()
*** 11421,11428 ****
    ec_stack.pop();
    ec_status.reset_environment();
    if( MATCH_DECLARATIVE )
!     warnx("%s: %s: %zu ECs, %zu declaratives", __func__,
!           __gg__exception_statement, enabled_ECs.size(), declaratives.size());
    __gg__check_fatal_exception();
  }
  
--- 11481,11490 ----
    ec_stack.pop();
    ec_status.reset_environment();
    if( MATCH_DECLARATIVE )
!     warnx("%s: %s: %u ECs, %u declaratives", __func__,
!           __gg__exception_statement,
! 	  static_cast<unsigned int>(enabled_ECs.size()),
! 	  static_cast<unsigned int>(declaratives.size()));
    __gg__check_fatal_exception();
  }
  
*************** __gg__clear_exception()
*** 11436,11446 ****
  
  void
  cbl_enabled_exception_t::dump( int i ) const {
!   warnx("cbl_enabled_exception_t: %2d  {%s, %s, %zu}",
          i,
          location? "location" : "    none",
          local_ec_type_str(ec),
!         file );
  }
  
  /*
--- 11498,11508 ----
  
  void
  cbl_enabled_exception_t::dump( int i ) const {
!   warnx("cbl_enabled_exception_t: %2d  {%s, %s, %u}",
          i,
          location? "location" : "    none",
          local_ec_type_str(ec),
!         static_cast<unsigned int>(file) );
  }
  
  /*
*************** cbl_enabled_exception_t::dump( int i ) c
*** 11450,11456 ****
   * specific EC.  It's matched based on the file's status, irrespective of
   * whether or not EC-I-O is enabled.  USE Format 1 Declaratives are honored
   * regardless of any >>TURN directive.
!  * 
   * An EC is enabled by the >>TURN directive.  The only ECs that can be disabled
   * are those that were explicitly enabled.  If EC-I-O is enabled, and mentioned
   * in a Declarative with USE Format 3, then it is matched just like any other.
--- 11512,11518 ----
   * specific EC.  It's matched based on the file's status, irrespective of
   * whether or not EC-I-O is enabled.  USE Format 1 Declaratives are honored
   * regardless of any >>TURN directive.
!  *
   * An EC is enabled by the >>TURN directive.  The only ECs that can be disabled
   * are those that were explicitly enabled.  If EC-I-O is enabled, and mentioned
   * in a Declarative with USE Format 3, then it is matched just like any other.
*************** __gg__match_exception( cblc_field_t *ind
*** 11465,11483 ****
  
    auto ec = ec_status.update().unhandled();
  
!   if( ec != ec_none_e ) { 
      /*
!      * An EC was raised and was not handled by the statement. 
!      * We know the EC and, for I/O, the current file and its mode. 
!      * Scan declaratives for a match: 
       *   - EC is enabled or program has a Format 1 Declarative
       *   - EC matches the Declarative's USE statement
!      * Format 1 declaratives apply only to EC-I-O, whether or not enabled. 
       * Format 1 may be restricted to a particular mode (for all files).
!      * Format 1 and 3 may be restricted to a set of files. 
       */
      auto f = ec_status.file_status();
!     cbl_exception_t raised = { 0, f.ifile, ec, f.mode };
      bool enabled = enabled_ECs.match(ec);
  
      if( MATCH_DECLARATIVE ) enabled_ECs.dump("match_exception enabled");
--- 11527,11549 ----
  
    auto ec = ec_status.update().unhandled();
  
!   if( ec != ec_none_e ) {
      /*
!      * An EC was raised and was not handled by the statement.
!      * We know the EC and, for I/O, the current file and its mode.
!      * Scan declaratives for a match:
       *   - EC is enabled or program has a Format 1 Declarative
       *   - EC matches the Declarative's USE statement
!      * Format 1 declaratives apply only to EC-I-O, whether or not enabled.
       * Format 1 may be restricted to a particular mode (for all files).
!      * Format 1 and 3 may be restricted to a set of files.
       */
+ 
+     // This is a good time to set the actual exception code back to zero.
+     __gg__exception_code = 0;
+ 
      auto f = ec_status.file_status();
!     cbl_exception_t raised = { /*0,*/ f.ifile, ec, f.mode };
      bool enabled = enabled_ECs.match(ec);
  
      if( MATCH_DECLARATIVE ) enabled_ECs.dump("match_exception enabled");
*************** __gg__match_exception( cblc_field_t *ind
*** 11490,11497 ****
      if( p == declaratives.end() ) {
        if( MATCH_DECLARATIVE ) {
          warnx("__gg__match_exception:%d: raised exception "
!               "%s not matched (%zu enabled)", __LINE__,
!               local_ec_type_str(ec), enabled_ECs.size());
        }
      } else {
        isection = p->section;
--- 11556,11564 ----
      if( p == declaratives.end() ) {
        if( MATCH_DECLARATIVE ) {
          warnx("__gg__match_exception:%d: raised exception "
!               "%s not matched (%u enabled)", __LINE__,
!               local_ec_type_str(ec),
! 	      static_cast<unsigned int>(enabled_ECs.size()));
        }
      } else {
        isection = p->section;
*************** __gg__match_exception( cblc_field_t *ind
*** 11499,11513 ****
  
        if( MATCH_DECLARATIVE ) {
          warnx("__gg__match_exception:%d: matched "
!               "%s against mask %s for section #%zu",
                __LINE__,
                local_ec_type_str(ec),
                local_ec_type_str(p->type),
!               p->section);
        }
      }
!     assert(ec != ec_none_e); 
!   } // end EC match logic 
  
    // If a declarative matches the raised exception, return its
    // symbol_table index.
--- 11566,11580 ----
  
        if( MATCH_DECLARATIVE ) {
          warnx("__gg__match_exception:%d: matched "
!               "%s against mask %s for section #%u",
                __LINE__,
                local_ec_type_str(ec),
                local_ec_type_str(p->type),
!               static_cast<unsigned int>(p->section));
        }
      }
!     assert(ec != ec_none_e);
!   } // end EC match logic
  
    // If a declarative matches the raised exception, return its
    // symbol_table index.
*************** __gg__pseudo_return_flush()
*** 11581,11600 ****
  
  extern "C"
  GCOB_FP128
! __gg__float128_from_location(cblc_field_t *var, unsigned char *location)
    {
    GCOB_FP128 retval = 0;
    switch( var->capacity )
      {
      case 4:
        {
!       retval = *(_Float32 *)location;
        break;
        }
  
      case 8:
        {
!       retval = *(_Float64 *)location;
        break;
        }
  
--- 11648,11670 ----
  
  extern "C"
  GCOB_FP128
! __gg__float128_from_location( const cblc_field_t *var,
!                               const unsigned char *location)
    {
    GCOB_FP128 retval = 0;
    switch( var->capacity )
      {
      case 4:
        {
!       retval = *reinterpret_cast<_Float32 *>(
!                                     const_cast<unsigned char *>(location));
        break;
        }
  
      case 8:
        {
!       retval = *reinterpret_cast<_Float64 *>(
!                                     const_cast<unsigned char *>(location));
        break;
        }
  
*************** __gg__float128_from_location(cblc_field_
*** 11610,11616 ****
  
  extern "C"
  __int128
! __gg__integer_from_float128(cblc_field_t *field)
    {
    GCOB_FP128 fvalue = __gg__float128_from_location(field, field->data);
    // we round() to take care of the possible 2.99999999999... problem.
--- 11680,11686 ----
  
  extern "C"
  __int128
! __gg__integer_from_float128(const cblc_field_t *field)
    {
    GCOB_FP128 fvalue = __gg__float128_from_location(field, field->data);
    // we round() to take care of the possible 2.99999999999... problem.
*************** __gg__func_exception_status(cblc_field_t
*** 11729,11735 ****
  
  extern "C"
  void
! __gg__set_exception_file(cblc_file_t *file)
    {
    ec_type_t ec = local_ec_type_of( file->io_status );
    if( ec )
--- 11799,11805 ----
  
  extern "C"
  void
! __gg__set_exception_file(const cblc_file_t *file)
    {
    ec_type_t ec = local_ec_type_of( file->io_status );
    if( ec )
*************** __gg__set_exception_file(cblc_file_t *fi
*** 11748,11754 ****
  
  extern "C"
  void
! __gg__func_exception_file(cblc_field_t *dest, cblc_file_t *file)
    {
    char ach[128];
    if( !file )
--- 11818,11825 ----
  
  extern "C"
  void
! __gg__func_exception_file(cblc_field_t      *dest,
!                           const cblc_file_t *file)
    {
    char ach[128];
    if( !file )
*************** __gg__set_exception_code(ec_type_t ec, i
*** 11833,11839 ****
      last_exception_statement      = __gg__exception_statement    ;
  
      // These are set in __gg__set_exception_file just before this routine is
!     // called.  In cases where the ec is not a file-i-o operation, we clear 
      // them here:
      if( !(ec & ec_io_e) )
        {
--- 11904,11910 ----
      last_exception_statement      = __gg__exception_statement    ;
  
      // These are set in __gg__set_exception_file just before this routine is
!     // called.  In cases where the ec is not a file-i-o operation, we clear
      // them here:
      if( !(ec & ec_io_e) )
        {
*************** __gg__float128_from_int128(cblc_field_t
*** 11932,11947 ****
  
  extern "C"
  int
! __gg__is_float_infinite(cblc_field_t *source, size_t offset)
    {
    int retval = 0;
    switch(source->capacity)
      {
      case 4:
!       retval = fpclassify(  *(_Float32*)(source->data+offset)) == FP_INFINITE;
        break;
      case 8:
!       retval = fpclassify(  *(_Float64*)(source->data+offset)) == FP_INFINITE;
        break;
      case 16:
        // retval = *(_Float128*)(source->data+offset) == INFINITY;
--- 12003,12018 ----
  
  extern "C"
  int
! __gg__is_float_infinite(const cblc_field_t *source, size_t offset)
    {
    int retval = 0;
    switch(source->capacity)
      {
      case 4:
!       retval = fpclassify(  *reinterpret_cast<_Float32*>(source->data+offset)) == FP_INFINITE;
        break;
      case 8:
!       retval = fpclassify(  *reinterpret_cast<_Float64*>(source->data+offset)) == FP_INFINITE;
        break;
      case 16:
        // retval = *(_Float128*)(source->data+offset) == INFINITY;
*************** __gg__is_float_infinite(cblc_field_t *so
*** 11955,11964 ****
  
  extern "C"
  int
! __gg__float32_from_128( cblc_field_t *dest,
!                         size_t        dest_offset,
!                         cblc_field_t *source,
!                         size_t        source_offset)
    {
    int retval = 0;
    //_Float128 value = *(_Float128*)(source->data+source_offset);
--- 12026,12035 ----
  
  extern "C"
  int
! __gg__float32_from_128( const cblc_field_t *dest,
!                         size_t              dest_offset,
!                         const cblc_field_t *source,
!                         size_t              source_offset)
    {
    int retval = 0;
    //_Float128 value = *(_Float128*)(source->data+source_offset);
*************** __gg__float32_from_128( cblc_field_t *de
*** 11970,12006 ****
      }
    else
      {
!     *(_Float32 *)(dest->data+dest_offset) = (_Float32)value;
      }
    return retval;
    }
  
  extern "C"
  int
! __gg__float32_from_64(  cblc_field_t *dest,
!                         size_t        dest_offset,
!                         cblc_field_t *source,
!                         size_t        source_offset)
    {
    int retval = 0;
!   _Float64 value = *(_Float64*)(source->data+source_offset);
    if( FP128_FUNC(fabs)(value) > GCOB_FP128_LITERAL (3.4028235E38) )
      {
      retval = 1;
      }
    else
      {
!     *(_Float32 *)(dest->data+dest_offset) = (_Float32)value;
      }
    return retval;
    }
  
  extern "C"
  int
! __gg__float64_from_128( cblc_field_t *dest,
!                         size_t        dest_offset,
!                         cblc_field_t *source,
!                         size_t        source_offset)
    {
    int retval = 0;
    // _Float128 value = *(_Float128*)(source->data+source_offset);
--- 12041,12077 ----
      }
    else
      {
!     *reinterpret_cast<_Float32 *>(dest->data+dest_offset) = (_Float32)value;
      }
    return retval;
    }
  
  extern "C"
  int
! __gg__float32_from_64(  const cblc_field_t *dest,
!                         size_t              dest_offset,
!                         const cblc_field_t *source,
!                         size_t              source_offset)
    {
    int retval = 0;
!   _Float64 value = *reinterpret_cast<_Float64*>(source->data+source_offset);
    if( FP128_FUNC(fabs)(value) > GCOB_FP128_LITERAL (3.4028235E38) )
      {
      retval = 1;
      }
    else
      {
!     *reinterpret_cast<_Float32 *>(dest->data+dest_offset) = (_Float32)value;
      }
    return retval;
    }
  
  extern "C"
  int
! __gg__float64_from_128( const cblc_field_t *dest,
!                         size_t              dest_offset,
!                         const cblc_field_t *source,
!                         size_t              source_offset)
    {
    int retval = 0;
    // _Float128 value = *(_Float128*)(source->data+source_offset);
*************** __gg__float64_from_128( cblc_field_t *de
*** 12012,12018 ****
      }
    else
      {
!     *(_Float64 *)(dest->data+dest_offset) = (_Float64)value;
      }
    return retval;
    }
--- 12083,12089 ----
      }
    else
      {
!     *reinterpret_cast<_Float64 *>(dest->data+dest_offset) = (_Float64)value;
      }
    return retval;
    }
*************** __gg__pop_local_variables()
*** 12084,12090 ****
  
  extern "C"
  void
! __gg__copy_as_big_endian(unsigned char *dest, unsigned char *source)
    {
    // copy eight bytes of source to dest, flipping the endianness
    for(size_t i=0; i<8; i++)
--- 12155,12162 ----
  
  extern "C"
  void
! __gg__copy_as_big_endian( unsigned char *dest,
!                           const unsigned char *source)
    {
    // copy eight bytes of source to dest, flipping the endianness
    for(size_t i=0; i<8; i++)
*************** __gg__codeset_figurative_constants()
*** 12107,12113 ****
  
  extern "C"
  unsigned char *
! __gg__get_figconst_data(cblc_field_t *field)
    {
    unsigned char *retval = NULL;
    cbl_figconst_t figconst = (cbl_figconst_t)(size_t)(field->initial);
--- 12179,12185 ----
  
  extern "C"
  unsigned char *
! __gg__get_figconst_data(const cblc_field_t *field)
    {
    unsigned char *retval = NULL;
    cbl_figconst_t figconst = (cbl_figconst_t)(size_t)(field->initial);
*************** find_in_dirs(const char *dirs, char *unm
*** 12192,12198 ****
          {
          while( !retval )
            {
!           dirent *entry = readdir(dir);
            if( !entry )
              {
              break;
--- 12264,12270 ----
          {
          while( !retval )
            {
!           const dirent *entry = readdir(dir);
            if( !entry )
              {
              break;
*************** __gg__function_handle_from_cobpath( char
*** 12248,12254 ****
      {
      handle_executable = dlopen(NULL, RTLD_LAZY);
      }
!   if( !retval )
      {
      retval = dlsym(handle_executable, unmangled_name);
      }
--- 12320,12326 ----
      {
      handle_executable = dlopen(NULL, RTLD_LAZY);
      }
!   //if( !retval )
      {
      retval = dlsym(handle_executable, unmangled_name);
      }
*************** __gg__function_handle_from_cobpath( char
*** 12272,12285 ****
  
  extern "C"
  void
! __gg__just_mangle_name( cblc_field_t *field,
!                         char        **mangled_name
                          )
    {
    static char ach_name[1024];
    static char ach_unmangled[1024];
    static char ach_mangled[1024];
  
    size_t         length;
    length = field->capacity;
    memcpy(ach_name, field->data, length);
--- 12344,12360 ----
  
  extern "C"
  void
! __gg__just_mangle_name( const cblc_field_t  *field,
!                         char               **mangled_name
                          )
    {
    static char ach_name[1024];
    static char ach_unmangled[1024];
    static char ach_mangled[1024];
  
+   assert(field);
+   assert(field->data);
+ 
    size_t         length;
    length = field->capacity;
    memcpy(ach_name, field->data, length);
*************** __gg__just_mangle_name( cblc_field_t *fi
*** 12293,12299 ****
  
    bool is_pointer = false;
  
!   if( (field && field->type == FldPointer) )
      {
      is_pointer = true;
      }
--- 12368,12374 ----
  
    bool is_pointer = false;
  
!   if( field->type == FldPointer )
      {
      is_pointer = true;
      }
*************** __gg__just_mangle_name( cblc_field_t *fi
*** 12317,12324 ****
  
  extern "C"
  void *
! __gg__function_handle_from_literal(int   program_id,
!                                    char *literal)
    {
    void *retval = NULL;
    static char ach_unmangled[1024];
--- 12392,12399 ----
  
  extern "C"
  void *
! __gg__function_handle_from_literal(int         program_id,
!                                    const char *literal)
    {
    void *retval = NULL;
    static char ach_unmangled[1024];
*************** __gg__function_handle_from_literal(int
*** 12346,12352 ****
        }
      PFUNC **pointers_p = it->second;
      PFUNC  *pointers   = *pointers_p;
!     retval = (void *)pointers[function_index];
      }
    else
      {
--- 12421,12427 ----
        }
      PFUNC **pointers_p = it->second;
      PFUNC  *pointers   = *pointers_p;
!     retval = reinterpret_cast<void *>(pointers[function_index]);
      }
    else
      {
*************** __gg__function_handle_from_literal(int
*** 12358,12367 ****
  
  extern "C"
  void *
! __gg__function_handle_from_name(int           program_id,
!                                 cblc_field_t *field,
!                                 size_t        offset,
!                                 size_t        length )
    {
    void *retval = NULL;
    static char ach_name[1024];
--- 12433,12442 ----
  
  extern "C"
  void *
! __gg__function_handle_from_name(int                 program_id,
!                                 const cblc_field_t *field,
!                                 size_t              offset,
!                                 size_t              length )
    {
    void *retval = NULL;
    static char ach_name[1024];
*************** __gg__function_handle_from_name(int
*** 12399,12405 ****
        }
      PFUNC **pointers_p = it->second;
      PFUNC  *pointers   = *pointers_p;
!     retval = (void *)pointers[function_index];
      }
    else
      {
--- 12474,12480 ----
        }
      PFUNC **pointers_p = it->second;
      PFUNC  *pointers   = *pointers_p;
!     retval = reinterpret_cast<void *>(pointers[function_index]);
      }
    else
      {
*************** __gg__mirror_range( size_t         nrows
*** 12435,12444 ****
                      cblc_field_t  *src,     // The row
                      size_t         src_o,
                      size_t         nspans,  // The number of spans
!                     size_t        *spans,
                      size_t         table,
                      size_t         ntbl,
!                     size_t        *tbls)
    {
    static std::unordered_map<size_t, size_t> rows_in_table;
    static std::unordered_map<size_t, size_t> widths_of_table;
--- 12510,12519 ----
                      cblc_field_t  *src,     // The row
                      size_t         src_o,
                      size_t         nspans,  // The number of spans
!                     const size_t  *spans,
                      size_t         table,
                      size_t         ntbl,
!                     const size_t  *tbls)
    {
    static std::unordered_map<size_t, size_t> rows_in_table;
    static std::unordered_map<size_t, size_t> widths_of_table;
*************** __gg__mirror_range( size_t         nrows
*** 12459,12465 ****
    // We need to know the width of one row of this table, which is different
    // depending on type of src:
  
!   cblc_field_t *parent = src;
    while( parent )
      {
      if( parent->occurs_upper )
--- 12534,12540 ----
    // We need to know the width of one row of this table, which is different
    // depending on type of src:
  
!   const cblc_field_t *parent = src;
    while( parent )
      {
      if( parent->occurs_upper )
*************** __gg__mirror_range( size_t         nrows
*** 12581,12587 ****
          std::vector<size_t> subtable_spans
                                  = spans_in_table [subtable_index];
  
!         unsigned char *subtable_source = source + subtable_offset;
  
          if( subtable_spans.size() == 0 )
            {
--- 12656,12662 ----
          std::vector<size_t> subtable_spans
                                  = spans_in_table [subtable_index];
  
!         const unsigned char *subtable_source = source + subtable_offset;
  
          if( subtable_spans.size() == 0 )
            {
*************** __gg__deallocate( cblc_field_t *target,
*** 12666,12680 ****
      {
      // Target is a pointer.  Free the data location
      int rdigits;
!     void *ptr = (void *)get_binary_value_local(&rdigits,
                                                 target,
                                                 target->data + offset,
                                                 sizeof(void *));
      if( ptr )
        {
        free(ptr);
        // And set the data location to zero
!       *(char **)(target->data + offset) = NULL;
        }
      }
    }
--- 12741,12757 ----
      {
      // Target is a pointer.  Free the data location
      int rdigits;
!     size_t addrv =  get_binary_value_local(&rdigits,
                                                 target,
                                                 target->data + offset,
                                                 sizeof(void *));
+     void *ptr = reinterpret_cast<void *>(addrv);
      if( ptr )
        {
        free(ptr);
        // And set the data location to zero
!       *static_cast<char **>(static_cast<void *>(target->data + offset))
!                                                                       = NULL;
        }
      }
    }
*************** get_the_byte(cblc_field_t *field)
*** 12716,12732 ****
  
  extern "C"
  void
! __gg__allocate( cblc_field_t *first,
!                 size_t        first_offset,
!                 int           initialized,
!                 int           default_byte,
!                 cblc_field_t *f_working_byte,
!                 cblc_field_t *f_local_byte,
!                 cblc_field_t *returning,
!                 size_t        returning_offset)
    {
    int working_byte = get_the_byte(f_working_byte);
    int local_byte   = get_the_byte(f_local_byte);
  
    unsigned char *retval = NULL;
    if( first->attr & based_e )
--- 12793,12810 ----
  
  extern "C"
  void
! __gg__allocate( cblc_field_t       *first,
!                 size_t              first_offset,
!                 int                 initialized,
!                 int                 default_byte,
!                 cblc_field_t       *f_working_byte,
!                 cblc_field_t       *f_local_byte,
!                 const cblc_field_t *returning,
!                 size_t              returning_offset)
    {
    int working_byte = get_the_byte(f_working_byte);
    int local_byte   = get_the_byte(f_local_byte);
+   int fill_char;
  
    unsigned char *retval = NULL;
    if( first->attr & based_e )
*************** __gg__allocate( cblc_field_t *first,
*** 12734,12745 ****
      // first is the BASED variable we are allocating memory for
      if( first->capacity )
        {
!       retval = (unsigned char *)malloc(first->capacity);
  
        if( initialized )
          {
          // This is ISO 2023 ALLOCATE rule 7 (ALL TO VALUE)
-         int fill_char = 0;
          if( default_byte >= 0 )
            {
            fill_char = default_byte;
--- 12812,12823 ----
      // first is the BASED variable we are allocating memory for
      if( first->capacity )
        {
!       retval = static_cast<unsigned char *>(malloc(first->capacity));
  
+       fill_char = 0;
        if( initialized )
          {
          // This is ISO 2023 ALLOCATE rule 7 (ALL TO VALUE)
          if( default_byte >= 0 )
            {
            fill_char = default_byte;
*************** __gg__allocate( cblc_field_t *first,
*** 12749,12755 ****
        else
          {
          // This is ISO 2023 ALLOCATE rule 9 (pointers NULL, otherwise OPT_INIT)
-         int fill_char = 0;
          if( default_byte >= 0 )
            {
            fill_char = default_byte;
--- 12827,12832 ----
*************** __gg__allocate( cblc_field_t *first,
*** 12793,12801 ****
      tsize /= pof10;
      if( tsize )
        {
!       retval = (unsigned char *)malloc(tsize);
  
!       int fill_char = 0;
        if( initialized )
          {
          // This is ISO 2023 rule 6 (defaultbyte if specified, else zero)
--- 12870,12882 ----
      tsize /= pof10;
      if( tsize )
        {
!       retval = static_cast<unsigned char *>(malloc(tsize));
!       if(!retval)
!         {
!         abort();
!         }
  
!       fill_char = 0;
        if( initialized )
          {
          // This is ISO 2023 rule 6 (defaultbyte if specified, else zero)
*************** __gg__allocate( cblc_field_t *first,
*** 12834,12840 ****
    if( returning )
      {
      // 'returning' has to be a FldPointer variable; assign the retval to it.
!     *(unsigned char **)(returning->data + returning_offset) = retval;
      }
    }
  
--- 12915,12921 ----
    if( returning )
      {
      // 'returning' has to be a FldPointer variable; assign the retval to it.
!     *reinterpret_cast<unsigned char **>(returning->data + returning_offset) = retval;
      }
    }
  
*************** void
*** 12863,12869 ****
  __gg__module_name(cblc_field_t *dest, module_type_t type)
    {
    static size_t result_size = 64;
!   static char *result = (char *)malloc(result_size);
  
    strcpy(result, "");
  
--- 12944,12951 ----
  __gg__module_name(cblc_field_t *dest, module_type_t type)
    {
    static size_t result_size = 64;
!   static char *result = static_cast<char *>(malloc(result_size));
!   massert(result);
  
    strcpy(result, "");
  
*************** __gg__module_name(cblc_field_t *dest, mo
*** 12952,12958 ****
            if( strlen(result) + module_name_stack[i].substr(1).length() + 4 > result_size)
              {
              result_size *= 2;
!             result = (char *)realloc(result, result_size);
              }
            strcat(result, module_name_stack[i].substr(1).c_str());
            strcat(result, ";");
--- 13034,13040 ----
            if( strlen(result) + module_name_stack[i].substr(1).length() + 4 > result_size)
              {
              result_size *= 2;
!             result = static_cast<char *>(realloc(result, result_size));
              }
            strcat(result, module_name_stack[i].substr(1).c_str());
            strcat(result, ";");
*************** cbl_enabled_exceptions_t::dump( const ch
*** 13013,13024 ****
    }
    int i = 1;
    for( auto& elem : *this ) {
!     warnx("%s: %2d  {%s, %04x %s, %ld}", tag,
!     i++,
!     elem.location? "with location" : "  no location",
!     elem.ec,
!     local_ec_type_str(elem.ec),
!     elem.file );
    }
  }
  
--- 13095,13106 ----
    }
    int i = 1;
    for( auto& elem : *this ) {
!     warnx("%s: %2d  {%s, %04x %s, %u}", tag,
! 	  i++,
! 	  elem.location? "with location" : "  no location",
! 	  elem.ec,
! 	  local_ec_type_str(elem.ec),
! 	  static_cast<unsigned int>(elem.file) );
    }
  }
  
*************** __gg__set_exception_environment( uint64_
*** 13068,13074 ****
      if( prior.ecs != ecs ) {
        uint64_t *ecs_begin = ecs + 1, *ecs_end = ecs_begin + ecs[0];
        if( MATCH_DECLARATIVE ) {
!         warnx("%zu elements implies %zu ECs", ecs[0], ecs[0] / 3);
        }
        cbl_enabled_exceptions_t enabled;
        enabled_ECs = enabled.decode( std::vector<uint64_t>(ecs_begin, ecs_end) );
--- 13150,13158 ----
      if( prior.ecs != ecs ) {
        uint64_t *ecs_begin = ecs + 1, *ecs_end = ecs_begin + ecs[0];
        if( MATCH_DECLARATIVE ) {
!         warnx("%u elements implies %u ECs",
! 	      static_cast<unsigned int>(ecs[0]),
! 	      static_cast<unsigned int>(ecs[0] / 3));
        }
        cbl_enabled_exceptions_t enabled;
        enabled_ECs = enabled.decode( std::vector<uint64_t>(ecs_begin, ecs_end) );
*************** __gg__set_exception_environment( uint64_
*** 13082,13088 ****
      if( prior.dcls != dcls ) {
        uint64_t *dcls_begin = dcls + 1, *dcls_end = dcls_begin + dcls[0];
        if( MATCH_DECLARATIVE ) {
!         warnx("%zu elements implies %zu declaratives", dcls[0], dcls[0] / 21);
        }
        declaratives.clear();
        declaratives << std::vector<uint64_t>( dcls_begin, dcls_end );
--- 13166,13174 ----
      if( prior.dcls != dcls ) {
        uint64_t *dcls_begin = dcls + 1, *dcls_end = dcls_begin + dcls[0];
        if( MATCH_DECLARATIVE ) {
!         warnx("%u elements implies %u declaratives",
! 	      static_cast<unsigned int>(dcls[0]),
! 	      static_cast<unsigned int>(dcls[0] / 21));
        }
        declaratives.clear();
        declaratives << std::vector<uint64_t>( dcls_begin, dcls_end );
*************** static char *sv_envname = NULL;
*** 13101,13139 ****
  
  extern "C"
  void
! __gg__set_env_name( cblc_field_t   *var,
!                     size_t          offset,
!                     size_t          length )
    {
    free(sv_envname);
!   sv_envname = (char *)malloc(length+1);
    memcpy(sv_envname, var->data+offset, length);
    sv_envname[length] = '\0';
    }
  
  extern "C"
  void
! __gg__set_env_value(cblc_field_t   *value,
!                     size_t          offset,
!                     size_t          length )
    {
    size_t name_length  = strlen(sv_envname);
    size_t value_length = length;
  
!   static char   *env        = NULL;
!   static size_t  env_length = 0;
!   static char   *val        = NULL;
!   static size_t  val_length = 0;
    if( env_length < name_length+1 )
      {
      env_length = name_length+1;
!     env = (char *)realloc(env, env_length);
      }
    if( val_length < value_length+1 )
      {
      val_length = value_length+1;
!     val = (char *)realloc(val, val_length);
      }
  
    // The name and the value arrive in the internal codeset:
    memcpy(env, sv_envname, name_length);
--- 13187,13228 ----
  
  extern "C"
  void
! __gg__set_env_name( const cblc_field_t *var,
!                     size_t              offset,
!                     size_t              length )
    {
    free(sv_envname);
!   sv_envname = static_cast<char *>(malloc(length+1));
!   massert(sv_envname);
    memcpy(sv_envname, var->data+offset, length);
    sv_envname[length] = '\0';
    }
  
  extern "C"
  void
! __gg__set_env_value(const cblc_field_t *value,
!                     size_t              offset,
!                     size_t              length )
    {
    size_t name_length  = strlen(sv_envname);
    size_t value_length = length;
  
!   static size_t  env_length = 16;
!   static char   *env        = static_cast<char *>(malloc(env_length+1));
!   static size_t  val_length = 16;
!   static char   *val        = static_cast<char *>(malloc(val_length+1));
    if( env_length < name_length+1 )
      {
      env_length = name_length+1;
!     env = static_cast<char *>(realloc(env, env_length));
      }
    if( val_length < value_length+1 )
      {
      val_length = value_length+1;
!     val = static_cast<char *>(realloc(val, val_length));
      }
+   massert(env);
+   massert(val);
  
    // The name and the value arrive in the internal codeset:
    memcpy(env, sv_envname, name_length);
diff -Nrcpad gcc-16-20250601/libgcobol/libgcobol.h gcc-16-20250608/libgcobol/libgcobol.h
*** gcc-16-20250601/libgcobol/libgcobol.h	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/libgcobol.h	Sun Jun  8 22:32:41 2025
***************
*** 39,44 ****
--- 39,59 ----
      Some are also called between source code modules in libgcobol, hence the
      need here for declarations. */
  
+ extern void __gg__mabort();
+ 
+ 
+ // The unnecessary abort() that follows is necessary to make cppcheck be 
+ // aware that massert() actually terminates processing after a failed
+ // malloc().
+ #define massert(p) if(!p){__gg__mabort();abort();}
+ 
+ // This was part of an exercise to make cppcheck shut up about invalid
+ // pointer type conversions.
+ // It was also to avoid having reinterpret_cast<> all over the place.
+ // So, instead of                 reinterpret_cast<char *>(VALUE)
+ // I sometimes use                PTRCAST(char, VALUE)
+ #define PTRCAST(TYPE, VALUE) static_cast<TYPE *>(static_cast<void *>(VALUE))
+ 
  extern "C" __int128 __gg__power_of_ten(int n);
  
  extern "C" __int128 __gg__dirty_to_binary_source( const char *dirty,
*************** extern "C" char __gg__get_decimal_separa
*** 89,110 ****
  extern "C" char __gg__get_decimal_point();
  extern "C" char * __gg__get_default_currency_string();
  
! extern "C" void __gg__clock_gettime(clockid_t clk_id, struct timespec *tp);
  
! extern "C" GCOB_FP128 __gg__float128_from_location(cblc_field_t *var,
!                                                   unsigned char *location);
  extern "C" void __gg__adjust_dest_size(cblc_field_t *dest, size_t ncount);
  
  extern "C" void __gg__realloc_if_necessary( char **dest,
                                              size_t *dest_size,
                                              size_t new_size);
! extern "C" void __gg__set_exception_file(cblc_file_t *file);
  extern "C" void __gg__internal_to_console_in_place(char *loc, size_t length);
! extern "C" __int128 __gg__binary_value_from_qualified_field(int        *rdigits,
!                                                             cblc_field_t *var,
                                                              size_t     offset,
                                                              size_t     size);
! extern "C"  GCOB_FP128 __gg__float128_from_qualified_field(cblc_field_t *field,
                                                            size_t offset,
                                                            size_t size);
  extern "C"  __int128 __gg__integer_from_qualified_field(cblc_field_t *var,
--- 104,134 ----
  extern "C" char __gg__get_decimal_point();
  extern "C" char * __gg__get_default_currency_string();
  
! struct cbl_timespec
!   {
!   /*  You keep using that word "portability".  I do not think it means what
!       you think it means. */
!   time_t  tv_sec;    // Seconds.
!   long    tv_nsec;   // Nanoseconds.
!   } ;
  
! extern "C" void __gg__clock_gettime(clockid_t clk_id, struct cbl_timespec *tp);
! 
! extern "C" GCOB_FP128 __gg__float128_from_location(
!                                         const cblc_field_t *var,
!                                         const unsigned char *location);
  extern "C" void __gg__adjust_dest_size(cblc_field_t *dest, size_t ncount);
  
  extern "C" void __gg__realloc_if_necessary( char **dest,
                                              size_t *dest_size,
                                              size_t new_size);
! extern "C" void __gg__set_exception_file(const cblc_file_t *file);
  extern "C" void __gg__internal_to_console_in_place(char *loc, size_t length);
! extern "C" __int128 __gg__binary_value_from_qualified_field(int     *rdigits,
!                                                             const cblc_field_t *var,
                                                              size_t     offset,
                                                              size_t     size);
! extern "C"  GCOB_FP128 __gg__float128_from_qualified_field(const cblc_field_t *field,
                                                            size_t offset,
                                                            size_t size);
  extern "C"  __int128 __gg__integer_from_qualified_field(cblc_field_t *var,
diff -Nrcpad gcc-16-20250601/libgcobol/valconv.cc gcc-16-20250608/libgcobol/valconv.cc
*** gcc-16-20250601/libgcobol/valconv.cc	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/valconv.cc	Sun Jun  8 22:32:41 2025
*************** __gg__realloc_if_necessary(char **dest,
*** 71,77 ****
      new_size |= new_size>>16;
      new_size |= (new_size>>16)>>16;
      *dest_size = new_size + 1;
!     *dest = (char *)realloc(*dest, *dest_size);
      }
    }
  
--- 71,77 ----
      new_size |= new_size>>16;
      new_size |= (new_size>>16)>>16;
      *dest_size = new_size + 1;
!     *dest = static_cast<char *>(realloc(*dest, *dest_size));
      }
    }
  
*************** extern "C"
*** 79,85 ****
  void
  __gg__alphabet_create(  cbl_encoding_t encoding,
                          size_t alphabet_index,
!                         unsigned char *alphabet,
                          int low_char,
                          int high_char )
    {
--- 79,85 ----
  void
  __gg__alphabet_create(  cbl_encoding_t encoding,
                          size_t alphabet_index,
!                         const unsigned char *alphabet,
                          int low_char,
                          int high_char )
    {
*************** Rindex(const char *dest, int length, cha
*** 222,228 ****
  extern "C"
  bool
  __gg__string_to_numeric_edited( char * const dest,
!                                 char *source,       // In source characters
                                  int rdigits,
                                  int is_negative,
                                  const char *picture)
--- 222,228 ----
  extern "C"
  bool
  __gg__string_to_numeric_edited( char * const dest,
!                                 const char *source,     // In source characters
                                  int rdigits,
                                  int is_negative,
                                  const char *picture)
*************** got_float:
*** 1222,1230 ****
  extern "C"
  void
  __gg__string_to_alpha_edited(   char *dest,
!                                 char *source,
                                  int slength,
!                                 char *picture)
    {
    // Put the PICTURE into the data area.  If the caller didn't leave enough
    // room, well, poo on them.  Said another way; if they specify disaster,
--- 1222,1230 ----
  extern "C"
  void
  __gg__string_to_alpha_edited(   char *dest,
!                                 const char *source,
                                  int slength,
!                                 const char *picture)
    {
    // Put the PICTURE into the data area.  If the caller didn't leave enough
    // room, well, poo on them.  Said another way; if they specify disaster,
diff -Nrcpad gcc-16-20250601/libgcobol/valconv.h gcc-16-20250608/libgcobol/valconv.h
*** gcc-16-20250601/libgcobol/valconv.h	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgcobol/valconv.h	Sun Jun  8 22:32:41 2025
*************** extern "C"
*** 60,77 ****
    void __gg__realloc_if_necessary(char **dest, size_t *dest_size, size_t new_size);
    void  __gg__alphabet_create(cbl_encoding_t encoding,
                                size_t alphabet_index,
!                               unsigned char *alphabet,
                                int low_char,
                                int high_char );
    bool __gg__string_to_numeric_edited(char * const dest,
!                                       char *source,       // ASCII
                                        int rdigits,
                                        int is_negative,
                                        const char *picture);
    void __gg__string_to_alpha_edited(char *dest,
!                                     char *source,
                                      int slength,
!                                     char *picture);
    void __gg__currency_sign_init();
    void __gg__currency_sign(int symbol, const char *sign);
    void __gg__remove_trailing_zeroes(char *p);
--- 60,77 ----
    void __gg__realloc_if_necessary(char **dest, size_t *dest_size, size_t new_size);
    void  __gg__alphabet_create(cbl_encoding_t encoding,
                                size_t alphabet_index,
!                               const unsigned char *alphabet,
                                int low_char,
                                int high_char );
    bool __gg__string_to_numeric_edited(char * const dest,
!                                       const char *source,       // ASCII
                                        int rdigits,
                                        int is_negative,
                                        const char *picture);
    void __gg__string_to_alpha_edited(char *dest,
!                                     const char *source,
                                      int slength,
!                                     const char *picture);
    void __gg__currency_sign_init();
    void __gg__currency_sign(int symbol, const char *sign);
    void __gg__remove_trailing_zeroes(char *p);
diff -Nrcpad gcc-16-20250601/libgfortran/ChangeLog gcc-16-20250608/libgfortran/ChangeLog
*** gcc-16-20250601/libgfortran/ChangeLog	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/ChangeLog	Sun Jun  8 22:32:41 2025
***************
*** 1,3 ****
--- 1,135 ----
+ 2025-06-07  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	PR libfortran/116400
+ 	* generated/iall_i1.c: Regenerate.
+ 	* generated/iall_i16.c: Regenerate.
+ 	* generated/iall_i2.c: Regenerate.
+ 	* generated/iall_i4.c: Regenerate.
+ 	* generated/iall_i8.c: Regenerate.
+ 	* generated/iany_i1.c: Regenerate.
+ 	* generated/iany_i16.c: Regenerate.
+ 	* generated/iany_i2.c: Regenerate.
+ 	* generated/iany_i4.c: Regenerate.
+ 	* generated/iany_i8.c: Regenerate.
+ 	* generated/iparity_i1.c: Regenerate.
+ 	* generated/iparity_i16.c: Regenerate.
+ 	* generated/iparity_i2.c: Regenerate.
+ 	* generated/iparity_i4.c: Regenerate.
+ 	* generated/iparity_i8.c: Regenerate.
+ 	* generated/matmulavx128_c10.c: Regenerate.
+ 	* generated/matmulavx128_c16.c: Regenerate.
+ 	* generated/matmulavx128_c17.c: Regenerate.
+ 	* generated/matmulavx128_c4.c: Regenerate.
+ 	* generated/matmulavx128_c8.c: Regenerate.
+ 	* generated/matmulavx128_i1.c: Regenerate.
+ 	* generated/matmulavx128_i16.c: Regenerate.
+ 	* generated/matmulavx128_i2.c: Regenerate.
+ 	* generated/matmulavx128_i4.c: Regenerate.
+ 	* generated/matmulavx128_i8.c: Regenerate.
+ 	* generated/matmulavx128_r10.c: Regenerate.
+ 	* generated/matmulavx128_r16.c: Regenerate.
+ 	* generated/matmulavx128_r17.c: Regenerate.
+ 	* generated/matmulavx128_r4.c: Regenerate.
+ 	* generated/matmulavx128_r8.c: Regenerate.
+ 	* generated/maxloc1_16_i1.c: Regenerate.
+ 	* generated/maxloc1_16_i16.c: Regenerate.
+ 	* generated/maxloc1_16_i2.c: Regenerate.
+ 	* generated/maxloc1_16_i4.c: Regenerate.
+ 	* generated/maxloc1_16_i8.c: Regenerate.
+ 	* generated/maxloc1_16_r10.c: Regenerate.
+ 	* generated/maxloc1_16_r16.c: Regenerate.
+ 	* generated/maxloc1_16_r17.c: Regenerate.
+ 	* generated/maxloc1_16_r4.c: Regenerate.
+ 	* generated/maxloc1_16_r8.c: Regenerate.
+ 	* generated/maxloc1_4_i1.c: Regenerate.
+ 	* generated/maxloc1_4_i16.c: Regenerate.
+ 	* generated/maxloc1_4_i2.c: Regenerate.
+ 	* generated/maxloc1_4_i4.c: Regenerate.
+ 	* generated/maxloc1_4_i8.c: Regenerate.
+ 	* generated/maxloc1_4_r10.c: Regenerate.
+ 	* generated/maxloc1_4_r16.c: Regenerate.
+ 	* generated/maxloc1_4_r17.c: Regenerate.
+ 	* generated/maxloc1_4_r4.c: Regenerate.
+ 	* generated/maxloc1_4_r8.c: Regenerate.
+ 	* generated/maxloc1_8_i1.c: Regenerate.
+ 	* generated/maxloc1_8_i16.c: Regenerate.
+ 	* generated/maxloc1_8_i2.c: Regenerate.
+ 	* generated/maxloc1_8_i4.c: Regenerate.
+ 	* generated/maxloc1_8_i8.c: Regenerate.
+ 	* generated/maxloc1_8_r10.c: Regenerate.
+ 	* generated/maxloc1_8_r16.c: Regenerate.
+ 	* generated/maxloc1_8_r17.c: Regenerate.
+ 	* generated/maxloc1_8_r4.c: Regenerate.
+ 	* generated/maxloc1_8_r8.c: Regenerate.
+ 	* generated/maxval_i1.c: Regenerate.
+ 	* generated/maxval_i16.c: Regenerate.
+ 	* generated/maxval_i2.c: Regenerate.
+ 	* generated/maxval_i4.c: Regenerate.
+ 	* generated/maxval_i8.c: Regenerate.
+ 	* generated/maxval_r10.c: Regenerate.
+ 	* generated/maxval_r16.c: Regenerate.
+ 	* generated/maxval_r17.c: Regenerate.
+ 	* generated/maxval_r4.c: Regenerate.
+ 	* generated/maxval_r8.c: Regenerate.
+ 	* generated/minloc1_16_i1.c: Regenerate.
+ 	* generated/minloc1_16_i16.c: Regenerate.
+ 	* generated/minloc1_16_i2.c: Regenerate.
+ 	* generated/minloc1_16_i4.c: Regenerate.
+ 	* generated/minloc1_16_i8.c: Regenerate.
+ 	* generated/minloc1_16_r10.c: Regenerate.
+ 	* generated/minloc1_16_r16.c: Regenerate.
+ 	* generated/minloc1_16_r17.c: Regenerate.
+ 	* generated/minloc1_16_r4.c: Regenerate.
+ 	* generated/minloc1_16_r8.c: Regenerate.
+ 	* generated/minloc1_4_i1.c: Regenerate.
+ 	* generated/minloc1_4_i16.c: Regenerate.
+ 	* generated/minloc1_4_i2.c: Regenerate.
+ 	* generated/minloc1_4_i4.c: Regenerate.
+ 	* generated/minloc1_4_i8.c: Regenerate.
+ 	* generated/minloc1_4_r10.c: Regenerate.
+ 	* generated/minloc1_4_r16.c: Regenerate.
+ 	* generated/minloc1_4_r17.c: Regenerate.
+ 	* generated/minloc1_4_r4.c: Regenerate.
+ 	* generated/minloc1_4_r8.c: Regenerate.
+ 	* generated/minloc1_8_i1.c: Regenerate.
+ 	* generated/minloc1_8_i16.c: Regenerate.
+ 	* generated/minloc1_8_i2.c: Regenerate.
+ 	* generated/minloc1_8_i4.c: Regenerate.
+ 	* generated/minloc1_8_i8.c: Regenerate.
+ 	* generated/minloc1_8_r10.c: Regenerate.
+ 	* generated/minloc1_8_r16.c: Regenerate.
+ 	* generated/minloc1_8_r17.c: Regenerate.
+ 	* generated/minloc1_8_r4.c: Regenerate.
+ 	* generated/minloc1_8_r8.c: Regenerate.
+ 	* generated/minval_i1.c: Regenerate.
+ 	* generated/minval_i16.c: Regenerate.
+ 	* generated/minval_i2.c: Regenerate.
+ 	* generated/minval_i4.c: Regenerate.
+ 	* generated/minval_i8.c: Regenerate.
+ 	* generated/minval_r10.c: Regenerate.
+ 	* generated/minval_r16.c: Regenerate.
+ 	* generated/minval_r17.c: Regenerate.
+ 	* generated/minval_r4.c: Regenerate.
+ 	* generated/minval_r8.c: Regenerate.
+ 	* generated/norm2_r10.c: Regenerate.
+ 	* generated/norm2_r16.c: Regenerate.
+ 	* generated/norm2_r17.c: Regenerate.
+ 	* generated/norm2_r4.c: Regenerate.
+ 	* generated/norm2_r8.c: Regenerate.
+ 	* generated/parity_l1.c: Regenerate.
+ 	* generated/parity_l16.c: Regenerate.
+ 	* generated/parity_l2.c: Regenerate.
+ 	* generated/parity_l4.c: Regenerate.
+ 	* generated/parity_l8.c: Regenerate.
+ 
+ 2025-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR libfortran/119856
+ 	* io/format.c (parse_format_list): Set the fmt->error
+ 	message for missing comma.
+ 	(parse_format): Do not cache the parsed format string
+ 	if a previous error ocurred.
+ 
  2025-05-13  Jakub Jelinek  <jakub@redhat.com>
  
  	PR libfortran/120196
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iall_i1.c gcc-16-20250608/libgfortran/generated/iall_i1.c
*** gcc-16-20250601/libgfortran/generated/iall_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iall_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void iall_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(iall_i1);
  
  void
! iall_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void iall_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(iall_i1);
  
  void
! iall_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iall_i1 (gfc_array_i1 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miall_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i1);
  
  void
! miall_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miall_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i1);
  
  void
! miall_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miall_i1 (gfc_array_i1 * const restrict
*** 378,392 ****
  }
  
  
! extern void siall_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i1);
  
  void
! siall_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siall_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i1);
  
  void
! siall_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iall_i16.c gcc-16-20250608/libgfortran/generated/iall_i16.c
*** gcc-16-20250601/libgfortran/generated/iall_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iall_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void iall_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(iall_i16);
  
  void
! iall_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void iall_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(iall_i16);
  
  void
! iall_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iall_i16 (gfc_array_i16 * const restrict
*** 188,202 ****
  }
  
  
! extern void miall_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i16);
  
  void
! miall_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miall_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i16);
  
  void
! miall_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miall_i16 (gfc_array_i16 * const restric
*** 378,392 ****
  }
  
  
! extern void siall_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i16);
  
  void
! siall_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siall_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i16);
  
  void
! siall_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iall_i2.c gcc-16-20250608/libgfortran/generated/iall_i2.c
*** gcc-16-20250601/libgfortran/generated/iall_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iall_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void iall_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(iall_i2);
  
  void
! iall_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void iall_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(iall_i2);
  
  void
! iall_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iall_i2 (gfc_array_i2 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miall_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i2);
  
  void
! miall_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miall_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i2);
  
  void
! miall_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miall_i2 (gfc_array_i2 * const restrict
*** 378,392 ****
  }
  
  
! extern void siall_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i2);
  
  void
! siall_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siall_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i2);
  
  void
! siall_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iall_i4.c gcc-16-20250608/libgfortran/generated/iall_i4.c
*** gcc-16-20250601/libgfortran/generated/iall_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iall_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void iall_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(iall_i4);
  
  void
! iall_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void iall_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(iall_i4);
  
  void
! iall_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iall_i4 (gfc_array_i4 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miall_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i4);
  
  void
! miall_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miall_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i4);
  
  void
! miall_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miall_i4 (gfc_array_i4 * const restrict
*** 378,392 ****
  }
  
  
! extern void siall_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i4);
  
  void
! siall_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siall_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i4);
  
  void
! siall_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iall_i8.c gcc-16-20250608/libgfortran/generated/iall_i8.c
*** gcc-16-20250601/libgfortran/generated/iall_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iall_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void iall_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(iall_i8);
  
  void
! iall_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void iall_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(iall_i8);
  
  void
! iall_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iall_i8 (gfc_array_i8 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miall_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i8);
  
  void
! miall_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miall_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miall_i8);
  
  void
! miall_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miall_i8 (gfc_array_i8 * const restrict
*** 378,392 ****
  }
  
  
! extern void siall_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i8);
  
  void
! siall_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siall_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siall_i8);
  
  void
! siall_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iany_i1.c gcc-16-20250608/libgfortran/generated/iany_i1.c
*** gcc-16-20250601/libgfortran/generated/iany_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iany_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void iany_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(iany_i1);
  
  void
! iany_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void iany_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(iany_i1);
  
  void
! iany_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iany_i1 (gfc_array_i1 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miany_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i1);
  
  void
! miany_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miany_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i1);
  
  void
! miany_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miany_i1 (gfc_array_i1 * const restrict
*** 378,392 ****
  }
  
  
! extern void siany_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i1);
  
  void
! siany_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siany_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i1);
  
  void
! siany_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iany_i16.c gcc-16-20250608/libgfortran/generated/iany_i16.c
*** gcc-16-20250601/libgfortran/generated/iany_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iany_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void iany_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(iany_i16);
  
  void
! iany_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void iany_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(iany_i16);
  
  void
! iany_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iany_i16 (gfc_array_i16 * const restrict
*** 188,202 ****
  }
  
  
! extern void miany_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i16);
  
  void
! miany_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miany_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i16);
  
  void
! miany_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miany_i16 (gfc_array_i16 * const restric
*** 378,392 ****
  }
  
  
! extern void siany_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i16);
  
  void
! siany_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siany_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i16);
  
  void
! siany_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iany_i2.c gcc-16-20250608/libgfortran/generated/iany_i2.c
*** gcc-16-20250601/libgfortran/generated/iany_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iany_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void iany_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(iany_i2);
  
  void
! iany_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void iany_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(iany_i2);
  
  void
! iany_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iany_i2 (gfc_array_i2 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miany_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i2);
  
  void
! miany_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miany_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i2);
  
  void
! miany_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miany_i2 (gfc_array_i2 * const restrict
*** 378,392 ****
  }
  
  
! extern void siany_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i2);
  
  void
! siany_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siany_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i2);
  
  void
! siany_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iany_i4.c gcc-16-20250608/libgfortran/generated/iany_i4.c
*** gcc-16-20250601/libgfortran/generated/iany_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iany_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void iany_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(iany_i4);
  
  void
! iany_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void iany_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(iany_i4);
  
  void
! iany_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iany_i4 (gfc_array_i4 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miany_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i4);
  
  void
! miany_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miany_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i4);
  
  void
! miany_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miany_i4 (gfc_array_i4 * const restrict
*** 378,392 ****
  }
  
  
! extern void siany_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i4);
  
  void
! siany_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siany_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i4);
  
  void
! siany_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iany_i8.c gcc-16-20250608/libgfortran/generated/iany_i8.c
*** gcc-16-20250601/libgfortran/generated/iany_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iany_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void iany_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(iany_i8);
  
  void
! iany_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void iany_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(iany_i8);
  
  void
! iany_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iany_i8 (gfc_array_i8 * const restrict r
*** 188,202 ****
  }
  
  
! extern void miany_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i8);
  
  void
! miany_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miany_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miany_i8);
  
  void
! miany_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miany_i8 (gfc_array_i8 * const restrict
*** 378,392 ****
  }
  
  
! extern void siany_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i8);
  
  void
! siany_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siany_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siany_i8);
  
  void
! siany_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iparity_i1.c gcc-16-20250608/libgfortran/generated/iparity_i1.c
*** gcc-16-20250601/libgfortran/generated/iparity_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iparity_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void iparity_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(iparity_i1);
  
  void
! iparity_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void iparity_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(iparity_i1);
  
  void
! iparity_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iparity_i1 (gfc_array_i1 * const restric
*** 188,202 ****
  }
  
  
! extern void miparity_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i1);
  
  void
! miparity_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miparity_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i1);
  
  void
! miparity_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miparity_i1 (gfc_array_i1 * const restri
*** 378,392 ****
  }
  
  
! extern void siparity_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i1);
  
  void
! siparity_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siparity_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i1);
  
  void
! siparity_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iparity_i16.c gcc-16-20250608/libgfortran/generated/iparity_i16.c
*** gcc-16-20250601/libgfortran/generated/iparity_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iparity_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void iparity_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(iparity_i16);
  
  void
! iparity_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void iparity_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(iparity_i16);
  
  void
! iparity_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iparity_i16 (gfc_array_i16 * const restr
*** 188,202 ****
  }
  
  
! extern void miparity_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i16);
  
  void
! miparity_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miparity_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i16);
  
  void
! miparity_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miparity_i16 (gfc_array_i16 * const rest
*** 378,392 ****
  }
  
  
! extern void siparity_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i16);
  
  void
! siparity_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siparity_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i16);
  
  void
! siparity_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iparity_i2.c gcc-16-20250608/libgfortran/generated/iparity_i2.c
*** gcc-16-20250601/libgfortran/generated/iparity_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iparity_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void iparity_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(iparity_i2);
  
  void
! iparity_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void iparity_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(iparity_i2);
  
  void
! iparity_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iparity_i2 (gfc_array_i2 * const restric
*** 188,202 ****
  }
  
  
! extern void miparity_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i2);
  
  void
! miparity_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miparity_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i2);
  
  void
! miparity_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miparity_i2 (gfc_array_i2 * const restri
*** 378,392 ****
  }
  
  
! extern void siparity_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i2);
  
  void
! siparity_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siparity_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i2);
  
  void
! siparity_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iparity_i4.c gcc-16-20250608/libgfortran/generated/iparity_i4.c
*** gcc-16-20250601/libgfortran/generated/iparity_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iparity_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void iparity_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(iparity_i4);
  
  void
! iparity_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void iparity_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(iparity_i4);
  
  void
! iparity_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iparity_i4 (gfc_array_i4 * const restric
*** 188,202 ****
  }
  
  
! extern void miparity_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i4);
  
  void
! miparity_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miparity_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i4);
  
  void
! miparity_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miparity_i4 (gfc_array_i4 * const restri
*** 378,392 ****
  }
  
  
! extern void siparity_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i4);
  
  void
! siparity_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siparity_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i4);
  
  void
! siparity_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/iparity_i8.c gcc-16-20250608/libgfortran/generated/iparity_i8.c
*** gcc-16-20250601/libgfortran/generated/iparity_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/iparity_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void iparity_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(iparity_i8);
  
  void
! iparity_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void iparity_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(iparity_i8);
  
  void
! iparity_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** iparity_i8 (gfc_array_i8 * const restric
*** 188,202 ****
  }
  
  
! extern void miparity_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i8);
  
  void
! miparity_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 188,202 ----
  }
  
  
! extern void miparity_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(miparity_i8);
  
  void
! miparity_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** miparity_i8 (gfc_array_i8 * const restri
*** 378,392 ****
  }
  
  
! extern void siparity_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i8);
  
  void
! siparity_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 378,392 ----
  }
  
  
! extern void siparity_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(siparity_i8);
  
  void
! siparity_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_c10.c gcc-16-20250608/libgfortran/generated/matmulavx128_c10.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_c10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_c10.c	Sun Jun  8 22:32:41 2025
*************** matmul_c10_avx128_fma3 (gfc_array_c10 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c10_avx128_fma3);
  void
! matmul_c10_avx128_fma3 (gfc_array_c10 * const restrict retarray, 
  	gfc_array_c10 * const restrict a, gfc_array_c10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c10_avx128_fma3);
  void
! matmul_c10_avx128_fma3 (gfc_array_c10 * const restrict retarray,
  	gfc_array_c10 * const restrict a, gfc_array_c10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_c10_avx128_fma4 (gfc_array_c10 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c10_avx128_fma4);
  void
! matmul_c10_avx128_fma4 (gfc_array_c10 * const restrict retarray, 
  	gfc_array_c10 * const restrict a, gfc_array_c10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c10_avx128_fma4);
  void
! matmul_c10_avx128_fma4 (gfc_array_c10 * const restrict retarray,
  	gfc_array_c10 * const restrict a, gfc_array_c10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_c16.c gcc-16-20250608/libgfortran/generated/matmulavx128_c16.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_c16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_c16.c	Sun Jun  8 22:32:41 2025
*************** matmul_c16_avx128_fma3 (gfc_array_c16 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c16_avx128_fma3);
  void
! matmul_c16_avx128_fma3 (gfc_array_c16 * const restrict retarray, 
  	gfc_array_c16 * const restrict a, gfc_array_c16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c16_avx128_fma3);
  void
! matmul_c16_avx128_fma3 (gfc_array_c16 * const restrict retarray,
  	gfc_array_c16 * const restrict a, gfc_array_c16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_c16_avx128_fma4 (gfc_array_c16 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c16_avx128_fma4);
  void
! matmul_c16_avx128_fma4 (gfc_array_c16 * const restrict retarray, 
  	gfc_array_c16 * const restrict a, gfc_array_c16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c16_avx128_fma4);
  void
! matmul_c16_avx128_fma4 (gfc_array_c16 * const restrict retarray,
  	gfc_array_c16 * const restrict a, gfc_array_c16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_c17.c gcc-16-20250608/libgfortran/generated/matmulavx128_c17.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_c17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_c17.c	Sun Jun  8 22:32:41 2025
*************** matmul_c17_avx128_fma3 (gfc_array_c17 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c17_avx128_fma3);
  void
! matmul_c17_avx128_fma3 (gfc_array_c17 * const restrict retarray, 
  	gfc_array_c17 * const restrict a, gfc_array_c17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c17_avx128_fma3);
  void
! matmul_c17_avx128_fma3 (gfc_array_c17 * const restrict retarray,
  	gfc_array_c17 * const restrict a, gfc_array_c17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_c17_avx128_fma4 (gfc_array_c17 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c17_avx128_fma4);
  void
! matmul_c17_avx128_fma4 (gfc_array_c17 * const restrict retarray, 
  	gfc_array_c17 * const restrict a, gfc_array_c17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c17_avx128_fma4);
  void
! matmul_c17_avx128_fma4 (gfc_array_c17 * const restrict retarray,
  	gfc_array_c17 * const restrict a, gfc_array_c17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_c4.c gcc-16-20250608/libgfortran/generated/matmulavx128_c4.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_c4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_c4.c	Sun Jun  8 22:32:41 2025
*************** matmul_c4_avx128_fma3 (gfc_array_c4 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c4_avx128_fma3);
  void
! matmul_c4_avx128_fma3 (gfc_array_c4 * const restrict retarray, 
  	gfc_array_c4 * const restrict a, gfc_array_c4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c4_avx128_fma3);
  void
! matmul_c4_avx128_fma3 (gfc_array_c4 * const restrict retarray,
  	gfc_array_c4 * const restrict a, gfc_array_c4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_c4_avx128_fma4 (gfc_array_c4 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c4_avx128_fma4);
  void
! matmul_c4_avx128_fma4 (gfc_array_c4 * const restrict retarray, 
  	gfc_array_c4 * const restrict a, gfc_array_c4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c4_avx128_fma4);
  void
! matmul_c4_avx128_fma4 (gfc_array_c4 * const restrict retarray,
  	gfc_array_c4 * const restrict a, gfc_array_c4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_c8.c gcc-16-20250608/libgfortran/generated/matmulavx128_c8.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_c8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_c8.c	Sun Jun  8 22:32:41 2025
*************** matmul_c8_avx128_fma3 (gfc_array_c8 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c8_avx128_fma3);
  void
! matmul_c8_avx128_fma3 (gfc_array_c8 * const restrict retarray, 
  	gfc_array_c8 * const restrict a, gfc_array_c8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_c8_avx128_fma3);
  void
! matmul_c8_avx128_fma3 (gfc_array_c8 * const restrict retarray,
  	gfc_array_c8 * const restrict a, gfc_array_c8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_c8_avx128_fma4 (gfc_array_c8 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c8_avx128_fma4);
  void
! matmul_c8_avx128_fma4 (gfc_array_c8 * const restrict retarray, 
  	gfc_array_c8 * const restrict a, gfc_array_c8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_c8_avx128_fma4);
  void
! matmul_c8_avx128_fma4 (gfc_array_c8 * const restrict retarray,
  	gfc_array_c8 * const restrict a, gfc_array_c8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_i1.c gcc-16-20250608/libgfortran/generated/matmulavx128_i1.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_i1.c	Sun Jun  8 22:32:41 2025
*************** matmul_i1_avx128_fma3 (gfc_array_i1 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i1_avx128_fma3);
  void
! matmul_i1_avx128_fma3 (gfc_array_i1 * const restrict retarray, 
  	gfc_array_i1 * const restrict a, gfc_array_i1 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i1_avx128_fma3);
  void
! matmul_i1_avx128_fma3 (gfc_array_i1 * const restrict retarray,
  	gfc_array_i1 * const restrict a, gfc_array_i1 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_i1_avx128_fma4 (gfc_array_i1 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i1_avx128_fma4);
  void
! matmul_i1_avx128_fma4 (gfc_array_i1 * const restrict retarray, 
  	gfc_array_i1 * const restrict a, gfc_array_i1 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i1_avx128_fma4);
  void
! matmul_i1_avx128_fma4 (gfc_array_i1 * const restrict retarray,
  	gfc_array_i1 * const restrict a, gfc_array_i1 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_i16.c gcc-16-20250608/libgfortran/generated/matmulavx128_i16.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_i16.c	Sun Jun  8 22:32:41 2025
*************** matmul_i16_avx128_fma3 (gfc_array_i16 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i16_avx128_fma3);
  void
! matmul_i16_avx128_fma3 (gfc_array_i16 * const restrict retarray, 
  	gfc_array_i16 * const restrict a, gfc_array_i16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i16_avx128_fma3);
  void
! matmul_i16_avx128_fma3 (gfc_array_i16 * const restrict retarray,
  	gfc_array_i16 * const restrict a, gfc_array_i16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_i16_avx128_fma4 (gfc_array_i16 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i16_avx128_fma4);
  void
! matmul_i16_avx128_fma4 (gfc_array_i16 * const restrict retarray, 
  	gfc_array_i16 * const restrict a, gfc_array_i16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i16_avx128_fma4);
  void
! matmul_i16_avx128_fma4 (gfc_array_i16 * const restrict retarray,
  	gfc_array_i16 * const restrict a, gfc_array_i16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_i2.c gcc-16-20250608/libgfortran/generated/matmulavx128_i2.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_i2.c	Sun Jun  8 22:32:41 2025
*************** matmul_i2_avx128_fma3 (gfc_array_i2 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i2_avx128_fma3);
  void
! matmul_i2_avx128_fma3 (gfc_array_i2 * const restrict retarray, 
  	gfc_array_i2 * const restrict a, gfc_array_i2 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i2_avx128_fma3);
  void
! matmul_i2_avx128_fma3 (gfc_array_i2 * const restrict retarray,
  	gfc_array_i2 * const restrict a, gfc_array_i2 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_i2_avx128_fma4 (gfc_array_i2 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i2_avx128_fma4);
  void
! matmul_i2_avx128_fma4 (gfc_array_i2 * const restrict retarray, 
  	gfc_array_i2 * const restrict a, gfc_array_i2 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i2_avx128_fma4);
  void
! matmul_i2_avx128_fma4 (gfc_array_i2 * const restrict retarray,
  	gfc_array_i2 * const restrict a, gfc_array_i2 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_i4.c gcc-16-20250608/libgfortran/generated/matmulavx128_i4.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_i4.c	Sun Jun  8 22:32:41 2025
*************** matmul_i4_avx128_fma3 (gfc_array_i4 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i4_avx128_fma3);
  void
! matmul_i4_avx128_fma3 (gfc_array_i4 * const restrict retarray, 
  	gfc_array_i4 * const restrict a, gfc_array_i4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i4_avx128_fma3);
  void
! matmul_i4_avx128_fma3 (gfc_array_i4 * const restrict retarray,
  	gfc_array_i4 * const restrict a, gfc_array_i4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_i4_avx128_fma4 (gfc_array_i4 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i4_avx128_fma4);
  void
! matmul_i4_avx128_fma4 (gfc_array_i4 * const restrict retarray, 
  	gfc_array_i4 * const restrict a, gfc_array_i4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i4_avx128_fma4);
  void
! matmul_i4_avx128_fma4 (gfc_array_i4 * const restrict retarray,
  	gfc_array_i4 * const restrict a, gfc_array_i4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_i8.c gcc-16-20250608/libgfortran/generated/matmulavx128_i8.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_i8.c	Sun Jun  8 22:32:41 2025
*************** matmul_i8_avx128_fma3 (gfc_array_i8 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i8_avx128_fma3);
  void
! matmul_i8_avx128_fma3 (gfc_array_i8 * const restrict retarray, 
  	gfc_array_i8 * const restrict a, gfc_array_i8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_i8_avx128_fma3);
  void
! matmul_i8_avx128_fma3 (gfc_array_i8 * const restrict retarray,
  	gfc_array_i8 * const restrict a, gfc_array_i8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_i8_avx128_fma4 (gfc_array_i8 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i8_avx128_fma4);
  void
! matmul_i8_avx128_fma4 (gfc_array_i8 * const restrict retarray, 
  	gfc_array_i8 * const restrict a, gfc_array_i8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_i8_avx128_fma4);
  void
! matmul_i8_avx128_fma4 (gfc_array_i8 * const restrict retarray,
  	gfc_array_i8 * const restrict a, gfc_array_i8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_r10.c gcc-16-20250608/libgfortran/generated/matmulavx128_r10.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_r10.c	Sun Jun  8 22:32:41 2025
*************** matmul_r10_avx128_fma3 (gfc_array_r10 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r10_avx128_fma3);
  void
! matmul_r10_avx128_fma3 (gfc_array_r10 * const restrict retarray, 
  	gfc_array_r10 * const restrict a, gfc_array_r10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r10_avx128_fma3);
  void
! matmul_r10_avx128_fma3 (gfc_array_r10 * const restrict retarray,
  	gfc_array_r10 * const restrict a, gfc_array_r10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_r10_avx128_fma4 (gfc_array_r10 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r10_avx128_fma4);
  void
! matmul_r10_avx128_fma4 (gfc_array_r10 * const restrict retarray, 
  	gfc_array_r10 * const restrict a, gfc_array_r10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r10_avx128_fma4);
  void
! matmul_r10_avx128_fma4 (gfc_array_r10 * const restrict retarray,
  	gfc_array_r10 * const restrict a, gfc_array_r10 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_r16.c gcc-16-20250608/libgfortran/generated/matmulavx128_r16.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_r16.c	Sun Jun  8 22:32:41 2025
*************** matmul_r16_avx128_fma3 (gfc_array_r16 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r16_avx128_fma3);
  void
! matmul_r16_avx128_fma3 (gfc_array_r16 * const restrict retarray, 
  	gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r16_avx128_fma3);
  void
! matmul_r16_avx128_fma3 (gfc_array_r16 * const restrict retarray,
  	gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_r16_avx128_fma4 (gfc_array_r16 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r16_avx128_fma4);
  void
! matmul_r16_avx128_fma4 (gfc_array_r16 * const restrict retarray, 
  	gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r16_avx128_fma4);
  void
! matmul_r16_avx128_fma4 (gfc_array_r16 * const restrict retarray,
  	gfc_array_r16 * const restrict a, gfc_array_r16 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_r17.c gcc-16-20250608/libgfortran/generated/matmulavx128_r17.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_r17.c	Sun Jun  8 22:32:41 2025
*************** matmul_r17_avx128_fma3 (gfc_array_r17 *
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r17_avx128_fma3);
  void
! matmul_r17_avx128_fma3 (gfc_array_r17 * const restrict retarray, 
  	gfc_array_r17 * const restrict a, gfc_array_r17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r17_avx128_fma3);
  void
! matmul_r17_avx128_fma3 (gfc_array_r17 * const restrict retarray,
  	gfc_array_r17 * const restrict a, gfc_array_r17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_r17_avx128_fma4 (gfc_array_r17 *
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r17_avx128_fma4);
  void
! matmul_r17_avx128_fma4 (gfc_array_r17 * const restrict retarray, 
  	gfc_array_r17 * const restrict a, gfc_array_r17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r17_avx128_fma4);
  void
! matmul_r17_avx128_fma4 (gfc_array_r17 * const restrict retarray,
  	gfc_array_r17 * const restrict a, gfc_array_r17 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_r4.c gcc-16-20250608/libgfortran/generated/matmulavx128_r4.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_r4.c	Sun Jun  8 22:32:41 2025
*************** matmul_r4_avx128_fma3 (gfc_array_r4 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r4_avx128_fma3);
  void
! matmul_r4_avx128_fma3 (gfc_array_r4 * const restrict retarray, 
  	gfc_array_r4 * const restrict a, gfc_array_r4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r4_avx128_fma3);
  void
! matmul_r4_avx128_fma3 (gfc_array_r4 * const restrict retarray,
  	gfc_array_r4 * const restrict a, gfc_array_r4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_r4_avx128_fma4 (gfc_array_r4 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r4_avx128_fma4);
  void
! matmul_r4_avx128_fma4 (gfc_array_r4 * const restrict retarray, 
  	gfc_array_r4 * const restrict a, gfc_array_r4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r4_avx128_fma4);
  void
! matmul_r4_avx128_fma4 (gfc_array_r4 * const restrict retarray,
  	gfc_array_r4 * const restrict a, gfc_array_r4 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/matmulavx128_r8.c gcc-16-20250608/libgfortran/generated/matmulavx128_r8.c
*** gcc-16-20250601/libgfortran/generated/matmulavx128_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/matmulavx128_r8.c	Sun Jun  8 22:32:41 2025
*************** matmul_r8_avx128_fma3 (gfc_array_r8 * co
*** 49,55 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r8_avx128_fma3);
  void
! matmul_r8_avx128_fma3 (gfc_array_r8 * const restrict retarray, 
  	gfc_array_r8 * const restrict a, gfc_array_r8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 49,55 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma")));
  internal_proto(matmul_r8_avx128_fma3);
  void
! matmul_r8_avx128_fma3 (gfc_array_r8 * const restrict retarray,
  	gfc_array_r8 * const restrict a, gfc_array_r8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
*************** matmul_r8_avx128_fma4 (gfc_array_r8 * co
*** 619,625 ****
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r8_avx128_fma4);
  void
! matmul_r8_avx128_fma4 (gfc_array_r8 * const restrict retarray, 
  	gfc_array_r8 * const restrict a, gfc_array_r8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
--- 619,625 ----
  	int blas_limit, blas_call gemm) __attribute__((__target__("avx,fma4")));
  internal_proto(matmul_r8_avx128_fma4);
  void
! matmul_r8_avx128_fma4 (gfc_array_r8 * const restrict retarray,
  	gfc_array_r8 * const restrict a, gfc_array_r8 * const restrict b, int try_blas,
  	int blas_limit, blas_call gemm)
  {
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_i1.c gcc-16-20250608/libgfortran/generated/maxloc1_16_i1.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i1 (gfc_array_i16 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i1);
  
  void
! maxloc1_16_i1 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i1 (gfc_array_i16 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i1);
  
  void
! maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_i1 (gfc_array_i16 * const res
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_i1 (gfc_array_i16 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i1);
  
  void
! mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_i1 (gfc_array_i16 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i1);
  
  void
! mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_i1 (gfc_array_i16 * const re
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_i1 (gfc_array_i16 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i1);
  
  void
! smaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_i1 (gfc_array_i16 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i1);
  
  void
! smaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_i16.c gcc-16-20250608/libgfortran/generated/maxloc1_16_i16.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i16);
  
  void
! maxloc1_16_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i16);
  
  void
! maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_i16 (gfc_array_i16 * const re
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i16);
  
  void
! mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i16);
  
  void
! mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_i16 (gfc_array_i16 * const r
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i16);
  
  void
! smaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i16);
  
  void
! smaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_i2.c gcc-16-20250608/libgfortran/generated/maxloc1_16_i2.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i2 (gfc_array_i16 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i2);
  
  void
! maxloc1_16_i2 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i2 (gfc_array_i16 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i2);
  
  void
! maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_i2 (gfc_array_i16 * const res
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_i2 (gfc_array_i16 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i2);
  
  void
! mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_i2 (gfc_array_i16 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i2);
  
  void
! mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_i2 (gfc_array_i16 * const re
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_i2 (gfc_array_i16 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i2);
  
  void
! smaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_i2 (gfc_array_i16 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i2);
  
  void
! smaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_i4.c gcc-16-20250608/libgfortran/generated/maxloc1_16_i4.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i4 (gfc_array_i16 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i4);
  
  void
! maxloc1_16_i4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i4 (gfc_array_i16 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i4);
  
  void
! maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_i4 (gfc_array_i16 * const res
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_i4 (gfc_array_i16 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i4);
  
  void
! mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_i4 (gfc_array_i16 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i4);
  
  void
! mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_i4 (gfc_array_i16 * const re
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_i4 (gfc_array_i16 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i4);
  
  void
! smaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_i4 (gfc_array_i16 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i4);
  
  void
! smaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_i8.c gcc-16-20250608/libgfortran/generated/maxloc1_16_i8.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i8 (gfc_array_i16 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i8);
  
  void
! maxloc1_16_i8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_i8 (gfc_array_i16 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_i8);
  
  void
! maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_i8 (gfc_array_i16 * const res
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_i8 (gfc_array_i16 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i8);
  
  void
! mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_i8 (gfc_array_i16 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_i8);
  
  void
! mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_i8 (gfc_array_i16 * const re
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_i8 (gfc_array_i16 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i8);
  
  void
! smaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_i8 (gfc_array_i16 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_i8);
  
  void
! smaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_r10.c gcc-16-20250608/libgfortran/generated/maxloc1_16_r10.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r10 (gfc_array_i16 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r10);
  
  void
! maxloc1_16_r10 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r10 (gfc_array_i16 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r10);
  
  void
! maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_r10 (gfc_array_i16 * const re
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_r10 (gfc_array_i16 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r10);
  
  void
! mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_r10 (gfc_array_i16 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r10);
  
  void
! mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_r10 (gfc_array_i16 * const r
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_r10 (gfc_array_i16 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r10);
  
  void
! smaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_r10 (gfc_array_i16 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r10);
  
  void
! smaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_r16.c gcc-16-20250608/libgfortran/generated/maxloc1_16_r16.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r16 (gfc_array_i16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r16);
  
  void
! maxloc1_16_r16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r16 (gfc_array_i16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r16);
  
  void
! maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_r16 (gfc_array_i16 * const re
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_r16 (gfc_array_i16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r16);
  
  void
! mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_r16 (gfc_array_i16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r16);
  
  void
! mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_r16 (gfc_array_i16 * const r
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_r16 (gfc_array_i16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r16);
  
  void
! smaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_r16 (gfc_array_i16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r16);
  
  void
! smaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_r17.c gcc-16-20250608/libgfortran/generated/maxloc1_16_r17.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r17 (gfc_array_i16 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r17);
  
  void
! maxloc1_16_r17 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r17 (gfc_array_i16 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r17);
  
  void
! maxloc1_16_r17 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_r17 (gfc_array_i16 * const re
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_r17 (gfc_array_i16 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r17);
  
  void
! mmaxloc1_16_r17 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_r17 (gfc_array_i16 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r17);
  
  void
! mmaxloc1_16_r17 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_r17 (gfc_array_i16 * const r
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_r17 (gfc_array_i16 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r17);
  
  void
! smaxloc1_16_r17 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_r17 (gfc_array_i16 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r17);
  
  void
! smaxloc1_16_r17 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_r4.c gcc-16-20250608/libgfortran/generated/maxloc1_16_r4.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r4 (gfc_array_i16 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r4);
  
  void
! maxloc1_16_r4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r4 (gfc_array_i16 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r4);
  
  void
! maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_r4 (gfc_array_i16 * const res
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_r4 (gfc_array_i16 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r4);
  
  void
! mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_r4 (gfc_array_i16 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r4);
  
  void
! mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_r4 (gfc_array_i16 * const re
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_r4 (gfc_array_i16 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r4);
  
  void
! smaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_r4 (gfc_array_i16 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r4);
  
  void
! smaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_16_r8.c gcc-16-20250608/libgfortran/generated/maxloc1_16_r8.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_16_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_16_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r8 (gfc_array_i16 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r8);
  
  void
! maxloc1_16_r8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_16_r8 (gfc_array_i16 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_16_r8);
  
  void
! maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_16_r8 (gfc_array_i16 * const res
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_16_r8 (gfc_array_i16 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r8);
  
  void
! mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_16_r8 (gfc_array_i16 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_16_r8);
  
  void
! mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_16_r8 (gfc_array_i16 * const re
*** 449,463 ****
  }
  
  
! extern void smaxloc1_16_r8 (gfc_array_i16 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r8);
  
  void
! smaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_16_r8 (gfc_array_i16 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_16_r8);
  
  void
! smaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_i1.c gcc-16-20250608/libgfortran/generated/maxloc1_4_i1.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i1 (gfc_array_i4 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i1);
  
  void
! maxloc1_4_i1 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i1 (gfc_array_i4 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i1);
  
  void
! maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_i1 (gfc_array_i4 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_i1 (gfc_array_i4 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i1);
  
  void
! mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_i1 (gfc_array_i4 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i1);
  
  void
! mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_i1 (gfc_array_i4 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_i1 (gfc_array_i4 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i1);
  
  void
! smaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_i1 (gfc_array_i4 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i1);
  
  void
! smaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_i16.c gcc-16-20250608/libgfortran/generated/maxloc1_4_i16.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i16 (gfc_array_i4 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i16);
  
  void
! maxloc1_4_i16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i16 (gfc_array_i4 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i16);
  
  void
! maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_i16 (gfc_array_i4 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_i16 (gfc_array_i4 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i16);
  
  void
! mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_i16 (gfc_array_i4 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i16);
  
  void
! mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_i16 (gfc_array_i4 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_i16 (gfc_array_i4 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i16);
  
  void
! smaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_i16 (gfc_array_i4 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i16);
  
  void
! smaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_i2.c gcc-16-20250608/libgfortran/generated/maxloc1_4_i2.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i2 (gfc_array_i4 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i2);
  
  void
! maxloc1_4_i2 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i2 (gfc_array_i4 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i2);
  
  void
! maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_i2 (gfc_array_i4 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_i2 (gfc_array_i4 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i2);
  
  void
! mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_i2 (gfc_array_i4 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i2);
  
  void
! mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_i2 (gfc_array_i4 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_i2 (gfc_array_i4 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i2);
  
  void
! smaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_i2 (gfc_array_i4 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i2);
  
  void
! smaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_i4.c gcc-16-20250608/libgfortran/generated/maxloc1_4_i4.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i4);
  
  void
! maxloc1_4_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i4);
  
  void
! maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_i4 (gfc_array_i4 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i4);
  
  void
! mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i4);
  
  void
! mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_i4 (gfc_array_i4 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i4);
  
  void
! smaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i4);
  
  void
! smaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_i8.c gcc-16-20250608/libgfortran/generated/maxloc1_4_i8.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i8 (gfc_array_i4 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i8);
  
  void
! maxloc1_4_i8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_i8 (gfc_array_i4 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_i8);
  
  void
! maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_i8 (gfc_array_i4 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_i8 (gfc_array_i4 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i8);
  
  void
! mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_i8 (gfc_array_i4 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_i8);
  
  void
! mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_i8 (gfc_array_i4 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_i8 (gfc_array_i4 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i8);
  
  void
! smaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_i8 (gfc_array_i4 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_i8);
  
  void
! smaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_r10.c gcc-16-20250608/libgfortran/generated/maxloc1_4_r10.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r10 (gfc_array_i4 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r10);
  
  void
! maxloc1_4_r10 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r10 (gfc_array_i4 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r10);
  
  void
! maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_r10 (gfc_array_i4 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_r10 (gfc_array_i4 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r10);
  
  void
! mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_r10 (gfc_array_i4 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r10);
  
  void
! mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_r10 (gfc_array_i4 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_r10 (gfc_array_i4 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r10);
  
  void
! smaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_r10 (gfc_array_i4 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r10);
  
  void
! smaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_r16.c gcc-16-20250608/libgfortran/generated/maxloc1_4_r16.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r16 (gfc_array_i4 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r16);
  
  void
! maxloc1_4_r16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r16 (gfc_array_i4 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r16);
  
  void
! maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_r16 (gfc_array_i4 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_r16 (gfc_array_i4 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r16);
  
  void
! mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_r16 (gfc_array_i4 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r16);
  
  void
! mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_r16 (gfc_array_i4 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_r16 (gfc_array_i4 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r16);
  
  void
! smaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_r16 (gfc_array_i4 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r16);
  
  void
! smaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_r17.c gcc-16-20250608/libgfortran/generated/maxloc1_4_r17.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r17 (gfc_array_i4 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r17);
  
  void
! maxloc1_4_r17 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r17 (gfc_array_i4 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r17);
  
  void
! maxloc1_4_r17 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_r17 (gfc_array_i4 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_r17 (gfc_array_i4 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r17);
  
  void
! mmaxloc1_4_r17 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_r17 (gfc_array_i4 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r17);
  
  void
! mmaxloc1_4_r17 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_r17 (gfc_array_i4 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_r17 (gfc_array_i4 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r17);
  
  void
! smaxloc1_4_r17 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_r17 (gfc_array_i4 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r17);
  
  void
! smaxloc1_4_r17 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_r4.c gcc-16-20250608/libgfortran/generated/maxloc1_4_r4.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r4 (gfc_array_i4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r4);
  
  void
! maxloc1_4_r4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r4 (gfc_array_i4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r4);
  
  void
! maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_r4 (gfc_array_i4 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_r4 (gfc_array_i4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r4);
  
  void
! mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_r4 (gfc_array_i4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r4);
  
  void
! mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_r4 (gfc_array_i4 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_r4 (gfc_array_i4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r4);
  
  void
! smaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_r4 (gfc_array_i4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r4);
  
  void
! smaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_4_r8.c gcc-16-20250608/libgfortran/generated/maxloc1_4_r8.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_4_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_4_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r8 (gfc_array_i4 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r8);
  
  void
! maxloc1_4_r8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_4_r8 (gfc_array_i4 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_4_r8);
  
  void
! maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_4_r8 (gfc_array_i4 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_4_r8 (gfc_array_i4 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r8);
  
  void
! mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_4_r8 (gfc_array_i4 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_4_r8);
  
  void
! mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_4_r8 (gfc_array_i4 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_4_r8 (gfc_array_i4 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r8);
  
  void
! smaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_4_r8 (gfc_array_i4 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_4_r8);
  
  void
! smaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_i1.c gcc-16-20250608/libgfortran/generated/maxloc1_8_i1.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i1 (gfc_array_i8 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i1);
  
  void
! maxloc1_8_i1 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i1 (gfc_array_i8 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i1);
  
  void
! maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_i1 (gfc_array_i8 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_i1 (gfc_array_i8 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i1);
  
  void
! mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_i1 (gfc_array_i8 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i1);
  
  void
! mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_i1 (gfc_array_i8 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_i1 (gfc_array_i8 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i1);
  
  void
! smaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_i1 (gfc_array_i8 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i1);
  
  void
! smaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_i16.c gcc-16-20250608/libgfortran/generated/maxloc1_8_i16.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i16 (gfc_array_i8 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i16);
  
  void
! maxloc1_8_i16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i16 (gfc_array_i8 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i16);
  
  void
! maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_i16 (gfc_array_i8 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_i16 (gfc_array_i8 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i16);
  
  void
! mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_i16 (gfc_array_i8 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i16);
  
  void
! mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_i16 (gfc_array_i8 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_i16 (gfc_array_i8 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i16);
  
  void
! smaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_i16 (gfc_array_i8 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i16);
  
  void
! smaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_i2.c gcc-16-20250608/libgfortran/generated/maxloc1_8_i2.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i2 (gfc_array_i8 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i2);
  
  void
! maxloc1_8_i2 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i2 (gfc_array_i8 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i2);
  
  void
! maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_i2 (gfc_array_i8 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_i2 (gfc_array_i8 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i2);
  
  void
! mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_i2 (gfc_array_i8 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i2);
  
  void
! mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_i2 (gfc_array_i8 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_i2 (gfc_array_i8 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i2);
  
  void
! smaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_i2 (gfc_array_i8 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i2);
  
  void
! smaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_i4.c gcc-16-20250608/libgfortran/generated/maxloc1_8_i4.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i4 (gfc_array_i8 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i4);
  
  void
! maxloc1_8_i4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i4 (gfc_array_i8 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i4);
  
  void
! maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_i4 (gfc_array_i8 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_i4 (gfc_array_i8 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i4);
  
  void
! mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_i4 (gfc_array_i8 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i4);
  
  void
! mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_i4 (gfc_array_i8 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_i4 (gfc_array_i8 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i4);
  
  void
! smaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_i4 (gfc_array_i8 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i4);
  
  void
! smaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_i8.c gcc-16-20250608/libgfortran/generated/maxloc1_8_i8.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i8);
  
  void
! maxloc1_8_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_i8);
  
  void
! maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_i8 (gfc_array_i8 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i8);
  
  void
! mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_i8);
  
  void
! mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_i8 (gfc_array_i8 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i8);
  
  void
! smaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_i8);
  
  void
! smaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_r10.c gcc-16-20250608/libgfortran/generated/maxloc1_8_r10.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r10 (gfc_array_i8 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r10);
  
  void
! maxloc1_8_r10 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r10 (gfc_array_i8 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r10);
  
  void
! maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_r10 (gfc_array_i8 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_r10 (gfc_array_i8 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r10);
  
  void
! mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_r10 (gfc_array_i8 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r10);
  
  void
! mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_r10 (gfc_array_i8 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_r10 (gfc_array_i8 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r10);
  
  void
! smaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_r10 (gfc_array_i8 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r10);
  
  void
! smaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_r16.c gcc-16-20250608/libgfortran/generated/maxloc1_8_r16.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r16 (gfc_array_i8 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r16);
  
  void
! maxloc1_8_r16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r16 (gfc_array_i8 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r16);
  
  void
! maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_r16 (gfc_array_i8 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_r16 (gfc_array_i8 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r16);
  
  void
! mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_r16 (gfc_array_i8 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r16);
  
  void
! mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_r16 (gfc_array_i8 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_r16 (gfc_array_i8 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r16);
  
  void
! smaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_r16 (gfc_array_i8 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r16);
  
  void
! smaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_r17.c gcc-16-20250608/libgfortran/generated/maxloc1_8_r17.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r17 (gfc_array_i8 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r17);
  
  void
! maxloc1_8_r17 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r17 (gfc_array_i8 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r17);
  
  void
! maxloc1_8_r17 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_r17 (gfc_array_i8 * const rest
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_r17 (gfc_array_i8 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r17);
  
  void
! mmaxloc1_8_r17 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_r17 (gfc_array_i8 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r17);
  
  void
! mmaxloc1_8_r17 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_r17 (gfc_array_i8 * const res
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_r17 (gfc_array_i8 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r17);
  
  void
! smaxloc1_8_r17 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_r17 (gfc_array_i8 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r17);
  
  void
! smaxloc1_8_r17 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_r4.c gcc-16-20250608/libgfortran/generated/maxloc1_8_r4.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r4 (gfc_array_i8 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r4);
  
  void
! maxloc1_8_r4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r4 (gfc_array_i8 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r4);
  
  void
! maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_r4 (gfc_array_i8 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_r4 (gfc_array_i8 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r4);
  
  void
! mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_r4 (gfc_array_i8 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r4);
  
  void
! mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_r4 (gfc_array_i8 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_r4 (gfc_array_i8 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r4);
  
  void
! smaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_r4 (gfc_array_i8 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r4);
  
  void
! smaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxloc1_8_r8.c gcc-16-20250608/libgfortran/generated/maxloc1_8_r8.c
*** gcc-16-20250601/libgfortran/generated/maxloc1_8_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxloc1_8_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r8 (gfc_array_i8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r8);
  
  void
! maxloc1_8_r8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void maxloc1_8_r8 (gfc_array_i8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(maxloc1_8_r8);
  
  void
! maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxloc1_8_r8 (gfc_array_i8 * const restr
*** 216,230 ****
  }
  
  
! extern void mmaxloc1_8_r8 (gfc_array_i8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r8);
  
  void
! mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 216,230 ----
  }
  
  
! extern void mmaxloc1_8_r8 (gfc_array_i8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mmaxloc1_8_r8);
  
  void
! mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxloc1_8_r8 (gfc_array_i8 * const rest
*** 449,463 ****
  }
  
  
! extern void smaxloc1_8_r8 (gfc_array_i8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r8);
  
  void
! smaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 449,463 ----
  }
  
  
! extern void smaxloc1_8_r8 (gfc_array_i8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(smaxloc1_8_r8);
  
  void
! smaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_i1.c gcc-16-20250608/libgfortran/generated/maxval_i1.c
*** gcc-16-20250601/libgfortran/generated/maxval_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void maxval_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(maxval_i1);
  
  void
! maxval_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void maxval_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(maxval_i1);
  
  void
! maxval_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_i1 (gfc_array_i1 * const restrict
*** 202,216 ****
  }
  
  
! extern void mmaxval_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i1);
  
  void
! mmaxval_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i1);
  
  void
! mmaxval_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_i1 (gfc_array_i1 * const restric
*** 420,434 ****
  }
  
  
! extern void smaxval_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i1);
  
  void
! smaxval_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i1);
  
  void
! smaxval_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_i16.c gcc-16-20250608/libgfortran/generated/maxval_i16.c
*** gcc-16-20250601/libgfortran/generated/maxval_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void maxval_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(maxval_i16);
  
  void
! maxval_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void maxval_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(maxval_i16);
  
  void
! maxval_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_i16 (gfc_array_i16 * const restri
*** 202,216 ****
  }
  
  
! extern void mmaxval_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i16);
  
  void
! mmaxval_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i16);
  
  void
! mmaxval_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_i16 (gfc_array_i16 * const restr
*** 420,434 ****
  }
  
  
! extern void smaxval_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i16);
  
  void
! smaxval_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i16);
  
  void
! smaxval_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_i2.c gcc-16-20250608/libgfortran/generated/maxval_i2.c
*** gcc-16-20250601/libgfortran/generated/maxval_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void maxval_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(maxval_i2);
  
  void
! maxval_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void maxval_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(maxval_i2);
  
  void
! maxval_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_i2 (gfc_array_i2 * const restrict
*** 202,216 ****
  }
  
  
! extern void mmaxval_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i2);
  
  void
! mmaxval_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i2);
  
  void
! mmaxval_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_i2 (gfc_array_i2 * const restric
*** 420,434 ****
  }
  
  
! extern void smaxval_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i2);
  
  void
! smaxval_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i2);
  
  void
! smaxval_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_i4.c gcc-16-20250608/libgfortran/generated/maxval_i4.c
*** gcc-16-20250601/libgfortran/generated/maxval_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void maxval_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(maxval_i4);
  
  void
! maxval_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void maxval_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(maxval_i4);
  
  void
! maxval_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_i4 (gfc_array_i4 * const restrict
*** 202,216 ****
  }
  
  
! extern void mmaxval_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i4);
  
  void
! mmaxval_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i4);
  
  void
! mmaxval_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_i4 (gfc_array_i4 * const restric
*** 420,434 ****
  }
  
  
! extern void smaxval_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i4);
  
  void
! smaxval_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i4);
  
  void
! smaxval_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_i8.c gcc-16-20250608/libgfortran/generated/maxval_i8.c
*** gcc-16-20250601/libgfortran/generated/maxval_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void maxval_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(maxval_i8);
  
  void
! maxval_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void maxval_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(maxval_i8);
  
  void
! maxval_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_i8 (gfc_array_i8 * const restrict
*** 202,216 ****
  }
  
  
! extern void mmaxval_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i8);
  
  void
! mmaxval_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_i8);
  
  void
! mmaxval_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_i8 (gfc_array_i8 * const restric
*** 420,434 ****
  }
  
  
! extern void smaxval_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i8);
  
  void
! smaxval_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_i8);
  
  void
! smaxval_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_r10.c gcc-16-20250608/libgfortran/generated/maxval_r10.c
*** gcc-16-20250601/libgfortran/generated/maxval_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
  
  
! extern void maxval_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict);
  export_proto(maxval_r10);
  
  void
! maxval_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
  
  
! extern void maxval_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict);
  export_proto(maxval_r10);
  
  void
! maxval_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_r10 (gfc_array_r10 * const restri
*** 202,216 ****
  }
  
  
! extern void mmaxval_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r10);
  
  void
! mmaxval_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r10);
  
  void
! mmaxval_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_r10 (gfc_array_r10 * const restr
*** 420,434 ****
  }
  
  
! extern void smaxval_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r10);
  
  void
! smaxval_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r10);
  
  void
! smaxval_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_r16.c gcc-16-20250608/libgfortran/generated/maxval_r16.c
*** gcc-16-20250601/libgfortran/generated/maxval_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
  
  
! extern void maxval_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict);
  export_proto(maxval_r16);
  
  void
! maxval_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
  
  
! extern void maxval_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict);
  export_proto(maxval_r16);
  
  void
! maxval_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_r16 (gfc_array_r16 * const restri
*** 202,216 ****
  }
  
  
! extern void mmaxval_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r16);
  
  void
! mmaxval_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r16);
  
  void
! mmaxval_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_r16 (gfc_array_r16 * const restr
*** 420,434 ****
  }
  
  
! extern void smaxval_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r16);
  
  void
! smaxval_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r16);
  
  void
! smaxval_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_r17.c gcc-16-20250608/libgfortran/generated/maxval_r17.c
*** gcc-16-20250601/libgfortran/generated/maxval_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_17) && defined (HAVE_GFC_REAL_17)
  
  
! extern void maxval_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict);
  export_proto(maxval_r17);
  
  void
! maxval_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_17) && defined (HAVE_GFC_REAL_17)
  
  
! extern void maxval_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict);
  export_proto(maxval_r17);
  
  void
! maxval_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_r17 (gfc_array_r17 * const restri
*** 202,216 ****
  }
  
  
! extern void mmaxval_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r17);
  
  void
! mmaxval_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r17);
  
  void
! mmaxval_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_r17 (gfc_array_r17 * const restr
*** 420,434 ****
  }
  
  
! extern void smaxval_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r17);
  
  void
! smaxval_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r17);
  
  void
! smaxval_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_r4.c gcc-16-20250608/libgfortran/generated/maxval_r4.c
*** gcc-16-20250601/libgfortran/generated/maxval_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
  
  
! extern void maxval_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict);
  export_proto(maxval_r4);
  
  void
! maxval_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
  
  
! extern void maxval_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict);
  export_proto(maxval_r4);
  
  void
! maxval_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_r4 (gfc_array_r4 * const restrict
*** 202,216 ****
  }
  
  
! extern void mmaxval_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r4);
  
  void
! mmaxval_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r4);
  
  void
! mmaxval_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_r4 (gfc_array_r4 * const restric
*** 420,434 ****
  }
  
  
! extern void smaxval_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r4);
  
  void
! smaxval_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r4);
  
  void
! smaxval_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/maxval_r8.c gcc-16-20250608/libgfortran/generated/maxval_r8.c
*** gcc-16-20250601/libgfortran/generated/maxval_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/maxval_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
  
  
! extern void maxval_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict);
  export_proto(maxval_r8);
  
  void
! maxval_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
  
  
! extern void maxval_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict);
  export_proto(maxval_r8);
  
  void
! maxval_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** maxval_r8 (gfc_array_r8 * const restrict
*** 202,216 ****
  }
  
  
! extern void mmaxval_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r8);
  
  void
! mmaxval_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mmaxval_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mmaxval_r8);
  
  void
! mmaxval_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mmaxval_r8 (gfc_array_r8 * const restric
*** 420,434 ****
  }
  
  
! extern void smaxval_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r8);
  
  void
! smaxval_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void smaxval_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(smaxval_r8);
  
  void
! smaxval_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_i1.c gcc-16-20250608/libgfortran/generated/minloc1_16_i1.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i1 (gfc_array_i16 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i1);
  
  void
! minloc1_16_i1 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i1 (gfc_array_i16 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i1);
  
  void
! minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_i1 (gfc_array_i16 * const res
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_i1 (gfc_array_i16 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i1);
  
  void
! mminloc1_16_i1 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_i1 (gfc_array_i16 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i1);
  
  void
! mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_i1 (gfc_array_i16 * const re
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_i1 (gfc_array_i16 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i1);
  
  void
! sminloc1_16_i1 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_i1 (gfc_array_i16 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i1);
  
  void
! sminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_i16.c gcc-16-20250608/libgfortran/generated/minloc1_16_i16.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i16);
  
  void
! minloc1_16_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i16);
  
  void
! minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_i16 (gfc_array_i16 * const re
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i16);
  
  void
! mminloc1_16_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i16);
  
  void
! mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_i16 (gfc_array_i16 * const r
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i16);
  
  void
! sminloc1_16_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i16);
  
  void
! sminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_i2.c gcc-16-20250608/libgfortran/generated/minloc1_16_i2.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i2 (gfc_array_i16 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i2);
  
  void
! minloc1_16_i2 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i2 (gfc_array_i16 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i2);
  
  void
! minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_i2 (gfc_array_i16 * const res
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_i2 (gfc_array_i16 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i2);
  
  void
! mminloc1_16_i2 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_i2 (gfc_array_i16 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i2);
  
  void
! mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_i2 (gfc_array_i16 * const re
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_i2 (gfc_array_i16 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i2);
  
  void
! sminloc1_16_i2 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_i2 (gfc_array_i16 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i2);
  
  void
! sminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_i4.c gcc-16-20250608/libgfortran/generated/minloc1_16_i4.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i4 (gfc_array_i16 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i4);
  
  void
! minloc1_16_i4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i4 (gfc_array_i16 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i4);
  
  void
! minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_i4 (gfc_array_i16 * const res
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_i4 (gfc_array_i16 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i4);
  
  void
! mminloc1_16_i4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_i4 (gfc_array_i16 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i4);
  
  void
! mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_i4 (gfc_array_i16 * const re
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_i4 (gfc_array_i16 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i4);
  
  void
! sminloc1_16_i4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_i4 (gfc_array_i16 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i4);
  
  void
! sminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_i8.c gcc-16-20250608/libgfortran/generated/minloc1_16_i8.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i8 (gfc_array_i16 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i8);
  
  void
! minloc1_16_i8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_i8 (gfc_array_i16 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_i8);
  
  void
! minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_i8 (gfc_array_i16 * const res
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_i8 (gfc_array_i16 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i8);
  
  void
! mminloc1_16_i8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_i8 (gfc_array_i16 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_i8);
  
  void
! mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_i8 (gfc_array_i16 * const re
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_i8 (gfc_array_i16 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i8);
  
  void
! sminloc1_16_i8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_i8 (gfc_array_i16 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_i8);
  
  void
! sminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_r10.c gcc-16-20250608/libgfortran/generated/minloc1_16_r10.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r10 (gfc_array_i16 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r10);
  
  void
! minloc1_16_r10 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r10 (gfc_array_i16 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r10);
  
  void
! minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_r10 (gfc_array_i16 * const re
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_r10 (gfc_array_i16 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r10);
  
  void
! mminloc1_16_r10 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_r10 (gfc_array_i16 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r10);
  
  void
! mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_r10 (gfc_array_i16 * const r
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_r10 (gfc_array_i16 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r10);
  
  void
! sminloc1_16_r10 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_r10 (gfc_array_i16 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r10);
  
  void
! sminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_r16.c gcc-16-20250608/libgfortran/generated/minloc1_16_r16.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r16 (gfc_array_i16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r16);
  
  void
! minloc1_16_r16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r16 (gfc_array_i16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r16);
  
  void
! minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_r16 (gfc_array_i16 * const re
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_r16 (gfc_array_i16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r16);
  
  void
! mminloc1_16_r16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_r16 (gfc_array_i16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r16);
  
  void
! mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_r16 (gfc_array_i16 * const r
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_r16 (gfc_array_i16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r16);
  
  void
! sminloc1_16_r16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_r16 (gfc_array_i16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r16);
  
  void
! sminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_r17.c gcc-16-20250608/libgfortran/generated/minloc1_16_r17.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r17 (gfc_array_i16 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r17);
  
  void
! minloc1_16_r17 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r17 (gfc_array_i16 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r17);
  
  void
! minloc1_16_r17 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_r17 (gfc_array_i16 * const re
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_r17 (gfc_array_i16 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r17);
  
  void
! mminloc1_16_r17 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_r17 (gfc_array_i16 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r17);
  
  void
! mminloc1_16_r17 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_r17 (gfc_array_i16 * const r
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_r17 (gfc_array_i16 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r17);
  
  void
! sminloc1_16_r17 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_r17 (gfc_array_i16 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r17);
  
  void
! sminloc1_16_r17 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_r4.c gcc-16-20250608/libgfortran/generated/minloc1_16_r4.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r4 (gfc_array_i16 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r4);
  
  void
! minloc1_16_r4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r4 (gfc_array_i16 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r4);
  
  void
! minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_r4 (gfc_array_i16 * const res
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_r4 (gfc_array_i16 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r4);
  
  void
! mminloc1_16_r4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_r4 (gfc_array_i16 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r4);
  
  void
! mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_r4 (gfc_array_i16 * const re
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_r4 (gfc_array_i16 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r4);
  
  void
! sminloc1_16_r4 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_r4 (gfc_array_i16 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r4);
  
  void
! sminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_16_r8.c gcc-16-20250608/libgfortran/generated/minloc1_16_r8.c
*** gcc-16-20250601/libgfortran/generated/minloc1_16_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_16_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r8 (gfc_array_i16 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r8);
  
  void
! minloc1_16_r8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_16_r8 (gfc_array_i16 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_16_r8);
  
  void
! minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_16_r8 (gfc_array_i16 * const res
*** 226,240 ****
  }
  
  
! extern void mminloc1_16_r8 (gfc_array_i16 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r8);
  
  void
! mminloc1_16_r8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_16_r8 (gfc_array_i16 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_16_r8);
  
  void
! mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_16_r8 (gfc_array_i16 * const re
*** 459,473 ****
  }
  
  
! extern void sminloc1_16_r8 (gfc_array_i16 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r8);
  
  void
! sminloc1_16_r8 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_16_r8 (gfc_array_i16 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_16_r8);
  
  void
! sminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_i1.c gcc-16-20250608/libgfortran/generated/minloc1_4_i1.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i1 (gfc_array_i4 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i1);
  
  void
! minloc1_4_i1 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i1 (gfc_array_i4 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i1);
  
  void
! minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_i1 (gfc_array_i4 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_i1 (gfc_array_i4 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i1);
  
  void
! mminloc1_4_i1 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_i1 (gfc_array_i4 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i1);
  
  void
! mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_i1 (gfc_array_i4 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_i1 (gfc_array_i4 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i1);
  
  void
! sminloc1_4_i1 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_i1 (gfc_array_i4 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i1);
  
  void
! sminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_i16.c gcc-16-20250608/libgfortran/generated/minloc1_4_i16.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i16 (gfc_array_i4 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i16);
  
  void
! minloc1_4_i16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i16 (gfc_array_i4 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i16);
  
  void
! minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_i16 (gfc_array_i4 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_i16 (gfc_array_i4 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i16);
  
  void
! mminloc1_4_i16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_i16 (gfc_array_i4 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i16);
  
  void
! mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_i16 (gfc_array_i4 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_i16 (gfc_array_i4 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i16);
  
  void
! sminloc1_4_i16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_i16 (gfc_array_i4 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i16);
  
  void
! sminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_i2.c gcc-16-20250608/libgfortran/generated/minloc1_4_i2.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i2 (gfc_array_i4 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i2);
  
  void
! minloc1_4_i2 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i2 (gfc_array_i4 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i2);
  
  void
! minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_i2 (gfc_array_i4 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_i2 (gfc_array_i4 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i2);
  
  void
! mminloc1_4_i2 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_i2 (gfc_array_i4 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i2);
  
  void
! mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_i2 (gfc_array_i4 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_i2 (gfc_array_i4 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i2);
  
  void
! sminloc1_4_i2 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_i2 (gfc_array_i4 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i2);
  
  void
! sminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_i4.c gcc-16-20250608/libgfortran/generated/minloc1_4_i4.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i4);
  
  void
! minloc1_4_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i4);
  
  void
! minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_i4 (gfc_array_i4 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i4);
  
  void
! mminloc1_4_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i4);
  
  void
! mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_i4 (gfc_array_i4 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i4);
  
  void
! sminloc1_4_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i4);
  
  void
! sminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_i8.c gcc-16-20250608/libgfortran/generated/minloc1_4_i8.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i8 (gfc_array_i4 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i8);
  
  void
! minloc1_4_i8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_i8 (gfc_array_i4 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_i8);
  
  void
! minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_i8 (gfc_array_i4 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_i8 (gfc_array_i4 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i8);
  
  void
! mminloc1_4_i8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_i8 (gfc_array_i4 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_i8);
  
  void
! mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_i8 (gfc_array_i4 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_i8 (gfc_array_i4 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i8);
  
  void
! sminloc1_4_i8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_i8 (gfc_array_i4 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_i8);
  
  void
! sminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_r10.c gcc-16-20250608/libgfortran/generated/minloc1_4_r10.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r10 (gfc_array_i4 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r10);
  
  void
! minloc1_4_r10 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r10 (gfc_array_i4 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r10);
  
  void
! minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_r10 (gfc_array_i4 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_r10 (gfc_array_i4 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r10);
  
  void
! mminloc1_4_r10 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_r10 (gfc_array_i4 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r10);
  
  void
! mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_r10 (gfc_array_i4 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_r10 (gfc_array_i4 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r10);
  
  void
! sminloc1_4_r10 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_r10 (gfc_array_i4 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r10);
  
  void
! sminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_r16.c gcc-16-20250608/libgfortran/generated/minloc1_4_r16.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r16 (gfc_array_i4 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r16);
  
  void
! minloc1_4_r16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r16 (gfc_array_i4 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r16);
  
  void
! minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_r16 (gfc_array_i4 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_r16 (gfc_array_i4 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r16);
  
  void
! mminloc1_4_r16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_r16 (gfc_array_i4 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r16);
  
  void
! mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_r16 (gfc_array_i4 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_r16 (gfc_array_i4 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r16);
  
  void
! sminloc1_4_r16 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_r16 (gfc_array_i4 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r16);
  
  void
! sminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_r17.c gcc-16-20250608/libgfortran/generated/minloc1_4_r17.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r17 (gfc_array_i4 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r17);
  
  void
! minloc1_4_r17 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r17 (gfc_array_i4 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r17);
  
  void
! minloc1_4_r17 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_r17 (gfc_array_i4 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_r17 (gfc_array_i4 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r17);
  
  void
! mminloc1_4_r17 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_r17 (gfc_array_i4 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r17);
  
  void
! mminloc1_4_r17 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_r17 (gfc_array_i4 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_r17 (gfc_array_i4 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r17);
  
  void
! sminloc1_4_r17 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_r17 (gfc_array_i4 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r17);
  
  void
! sminloc1_4_r17 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_r4.c gcc-16-20250608/libgfortran/generated/minloc1_4_r4.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r4 (gfc_array_i4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r4);
  
  void
! minloc1_4_r4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r4 (gfc_array_i4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r4);
  
  void
! minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_r4 (gfc_array_i4 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_r4 (gfc_array_i4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r4);
  
  void
! mminloc1_4_r4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_r4 (gfc_array_i4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r4);
  
  void
! mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_r4 (gfc_array_i4 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_r4 (gfc_array_i4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r4);
  
  void
! sminloc1_4_r4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_r4 (gfc_array_i4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r4);
  
  void
! sminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_4_r8.c gcc-16-20250608/libgfortran/generated/minloc1_4_r8.c
*** gcc-16-20250601/libgfortran/generated/minloc1_4_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_4_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r8 (gfc_array_i4 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r8);
  
  void
! minloc1_4_r8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_4_r8 (gfc_array_i4 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_4_r8);
  
  void
! minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_4_r8 (gfc_array_i4 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_4_r8 (gfc_array_i4 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r8);
  
  void
! mminloc1_4_r8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_4_r8 (gfc_array_i4 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_4_r8);
  
  void
! mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_4_r8 (gfc_array_i4 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_4_r8 (gfc_array_i4 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r8);
  
  void
! sminloc1_4_r8 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_4_r8 (gfc_array_i4 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_4_r8);
  
  void
! sminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_i1.c gcc-16-20250608/libgfortran/generated/minloc1_8_i1.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i1 (gfc_array_i8 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i1);
  
  void
! minloc1_8_i1 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i1 (gfc_array_i8 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i1);
  
  void
! minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_i1 (gfc_array_i8 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_i1 (gfc_array_i8 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i1);
  
  void
! mminloc1_8_i1 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_i1 (gfc_array_i8 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i1);
  
  void
! mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_i1 (gfc_array_i8 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_i1 (gfc_array_i8 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i1);
  
  void
! sminloc1_8_i1 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_i1 (gfc_array_i8 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i1);
  
  void
! sminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_i16.c gcc-16-20250608/libgfortran/generated/minloc1_8_i16.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i16 (gfc_array_i8 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i16);
  
  void
! minloc1_8_i16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i16 (gfc_array_i8 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i16);
  
  void
! minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_i16 (gfc_array_i8 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_i16 (gfc_array_i8 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i16);
  
  void
! mminloc1_8_i16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_i16 (gfc_array_i8 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i16);
  
  void
! mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_i16 (gfc_array_i8 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_i16 (gfc_array_i8 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i16);
  
  void
! sminloc1_8_i16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_i16 (gfc_array_i8 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i16);
  
  void
! sminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_i2.c gcc-16-20250608/libgfortran/generated/minloc1_8_i2.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i2 (gfc_array_i8 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i2);
  
  void
! minloc1_8_i2 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i2 (gfc_array_i8 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i2);
  
  void
! minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_i2 (gfc_array_i8 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_i2 (gfc_array_i8 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i2);
  
  void
! mminloc1_8_i2 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_i2 (gfc_array_i8 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i2);
  
  void
! mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_i2 (gfc_array_i8 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_i2 (gfc_array_i8 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i2);
  
  void
! sminloc1_8_i2 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_i2 (gfc_array_i8 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i2);
  
  void
! sminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_i4.c gcc-16-20250608/libgfortran/generated/minloc1_8_i4.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i4 (gfc_array_i8 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i4);
  
  void
! minloc1_8_i4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i4 (gfc_array_i8 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i4);
  
  void
! minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_i4 (gfc_array_i8 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_i4 (gfc_array_i8 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i4);
  
  void
! mminloc1_8_i4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_i4 (gfc_array_i8 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i4);
  
  void
! mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_i4 (gfc_array_i8 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_i4 (gfc_array_i8 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i4);
  
  void
! sminloc1_8_i4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_i4 (gfc_array_i8 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i4);
  
  void
! sminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_i8.c gcc-16-20250608/libgfortran/generated/minloc1_8_i8.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i8);
  
  void
! minloc1_8_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_i8);
  
  void
! minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_i8 (gfc_array_i8 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i8);
  
  void
! mminloc1_8_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_i8);
  
  void
! mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_i8 (gfc_array_i8 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i8);
  
  void
! sminloc1_8_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_i8);
  
  void
! sminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_r10.c gcc-16-20250608/libgfortran/generated/minloc1_8_r10.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r10 (gfc_array_i8 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r10);
  
  void
! minloc1_8_r10 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r10 (gfc_array_i8 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r10);
  
  void
! minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_r10 (gfc_array_i8 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_r10 (gfc_array_i8 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r10);
  
  void
! mminloc1_8_r10 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_r10 (gfc_array_i8 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r10);
  
  void
! mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_r10 (gfc_array_i8 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_r10 (gfc_array_i8 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r10);
  
  void
! sminloc1_8_r10 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_r10 (gfc_array_i8 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r10);
  
  void
! sminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_r16.c gcc-16-20250608/libgfortran/generated/minloc1_8_r16.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r16 (gfc_array_i8 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r16);
  
  void
! minloc1_8_r16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r16 (gfc_array_i8 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r16);
  
  void
! minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_r16 (gfc_array_i8 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_r16 (gfc_array_i8 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r16);
  
  void
! mminloc1_8_r16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_r16 (gfc_array_i8 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r16);
  
  void
! mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_r16 (gfc_array_i8 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_r16 (gfc_array_i8 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r16);
  
  void
! sminloc1_8_r16 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_r16 (gfc_array_i8 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r16);
  
  void
! sminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_r17.c gcc-16-20250608/libgfortran/generated/minloc1_8_r17.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r17 (gfc_array_i8 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r17);
  
  void
! minloc1_8_r17 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r17 (gfc_array_i8 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r17);
  
  void
! minloc1_8_r17 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_r17 (gfc_array_i8 * const rest
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_r17 (gfc_array_i8 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r17);
  
  void
! mminloc1_8_r17 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_r17 (gfc_array_i8 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r17);
  
  void
! mminloc1_8_r17 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_r17 (gfc_array_i8 * const res
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_r17 (gfc_array_i8 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r17);
  
  void
! sminloc1_8_r17 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_r17 (gfc_array_i8 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r17);
  
  void
! sminloc1_8_r17 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_r4.c gcc-16-20250608/libgfortran/generated/minloc1_8_r4.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r4 (gfc_array_i8 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r4);
  
  void
! minloc1_8_r4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r4 (gfc_array_i8 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r4);
  
  void
! minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_r4 (gfc_array_i8 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_r4 (gfc_array_i8 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r4);
  
  void
! mminloc1_8_r4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_r4 (gfc_array_i8 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r4);
  
  void
! mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_r4 (gfc_array_i8 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_r4 (gfc_array_i8 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r4);
  
  void
! sminloc1_8_r4 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_r4 (gfc_array_i8 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r4);
  
  void
! sminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minloc1_8_r8.c gcc-16-20250608/libgfortran/generated/minloc1_8_r8.c
*** gcc-16-20250601/libgfortran/generated/minloc1_8_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minloc1_8_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r8 (gfc_array_i8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r8);
  
  void
! minloc1_8_r8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define HAVE_BACK_ARG 1
  
  
! extern void minloc1_8_r8 (gfc_array_i8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict, GFC_LOGICAL_4 back);
  export_proto(minloc1_8_r8);
  
  void
! minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minloc1_8_r8 (gfc_array_i8 * const restr
*** 226,240 ****
  }
  
  
! extern void mminloc1_8_r8 (gfc_array_i8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r8);
  
  void
! mminloc1_8_r8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 226,240 ----
  }
  
  
! extern void mminloc1_8_r8 (gfc_array_i8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict, GFC_LOGICAL_4 back);
  export_proto(mminloc1_8_r8);
  
  void
! mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminloc1_8_r8 (gfc_array_i8 * const rest
*** 459,473 ****
  }
  
  
! extern void sminloc1_8_r8 (gfc_array_i8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r8);
  
  void
! sminloc1_8_r8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 459,473 ----
  }
  
  
! extern void sminloc1_8_r8 (gfc_array_i8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *, GFC_LOGICAL_4 back);
  export_proto(sminloc1_8_r8);
  
  void
! sminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask, GFC_LOGICAL_4 back)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_i1.c gcc-16-20250608/libgfortran/generated/minval_i1.c
*** gcc-16-20250601/libgfortran/generated/minval_i1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_i1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void minval_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(minval_i1);
  
  void
! minval_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_1) && defined (HAVE_GFC_INTEGER_1)
  
  
! extern void minval_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict);
  export_proto(minval_i1);
  
  void
! minval_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_i1 (gfc_array_i1 * const restrict
*** 202,216 ****
  }
  
  
! extern void mminval_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i1);
  
  void
! mminval_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i1);
  
  void
! mminval_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_i1 (gfc_array_i1 * const restric
*** 420,434 ****
  }
  
  
! extern void sminval_i1 (gfc_array_i1 * const restrict, 
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i1);
  
  void
! sminval_i1 (gfc_array_i1 * const restrict retarray, 
! 	gfc_array_i1 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_i1 (gfc_array_i1 * const restrict,
  	gfc_array_i1 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i1);
  
  void
! sminval_i1 (gfc_array_i1 * const restrict retarray,
! 	gfc_array_i1 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_i16.c gcc-16-20250608/libgfortran/generated/minval_i16.c
*** gcc-16-20250601/libgfortran/generated/minval_i16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_i16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void minval_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(minval_i16);
  
  void
! minval_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_INTEGER_16)
  
  
! extern void minval_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict);
  export_proto(minval_i16);
  
  void
! minval_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_i16 (gfc_array_i16 * const restri
*** 202,216 ****
  }
  
  
! extern void mminval_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i16);
  
  void
! mminval_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i16);
  
  void
! mminval_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_i16 (gfc_array_i16 * const restr
*** 420,434 ****
  }
  
  
! extern void sminval_i16 (gfc_array_i16 * const restrict, 
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i16);
  
  void
! sminval_i16 (gfc_array_i16 * const restrict retarray, 
! 	gfc_array_i16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_i16 (gfc_array_i16 * const restrict,
  	gfc_array_i16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i16);
  
  void
! sminval_i16 (gfc_array_i16 * const restrict retarray,
! 	gfc_array_i16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_i2.c gcc-16-20250608/libgfortran/generated/minval_i2.c
*** gcc-16-20250601/libgfortran/generated/minval_i2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_i2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void minval_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(minval_i2);
  
  void
! minval_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_2) && defined (HAVE_GFC_INTEGER_2)
  
  
! extern void minval_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict);
  export_proto(minval_i2);
  
  void
! minval_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_i2 (gfc_array_i2 * const restrict
*** 202,216 ****
  }
  
  
! extern void mminval_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i2);
  
  void
! mminval_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i2);
  
  void
! mminval_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_i2 (gfc_array_i2 * const restric
*** 420,434 ****
  }
  
  
! extern void sminval_i2 (gfc_array_i2 * const restrict, 
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i2);
  
  void
! sminval_i2 (gfc_array_i2 * const restrict retarray, 
! 	gfc_array_i2 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_i2 (gfc_array_i2 * const restrict,
  	gfc_array_i2 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i2);
  
  void
! sminval_i2 (gfc_array_i2 * const restrict retarray,
! 	gfc_array_i2 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_i4.c gcc-16-20250608/libgfortran/generated/minval_i4.c
*** gcc-16-20250601/libgfortran/generated/minval_i4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_i4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void minval_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(minval_i4);
  
  void
! minval_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_4)
  
  
! extern void minval_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict);
  export_proto(minval_i4);
  
  void
! minval_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_i4 (gfc_array_i4 * const restrict
*** 202,216 ****
  }
  
  
! extern void mminval_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i4);
  
  void
! mminval_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i4);
  
  void
! mminval_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_i4 (gfc_array_i4 * const restric
*** 420,434 ****
  }
  
  
! extern void sminval_i4 (gfc_array_i4 * const restrict, 
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i4);
  
  void
! sminval_i4 (gfc_array_i4 * const restrict retarray, 
! 	gfc_array_i4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_i4 (gfc_array_i4 * const restrict,
  	gfc_array_i4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i4);
  
  void
! sminval_i4 (gfc_array_i4 * const restrict retarray,
! 	gfc_array_i4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_i8.c gcc-16-20250608/libgfortran/generated/minval_i8.c
*** gcc-16-20250601/libgfortran/generated/minval_i8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_i8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void minval_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(minval_i8);
  
  void
! minval_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_INTEGER_8)
  
  
! extern void minval_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict);
  export_proto(minval_i8);
  
  void
! minval_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_i8 (gfc_array_i8 * const restrict
*** 202,216 ****
  }
  
  
! extern void mminval_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i8);
  
  void
! mminval_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_i8);
  
  void
! mminval_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_i8 (gfc_array_i8 * const restric
*** 420,434 ****
  }
  
  
! extern void sminval_i8 (gfc_array_i8 * const restrict, 
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i8);
  
  void
! sminval_i8 (gfc_array_i8 * const restrict retarray, 
! 	gfc_array_i8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_i8 (gfc_array_i8 * const restrict,
  	gfc_array_i8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_i8);
  
  void
! sminval_i8 (gfc_array_i8 * const restrict retarray,
! 	gfc_array_i8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_r10.c gcc-16-20250608/libgfortran/generated/minval_r10.c
*** gcc-16-20250601/libgfortran/generated/minval_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
  
  
! extern void minval_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict);
  export_proto(minval_r10);
  
  void
! minval_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
  
  
! extern void minval_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict);
  export_proto(minval_r10);
  
  void
! minval_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_r10 (gfc_array_r10 * const restri
*** 202,216 ****
  }
  
  
! extern void mminval_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r10);
  
  void
! mminval_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r10);
  
  void
! mminval_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_r10 (gfc_array_r10 * const restr
*** 420,434 ****
  }
  
  
! extern void sminval_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r10);
  
  void
! sminval_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r10);
  
  void
! sminval_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_r16.c gcc-16-20250608/libgfortran/generated/minval_r16.c
*** gcc-16-20250601/libgfortran/generated/minval_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
  
  
! extern void minval_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict);
  export_proto(minval_r16);
  
  void
! minval_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
  
  
! extern void minval_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict);
  export_proto(minval_r16);
  
  void
! minval_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_r16 (gfc_array_r16 * const restri
*** 202,216 ****
  }
  
  
! extern void mminval_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r16);
  
  void
! mminval_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r16);
  
  void
! mminval_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_r16 (gfc_array_r16 * const restr
*** 420,434 ****
  }
  
  
! extern void sminval_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r16);
  
  void
! sminval_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r16);
  
  void
! sminval_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_r17.c gcc-16-20250608/libgfortran/generated/minval_r17.c
*** gcc-16-20250601/libgfortran/generated/minval_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_17) && defined (HAVE_GFC_REAL_17)
  
  
! extern void minval_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict);
  export_proto(minval_r17);
  
  void
! minval_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_17) && defined (HAVE_GFC_REAL_17)
  
  
! extern void minval_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict);
  export_proto(minval_r17);
  
  void
! minval_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_r17 (gfc_array_r17 * const restri
*** 202,216 ****
  }
  
  
! extern void mminval_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r17);
  
  void
! mminval_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r17);
  
  void
! mminval_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_r17 (gfc_array_r17 * const restr
*** 420,434 ****
  }
  
  
! extern void sminval_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r17);
  
  void
! sminval_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r17);
  
  void
! sminval_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_r4.c gcc-16-20250608/libgfortran/generated/minval_r4.c
*** gcc-16-20250601/libgfortran/generated/minval_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
  
  
! extern void minval_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict);
  export_proto(minval_r4);
  
  void
! minval_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
  
  
! extern void minval_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict);
  export_proto(minval_r4);
  
  void
! minval_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_r4 (gfc_array_r4 * const restrict
*** 202,216 ****
  }
  
  
! extern void mminval_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r4);
  
  void
! mminval_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r4);
  
  void
! mminval_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_r4 (gfc_array_r4 * const restric
*** 420,434 ****
  }
  
  
! extern void sminval_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r4);
  
  void
! sminval_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r4);
  
  void
! sminval_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/minval_r8.c gcc-16-20250608/libgfortran/generated/minval_r8.c
*** gcc-16-20250601/libgfortran/generated/minval_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/minval_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
  
  
! extern void minval_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict);
  export_proto(minval_r8);
  
  void
! minval_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
  
  
! extern void minval_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict);
  export_proto(minval_r8);
  
  void
! minval_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** minval_r8 (gfc_array_r8 * const restrict
*** 202,216 ****
  }
  
  
! extern void mminval_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r8);
  
  void
! mminval_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 202,216 ----
  }
  
  
! extern void mminval_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	gfc_array_l1 * const restrict);
  export_proto(mminval_r8);
  
  void
! mminval_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	gfc_array_l1 * const restrict mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
*************** mminval_r8 (gfc_array_r8 * const restric
*** 420,434 ****
  }
  
  
! extern void sminval_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r8);
  
  void
! sminval_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
! 	const index_type * const restrict pdim, 
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 420,434 ----
  }
  
  
! extern void sminval_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict,
  	GFC_LOGICAL_4 *);
  export_proto(sminval_r8);
  
  void
! sminval_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
! 	const index_type * const restrict pdim,
  	GFC_LOGICAL_4 * mask)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/norm2_r10.c gcc-16-20250608/libgfortran/generated/norm2_r10.c
*** gcc-16-20250601/libgfortran/generated/norm2_r10.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/norm2_r10.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define MATHFUNC(funcname) funcname ## l
  
  
! extern void norm2_r10 (gfc_array_r10 * const restrict, 
  	gfc_array_r10 * const restrict, const index_type * const restrict);
  export_proto(norm2_r10);
  
  void
! norm2_r10 (gfc_array_r10 * const restrict retarray, 
! 	gfc_array_r10 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define MATHFUNC(funcname) funcname ## l
  
  
! extern void norm2_r10 (gfc_array_r10 * const restrict,
  	gfc_array_r10 * const restrict, const index_type * const restrict);
  export_proto(norm2_r10);
  
  void
! norm2_r10 (gfc_array_r10 * const restrict retarray,
! 	gfc_array_r10 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/norm2_r16.c gcc-16-20250608/libgfortran/generated/norm2_r16.c
*** gcc-16-20250601/libgfortran/generated/norm2_r16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/norm2_r16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 40,52 ****
  #endif
  
  
! extern void norm2_r16 (gfc_array_r16 * const restrict, 
  	gfc_array_r16 * const restrict, const index_type * const restrict);
  export_proto(norm2_r16);
  
  void
! norm2_r16 (gfc_array_r16 * const restrict retarray, 
! 	gfc_array_r16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 40,52 ----
  #endif
  
  
! extern void norm2_r16 (gfc_array_r16 * const restrict,
  	gfc_array_r16 * const restrict, const index_type * const restrict);
  export_proto(norm2_r16);
  
  void
! norm2_r16 (gfc_array_r16 * const restrict retarray,
! 	gfc_array_r16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/norm2_r17.c gcc-16-20250608/libgfortran/generated/norm2_r17.c
*** gcc-16-20250601/libgfortran/generated/norm2_r17.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/norm2_r17.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 38,50 ****
  #endif
  
  
! extern void norm2_r17 (gfc_array_r17 * const restrict, 
  	gfc_array_r17 * const restrict, const index_type * const restrict);
  export_proto(norm2_r17);
  
  void
! norm2_r17 (gfc_array_r17 * const restrict retarray, 
! 	gfc_array_r17 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 38,50 ----
  #endif
  
  
! extern void norm2_r17 (gfc_array_r17 * const restrict,
  	gfc_array_r17 * const restrict, const index_type * const restrict);
  export_proto(norm2_r17);
  
  void
! norm2_r17 (gfc_array_r17 * const restrict retarray,
! 	gfc_array_r17 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/norm2_r4.c gcc-16-20250608/libgfortran/generated/norm2_r4.c
*** gcc-16-20250601/libgfortran/generated/norm2_r4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/norm2_r4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define MATHFUNC(funcname) funcname ## f
  
  
! extern void norm2_r4 (gfc_array_r4 * const restrict, 
  	gfc_array_r4 * const restrict, const index_type * const restrict);
  export_proto(norm2_r4);
  
  void
! norm2_r4 (gfc_array_r4 * const restrict retarray, 
! 	gfc_array_r4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define MATHFUNC(funcname) funcname ## f
  
  
! extern void norm2_r4 (gfc_array_r4 * const restrict,
  	gfc_array_r4 * const restrict, const index_type * const restrict);
  export_proto(norm2_r4);
  
  void
! norm2_r4 (gfc_array_r4 * const restrict retarray,
! 	gfc_array_r4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/norm2_r8.c gcc-16-20250608/libgfortran/generated/norm2_r8.c
*** gcc-16-20250601/libgfortran/generated/norm2_r8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/norm2_r8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 32,44 ****
  #define MATHFUNC(funcname) funcname
  
  
! extern void norm2_r8 (gfc_array_r8 * const restrict, 
  	gfc_array_r8 * const restrict, const index_type * const restrict);
  export_proto(norm2_r8);
  
  void
! norm2_r8 (gfc_array_r8 * const restrict retarray, 
! 	gfc_array_r8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 32,44 ----
  #define MATHFUNC(funcname) funcname
  
  
! extern void norm2_r8 (gfc_array_r8 * const restrict,
  	gfc_array_r8 * const restrict, const index_type * const restrict);
  export_proto(norm2_r8);
  
  void
! norm2_r8 (gfc_array_r8 * const restrict retarray,
! 	gfc_array_r8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/parity_l1.c gcc-16-20250608/libgfortran/generated/parity_l1.c
*** gcc-16-20250601/libgfortran/generated/parity_l1.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/parity_l1.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_LOGICAL_1) && defined (HAVE_GFC_LOGICAL_1)
  
  
! extern void parity_l1 (gfc_array_l1 * const restrict, 
  	gfc_array_l1 * const restrict, const index_type * const restrict);
  export_proto(parity_l1);
  
  void
! parity_l1 (gfc_array_l1 * const restrict retarray, 
! 	gfc_array_l1 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_LOGICAL_1) && defined (HAVE_GFC_LOGICAL_1)
  
  
! extern void parity_l1 (gfc_array_l1 * const restrict,
  	gfc_array_l1 * const restrict, const index_type * const restrict);
  export_proto(parity_l1);
  
  void
! parity_l1 (gfc_array_l1 * const restrict retarray,
! 	gfc_array_l1 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/parity_l16.c gcc-16-20250608/libgfortran/generated/parity_l16.c
*** gcc-16-20250601/libgfortran/generated/parity_l16.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/parity_l16.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_LOGICAL_16) && defined (HAVE_GFC_LOGICAL_16)
  
  
! extern void parity_l16 (gfc_array_l16 * const restrict, 
  	gfc_array_l16 * const restrict, const index_type * const restrict);
  export_proto(parity_l16);
  
  void
! parity_l16 (gfc_array_l16 * const restrict retarray, 
! 	gfc_array_l16 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_LOGICAL_16) && defined (HAVE_GFC_LOGICAL_16)
  
  
! extern void parity_l16 (gfc_array_l16 * const restrict,
  	gfc_array_l16 * const restrict, const index_type * const restrict);
  export_proto(parity_l16);
  
  void
! parity_l16 (gfc_array_l16 * const restrict retarray,
! 	gfc_array_l16 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/parity_l2.c gcc-16-20250608/libgfortran/generated/parity_l2.c
*** gcc-16-20250601/libgfortran/generated/parity_l2.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/parity_l2.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_LOGICAL_2) && defined (HAVE_GFC_LOGICAL_2)
  
  
! extern void parity_l2 (gfc_array_l2 * const restrict, 
  	gfc_array_l2 * const restrict, const index_type * const restrict);
  export_proto(parity_l2);
  
  void
! parity_l2 (gfc_array_l2 * const restrict retarray, 
! 	gfc_array_l2 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_LOGICAL_2) && defined (HAVE_GFC_LOGICAL_2)
  
  
! extern void parity_l2 (gfc_array_l2 * const restrict,
  	gfc_array_l2 * const restrict, const index_type * const restrict);
  export_proto(parity_l2);
  
  void
! parity_l2 (gfc_array_l2 * const restrict retarray,
! 	gfc_array_l2 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/parity_l4.c gcc-16-20250608/libgfortran/generated/parity_l4.c
*** gcc-16-20250601/libgfortran/generated/parity_l4.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/parity_l4.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_LOGICAL_4) && defined (HAVE_GFC_LOGICAL_4)
  
  
! extern void parity_l4 (gfc_array_l4 * const restrict, 
  	gfc_array_l4 * const restrict, const index_type * const restrict);
  export_proto(parity_l4);
  
  void
! parity_l4 (gfc_array_l4 * const restrict retarray, 
! 	gfc_array_l4 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_LOGICAL_4) && defined (HAVE_GFC_LOGICAL_4)
  
  
! extern void parity_l4 (gfc_array_l4 * const restrict,
  	gfc_array_l4 * const restrict, const index_type * const restrict);
  export_proto(parity_l4);
  
  void
! parity_l4 (gfc_array_l4 * const restrict retarray,
! 	gfc_array_l4 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/generated/parity_l8.c gcc-16-20250608/libgfortran/generated/parity_l8.c
*** gcc-16-20250601/libgfortran/generated/parity_l8.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/generated/parity_l8.c	Sun Jun  8 22:32:41 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,41 ****
  #if defined (HAVE_GFC_LOGICAL_8) && defined (HAVE_GFC_LOGICAL_8)
  
  
! extern void parity_l8 (gfc_array_l8 * const restrict, 
  	gfc_array_l8 * const restrict, const index_type * const restrict);
  export_proto(parity_l8);
  
  void
! parity_l8 (gfc_array_l8 * const restrict retarray, 
! 	gfc_array_l8 * const restrict array, 
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
--- 29,41 ----
  #if defined (HAVE_GFC_LOGICAL_8) && defined (HAVE_GFC_LOGICAL_8)
  
  
! extern void parity_l8 (gfc_array_l8 * const restrict,
  	gfc_array_l8 * const restrict, const index_type * const restrict);
  export_proto(parity_l8);
  
  void
! parity_l8 (gfc_array_l8 * const restrict retarray,
! 	gfc_array_l8 * const restrict array,
  	const index_type * const restrict pdim)
  {
    index_type count[GFC_MAX_DIMENSIONS];
diff -Nrcpad gcc-16-20250601/libgfortran/io/format.c gcc-16-20250608/libgfortran/io/format.c
*** gcc-16-20250601/libgfortran/io/format.c	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgfortran/io/format.c	Sun Jun  8 22:32:41 2025
*************** parse_format_list (st_parameter_dt *dtp,
*** 1235,1243 ****
  
      default:
        /* Assume a missing comma with -std=legacy, GNU extension. */
!       if (compile_options.warn_std == 0)
! 	goto format_item_1;
!       format_error (dtp, tail, comma_missing);
      }
  
    /* Optional comma is a weird between state where we've just finished
--- 1235,1243 ----
  
      default:
        /* Assume a missing comma with -std=legacy, GNU extension. */
!       if (compile_options.warn_std != 0)
! 	fmt->error = comma_missing;
!       goto format_item_1;
      }
  
    /* Optional comma is a weird between state where we've just finished
*************** parse_format_list (st_parameter_dt *dtp,
*** 1252,1258 ****
      case FMT_RPAREN:
        goto finished;
  
!     default:			/* Assume that we have another format item */
        fmt->saved_token = t;
        break;
      }
--- 1252,1258 ----
      case FMT_RPAREN:
        goto finished;
  
!     default:	/* Assume that we have another format item */
        fmt->saved_token = t;
        break;
      }
*************** parse_format (st_parameter_dt *dtp)
*** 1419,1425 ****
    else
      fmt->error = "Missing initial left parenthesis in format";
  
!   if (format_cache_ok)
      save_parsed_format (dtp);
    else
      dtp->u.p.format_not_saved = 1;
--- 1419,1425 ----
    else
      fmt->error = "Missing initial left parenthesis in format";
  
!   if (format_cache_ok && !fmt->error)
      save_parsed_format (dtp);
    else
      dtp->u.p.format_not_saved = 1;
diff -Nrcpad gcc-16-20250601/libgm2/ChangeLog gcc-16-20250608/libgm2/ChangeLog
*** gcc-16-20250601/libgm2/ChangeLog	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgm2/ChangeLog	Sun Jun  8 22:32:41 2025
***************
*** 1,3 ****
--- 1,15 ----
+ 2025-06-07  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/119650
+ 	PR modula2/117203
+ 	* libm2pim/Makefile.am (M2MODS): Add ARRAYOFCHAR,
+ 	CHAR.mod, StringFileSysOp.mod and String.mod.
+ 	(M2DEFS): Add ARRAYOFCHAR, CHAR.mod,
+ 	StringFileSysOp.mod and String.mod.
+ 	(libm2pim_la_SOURCES): Add CFileSysOp.c.
+ 	* libm2pim/Makefile.in: Regenerate.
+ 	* libm2pim/CFileSysOp.cc: New file.
+ 
  2025-04-24  Gaius Mulley  <gaiusmod2@gmail.com>
  
  	PR modula2/115276
diff -Nrcpad gcc-16-20250601/libgm2/libm2pim/CFileSysOp.cc gcc-16-20250608/libgm2/libm2pim/CFileSysOp.cc
*** gcc-16-20250601/libgm2/libm2pim/CFileSysOp.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libgm2/libm2pim/CFileSysOp.cc	Sun Jun  8 22:32:41 2025
***************
*** 0 ****
--- 1,145 ----
+ 
+ 
+ /* A C++ implementation for CFileSysOp.def.  This file will use
+    autoconf to test for the presence of operating system facilities.  */
+ 
+ #include <config.h>
+ #include <m2rts.h>
+ 
+ #define EXPORT(FUNC) m2pim ## _CFileSysOp_ ## FUNC
+ #define M2EXPORT(FUNC) m2pim ## _M2_CFileSysOp_ ## FUNC
+ #define M2LIBNAME "m2pim"
+ 
+ #if defined(HAVE_STDLIB_H)
+ #include <stdlib.h>
+ #endif
+ 
+ #if defined(HAVE_UNISTD_H)
+ #include <unistd.h>
+ #endif
+ 
+ #if defined(HAVE_SYS_STAT_H)
+ #include <sys/stat.h>
+ #endif
+ 
+ #ifdef HAVE_STDIO_H
+ #include <stdio.h>
+ #endif
+ 
+ #if defined(HAVE_SYS_TYPES_H)
+ #include <sys/types.h>
+ #endif
+ 
+ #ifdef HAVE_FCNTL_H
+ #include <fcntl.h>
+ #endif
+ 
+ /* Define a generic NULL if one hasn't already been defined.  */
+ 
+ #if !defined(NULL)
+ #define NULL 0
+ #endif
+ 
+ #define A_FAIL (1<<5)
+ 
+ 
+ extern "C" int
+ EXPORT(Unlink) (char *filename)
+ {
+ #if defined(HAVE_UNLINK)
+   return unlink (filename);
+ #else
+   return -1;
+ #endif
+ }
+ 
+ 
+ /* Access test access to a path or file.  The behavior is
+    the same as defined in access(2).  Except that A_FAIL
+    is only used during the return result indicating the
+    underlying C access has returned -1 (and errno can be
+    checked).  */
+ 
+ extern "C" int
+ EXPORT(Access) (char *pathname, int mode)
+ {
+ #if defined(HAVE_ACCESS)
+   int result = access (pathname, mode);
+ 
+   if (result == -1)
+     return A_FAIL;
+   return result;
+ #else
+   return A_FAIL;
+ #endif
+ }
+ 
+ 
+ /* Exists return true if pathname exists.  */
+ 
+ extern "C" bool
+ EXPORT(Exists) (char *pathname)
+ {
+ #if defined(HAVE_ACCESS)
+   return (access (pathname, F_OK) == 0);
+ #else
+   return false;
+ #endif
+ }
+ 
+ /* IsDir return true if filename is a regular directory.  */
+ 
+ extern "C" bool
+ EXPORT(IsDir) (char *dirname)
+ {
+ #if defined(HAVE_SYS_STAT_H) && defined(HAVE_STRUCT_STAT)
+   struct stat dir_stat;
+   int res = stat (dirname, (struct stat *)&dir_stat);
+   if (res == 0)
+     return (dir_stat.st_mode & S_IFMT) == S_IFDIR;
+   return false;
+ #else
+   return false;
+ #endif
+ }
+ 
+ /* IsFile return true if filename is a regular file.  */
+ 
+ extern "C" bool
+ EXPORT(IsFile) (char *filename)
+ {
+ #if defined(HAVE_SYS_STAT_H) && defined(HAVE_STRUCT_STAT)
+   struct stat file_stat;
+   int res = stat (filename, (struct stat *)&file_stat);
+   if (res == 0)
+     return (file_stat.st_mode & S_IFMT) == S_IFREG;
+   return false;
+ #else
+   return false;
+ #endif
+ }
+ 
+ /* GNU Modula-2 linking hooks.  */
+ 
+ extern "C" void
+ M2EXPORT(init) (int, char **, char **)
+ {
+ }
+ 
+ extern "C" void
+ M2EXPORT(fini) (int, char **, char **)
+ {
+ }
+ 
+ extern "C" void
+ M2EXPORT(dep) (void)
+ {
+ }
+ 
+ extern "C" void __attribute__((__constructor__))
+ M2EXPORT(ctor) (void)
+ {
+   m2pim_M2RTS_RegisterModule ("CfileSysOp", M2LIBNAME,
+ 			      M2EXPORT(init), M2EXPORT(fini),
+ 			      M2EXPORT(dep));
+ }
diff -Nrcpad gcc-16-20250601/libgm2/libm2pim/Makefile.am gcc-16-20250608/libgm2/libm2pim/Makefile.am
*** gcc-16-20250601/libgm2/libm2pim/Makefile.am	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgm2/libm2pim/Makefile.am	Sun Jun  8 22:32:41 2025
*************** M2MODS = ASCII.mod IO.mod \
*** 118,131 ****
         Indexing.mod \
         LMathLib0.mod LegacyReal.mod \
         MemUtils.mod gdbif.mod \
!        GetOpt.mod OptLib.mod
  
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  
  M2DEFS = Args.def   ASCII.def \
           Assertion.def  Break.def \
           Builtins.def  cbuiltin.def \
!          CmdArgs.def COROUTINES.def \
           cxxabi.def  Debug.def \
           dtoa.def  DynamicStrings.def \
           Environment.def  errno.def \
--- 118,137 ----
         Indexing.mod \
         LMathLib0.mod LegacyReal.mod \
         MemUtils.mod gdbif.mod \
!        GetOpt.mod OptLib.mod \
!        ARRAYOFCHAR.mod \
!        CHAR.mod \
!        StringFileSysOp.mod \
!        String.mod \
!        FileSysOp.mod
  
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  
  M2DEFS = Args.def   ASCII.def \
           Assertion.def  Break.def \
           Builtins.def  cbuiltin.def \
!          CmdArgs.def CFileSysOp.def \
!          COROUTINES.def \
           cxxabi.def  Debug.def \
           dtoa.def  DynamicStrings.def \
           Environment.def  errno.def \
*************** M2DEFS = Args.def   ASCII.def \
*** 153,159 ****
           termios.def  TimeString.def \
           UnixArgs.def  wrapc.def  \
           GetOpt.def OptLib.def \
!          cgetopt.def
  
  libm2pim_la_SOURCES = $(M2MODS) \
                        UnixArgs.cc \
--- 159,170 ----
           termios.def  TimeString.def \
           UnixArgs.def  wrapc.def  \
           GetOpt.def OptLib.def \
!          cgetopt.def \
!          ARRAYOFCHAR.def \
!          CHAR.def \
!          StringFileSysOp.def \
!          String.def \
!          FileSysOp.def
  
  libm2pim_la_SOURCES = $(M2MODS) \
                        UnixArgs.cc \
*************** libm2pim_la_SOURCES = $(M2MODS) \
*** 161,167 ****
                        errno.cc dtoa.cc \
                        ldtoa.cc termios.cc \
                        SysExceptions.cc target.c \
!                       wrapc.cc cgetopt.cc
  
  libm2pimdir = libm2pim
  libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES)))
--- 172,179 ----
                        errno.cc dtoa.cc \
                        ldtoa.cc termios.cc \
                        SysExceptions.cc target.c \
!                       wrapc.cc cgetopt.cc \
!                       CFileSysOp.cc
  
  libm2pimdir = libm2pim
  libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES)))
diff -Nrcpad gcc-16-20250601/libgm2/libm2pim/Makefile.in gcc-16-20250608/libgm2/libm2pim/Makefile.in
*** gcc-16-20250601/libgm2/libm2pim/Makefile.in	Sun Jun  1 22:32:34 2025
--- gcc-16-20250608/libgm2/libm2pim/Makefile.in	Sun Jun  8 22:32:41 2025
*************** libm2pim_la_LIBADD =
*** 169,180 ****
  @BUILD_PIMLIB_TRUE@	Builtins.lo MathLib0.lo M2EXCEPTION.lo \
  @BUILD_PIMLIB_TRUE@	RTExceptions.lo SMathLib0.lo RTint.lo \
  @BUILD_PIMLIB_TRUE@	Indexing.lo LMathLib0.lo LegacyReal.lo \
! @BUILD_PIMLIB_TRUE@	MemUtils.lo gdbif.lo GetOpt.lo OptLib.lo
  @BUILD_PIMLIB_TRUE@am_libm2pim_la_OBJECTS = $(am__objects_1) \
  @BUILD_PIMLIB_TRUE@	UnixArgs.lo Selective.lo sckt.lo errno.lo \
  @BUILD_PIMLIB_TRUE@	dtoa.lo ldtoa.lo termios.lo \
  @BUILD_PIMLIB_TRUE@	SysExceptions.lo libm2pim_la-target.lo \
! @BUILD_PIMLIB_TRUE@	wrapc.lo cgetopt.lo
  libm2pim_la_OBJECTS = $(am_libm2pim_la_OBJECTS)
  @BUILD_PIMLIB_TRUE@am_libm2pim_la_rpath = -rpath $(toolexeclibdir)
  AM_V_P = $(am__v_P_@AM_V@)
--- 169,182 ----
  @BUILD_PIMLIB_TRUE@	Builtins.lo MathLib0.lo M2EXCEPTION.lo \
  @BUILD_PIMLIB_TRUE@	RTExceptions.lo SMathLib0.lo RTint.lo \
  @BUILD_PIMLIB_TRUE@	Indexing.lo LMathLib0.lo LegacyReal.lo \
! @BUILD_PIMLIB_TRUE@	MemUtils.lo gdbif.lo GetOpt.lo OptLib.lo \
! @BUILD_PIMLIB_TRUE@	ARRAYOFCHAR.lo CHAR.lo StringFileSysOp.lo \
! @BUILD_PIMLIB_TRUE@	String.lo FileSysOp.lo
  @BUILD_PIMLIB_TRUE@am_libm2pim_la_OBJECTS = $(am__objects_1) \
  @BUILD_PIMLIB_TRUE@	UnixArgs.lo Selective.lo sckt.lo errno.lo \
  @BUILD_PIMLIB_TRUE@	dtoa.lo ldtoa.lo termios.lo \
  @BUILD_PIMLIB_TRUE@	SysExceptions.lo libm2pim_la-target.lo \
! @BUILD_PIMLIB_TRUE@	wrapc.lo cgetopt.lo CFileSysOp.lo
  libm2pim_la_OBJECTS = $(am_libm2pim_la_OBJECTS)
  @BUILD_PIMLIB_TRUE@am_libm2pim_la_rpath = -rpath $(toolexeclibdir)
  AM_V_P = $(am__v_P_@AM_V@)
*************** FLAGS_TO_PASS = $(AM_MAKEFLAGS)
*** 495,508 ****
  @BUILD_PIMLIB_TRUE@       Indexing.mod \
  @BUILD_PIMLIB_TRUE@       LMathLib0.mod LegacyReal.mod \
  @BUILD_PIMLIB_TRUE@       MemUtils.mod gdbif.mod \
! @BUILD_PIMLIB_TRUE@       GetOpt.mod OptLib.mod
  
  
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  @BUILD_PIMLIB_TRUE@M2DEFS = Args.def   ASCII.def \
  @BUILD_PIMLIB_TRUE@         Assertion.def  Break.def \
  @BUILD_PIMLIB_TRUE@         Builtins.def  cbuiltin.def \
! @BUILD_PIMLIB_TRUE@         CmdArgs.def COROUTINES.def \
  @BUILD_PIMLIB_TRUE@         cxxabi.def  Debug.def \
  @BUILD_PIMLIB_TRUE@         dtoa.def  DynamicStrings.def \
  @BUILD_PIMLIB_TRUE@         Environment.def  errno.def \
--- 497,516 ----
  @BUILD_PIMLIB_TRUE@       Indexing.mod \
  @BUILD_PIMLIB_TRUE@       LMathLib0.mod LegacyReal.mod \
  @BUILD_PIMLIB_TRUE@       MemUtils.mod gdbif.mod \
! @BUILD_PIMLIB_TRUE@       GetOpt.mod OptLib.mod \
! @BUILD_PIMLIB_TRUE@       ARRAYOFCHAR.mod \
! @BUILD_PIMLIB_TRUE@       CHAR.mod \
! @BUILD_PIMLIB_TRUE@       StringFileSysOp.mod \
! @BUILD_PIMLIB_TRUE@       String.mod \
! @BUILD_PIMLIB_TRUE@       FileSysOp.mod
  
  
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  @BUILD_PIMLIB_TRUE@M2DEFS = Args.def   ASCII.def \
  @BUILD_PIMLIB_TRUE@         Assertion.def  Break.def \
  @BUILD_PIMLIB_TRUE@         Builtins.def  cbuiltin.def \
! @BUILD_PIMLIB_TRUE@         CmdArgs.def CFileSysOp.def \
! @BUILD_PIMLIB_TRUE@         COROUTINES.def \
  @BUILD_PIMLIB_TRUE@         cxxabi.def  Debug.def \
  @BUILD_PIMLIB_TRUE@         dtoa.def  DynamicStrings.def \
  @BUILD_PIMLIB_TRUE@         Environment.def  errno.def \
*************** FLAGS_TO_PASS = $(AM_MAKEFLAGS)
*** 530,536 ****
  @BUILD_PIMLIB_TRUE@         termios.def  TimeString.def \
  @BUILD_PIMLIB_TRUE@         UnixArgs.def  wrapc.def  \
  @BUILD_PIMLIB_TRUE@         GetOpt.def OptLib.def \
! @BUILD_PIMLIB_TRUE@         cgetopt.def
  
  @BUILD_PIMLIB_TRUE@libm2pim_la_SOURCES = $(M2MODS) \
  @BUILD_PIMLIB_TRUE@                      UnixArgs.cc \
--- 538,549 ----
  @BUILD_PIMLIB_TRUE@         termios.def  TimeString.def \
  @BUILD_PIMLIB_TRUE@         UnixArgs.def  wrapc.def  \
  @BUILD_PIMLIB_TRUE@         GetOpt.def OptLib.def \
! @BUILD_PIMLIB_TRUE@         cgetopt.def \
! @BUILD_PIMLIB_TRUE@         ARRAYOFCHAR.def \
! @BUILD_PIMLIB_TRUE@         CHAR.def \
! @BUILD_PIMLIB_TRUE@         StringFileSysOp.def \
! @BUILD_PIMLIB_TRUE@         String.def \
! @BUILD_PIMLIB_TRUE@         FileSysOp.def
  
  @BUILD_PIMLIB_TRUE@libm2pim_la_SOURCES = $(M2MODS) \
  @BUILD_PIMLIB_TRUE@                      UnixArgs.cc \
*************** FLAGS_TO_PASS = $(AM_MAKEFLAGS)
*** 538,544 ****
  @BUILD_PIMLIB_TRUE@                      errno.cc dtoa.cc \
  @BUILD_PIMLIB_TRUE@                      ldtoa.cc termios.cc \
  @BUILD_PIMLIB_TRUE@                      SysExceptions.cc target.c \
! @BUILD_PIMLIB_TRUE@                      wrapc.cc cgetopt.cc
  
  @BUILD_PIMLIB_TRUE@libm2pimdir = libm2pim
  @BUILD_PIMLIB_TRUE@libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES)))
--- 551,558 ----
  @BUILD_PIMLIB_TRUE@                      errno.cc dtoa.cc \
  @BUILD_PIMLIB_TRUE@                      ldtoa.cc termios.cc \
  @BUILD_PIMLIB_TRUE@                      SysExceptions.cc target.c \
! @BUILD_PIMLIB_TRUE@                      wrapc.cc cgetopt.cc \
! @BUILD_PIMLIB_TRUE@                      CFileSysOp.cc
  
  @BUILD_PIMLIB_TRUE@libm2pimdir = libm2pim
  @BUILD_PIMLIB_TRUE@libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES)))
*************** mostlyclean-compile:
*** 639,644 ****
--- 653,659 ----
  distclean-compile:
  	-rm -f *.tab.c
  
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CFileSysOp.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Selective.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SysExceptions.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnixArgs.Plo@am__quote@
diff -Nrcpad gcc-16-20250601/libgomp/ChangeLog gcc-16-20250608/libgomp/ChangeLog
*** gcc-16-20250601/libgomp/ChangeLog	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/ChangeLog	Sun Jun  8 22:32:44 2025
***************
*** 1,3 ****
--- 1,55 ----
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* libgomp.texi (omp_get_num_devices, omp_get_intrinsic_device):
+ 	Document builtin handling.
+ 
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR target/120530
+ 	* testsuite/libgomp.c/target-map-zero-sized-3.c (main): Add missing
+ 	map clause; remove unused variable.
+ 
+ 2025-06-04  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* libgomp.texi (omp_interop_{int,ptr,str,rc_desc}): Add note about
+ 	the 'ret_code' type change in OpenMP 6.
+ 
+ 2025-06-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libgomp/120444
+ 	* testsuite/libgomp.c-c++-common/omp_target_memset-3.c (test_it):
+ 	Change ptr argument type from void * to int8_t *.
+ 	(main): Change ptr variable type from void * to int8_t * and cast
+ 	omp_target_alloc result to the latter type.
+ 
+ 2025-06-02  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR libgomp/120444
+ 	* libgomp-plugin.h (GOMP_OFFLOAD_memset): Declare.
+ 	* libgomp.h (struct gomp_device_descr): Add memset_func.
+ 	* libgomp.map (GOMP_6.0.1): Add omp_target_memset{,_async}.
+ 	* libgomp.texi (Device Memory Routines): Document them.
+ 	* omp.h.in (omp_target_memset, omp_target_memset_async): Declare.
+ 	* omp_lib.f90.in (omp_target_memset, omp_target_memset_async):
+ 	Add interfaces.
+ 	* omp_lib.h.in (omp_target_memset, omp_target_memset_async): Likewise.
+ 	* plugin/cuda-lib.def: Add cuMemsetD8.
+ 	* plugin/plugin-gcn.c (struct hsa_runtime_fn_info): Add
+ 	hsa_amd_memory_fill_fn.
+ 	(init_hsa_runtime_functions): DLSYM_OPT_FN load it.
+ 	(GOMP_OFFLOAD_memset): New.
+ 	* plugin/plugin-nvptx.c (GOMP_OFFLOAD_memset): New.
+ 	* target.c (omp_target_memset_int, omp_target_memset,
+ 	omp_target_memset_async_helper, omp_target_memset_async): New.
+ 	(gomp_load_plugin_for_device): Add DLSYM (memset).
+ 	* testsuite/libgomp.c-c++-common/omp_target_memset.c: New test.
+ 	* testsuite/libgomp.c-c++-common/omp_target_memset-2.c: New test.
+ 	* testsuite/libgomp.c-c++-common/omp_target_memset-3.c: New test.
+ 	* testsuite/libgomp.fortran/omp_target_memset.f90: New test.
+ 	* testsuite/libgomp.fortran/omp_target_memset-2.f90: New test.
+ 
  2025-05-30  Thomas Schwinge  <tschwinge@baylibre.com>
  
  	* testsuite/libgomp.c++/target-std__valarray-1.C: New.
diff -Nrcpad gcc-16-20250601/libgomp/libgomp-plugin.h gcc-16-20250608/libgomp/libgomp-plugin.h
*** gcc-16-20250601/libgomp/libgomp-plugin.h	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/libgomp-plugin.h	Sun Jun  8 22:32:44 2025
*************** extern int GOMP_OFFLOAD_memcpy3d (int, i
*** 177,182 ****
--- 177,183 ----
  				  size_t, size_t, size_t, size_t, size_t,
  				  const void *, size_t, size_t, size_t, size_t,
  				  size_t);
+ extern bool GOMP_OFFLOAD_memset (int, void *, int, size_t);
  extern bool GOMP_OFFLOAD_can_run (void *);
  extern void GOMP_OFFLOAD_run (int, void *, void *, void **);
  extern void GOMP_OFFLOAD_async_run (int, void *, void *, void **, void *);
diff -Nrcpad gcc-16-20250601/libgomp/libgomp.h gcc-16-20250608/libgomp/libgomp.h
*** gcc-16-20250601/libgomp/libgomp.h	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/libgomp.h	Sun Jun  8 22:32:44 2025
*************** struct gomp_device_descr
*** 1421,1429 ****
    __typeof (GOMP_OFFLOAD_free) *free_func;
    __typeof (GOMP_OFFLOAD_dev2host) *dev2host_func;
    __typeof (GOMP_OFFLOAD_host2dev) *host2dev_func;
    __typeof (GOMP_OFFLOAD_memcpy2d) *memcpy2d_func;
    __typeof (GOMP_OFFLOAD_memcpy3d) *memcpy3d_func;
!   __typeof (GOMP_OFFLOAD_dev2dev) *dev2dev_func;
    __typeof (GOMP_OFFLOAD_can_run) *can_run_func;
    __typeof (GOMP_OFFLOAD_run) *run_func;
    __typeof (GOMP_OFFLOAD_async_run) *async_run_func;
--- 1421,1430 ----
    __typeof (GOMP_OFFLOAD_free) *free_func;
    __typeof (GOMP_OFFLOAD_dev2host) *dev2host_func;
    __typeof (GOMP_OFFLOAD_host2dev) *host2dev_func;
+   __typeof (GOMP_OFFLOAD_dev2dev) *dev2dev_func;
    __typeof (GOMP_OFFLOAD_memcpy2d) *memcpy2d_func;
    __typeof (GOMP_OFFLOAD_memcpy3d) *memcpy3d_func;
!   __typeof (GOMP_OFFLOAD_memset) *memset_func;
    __typeof (GOMP_OFFLOAD_can_run) *can_run_func;
    __typeof (GOMP_OFFLOAD_run) *run_func;
    __typeof (GOMP_OFFLOAD_async_run) *async_run_func;
diff -Nrcpad gcc-16-20250601/libgomp/libgomp.map gcc-16-20250608/libgomp/libgomp.map
*** gcc-16-20250601/libgomp/libgomp.map	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/libgomp.map	Sun Jun  8 22:32:44 2025
*************** GOMP_6.0 {
*** 453,458 ****
--- 453,464 ----
  	omp_get_uid_from_device_8_;
  } GOMP_5.1.3;
  
+ GOMP_6.0.1 {
+   global:
+ 	omp_target_memset;
+ 	omp_target_memset_async;
+ } GOMP_6.0;
+ 
  OACC_2.0 {
    global:
  	acc_get_num_devices;
diff -Nrcpad gcc-16-20250601/libgomp/libgomp.texi gcc-16-20250608/libgomp/libgomp.texi
*** gcc-16-20250601/libgomp/libgomp.texi	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/libgomp.texi	Sun Jun  8 22:32:44 2025
*************** to address of matching mapped list item
*** 603,609 ****
        @code{omp_get_device_teams_thread_limit}, and
        @code{omp_set_device_teams_thread_limit} routines @tab N @tab
  @item @code{omp_target_memset} and @code{omp_target_memset_async} routines
!       @tab N @tab
  @item Fortran version of the interop runtime routines @tab Y @tab
  @item Routines for obtaining memory spaces/allocators for shared/device memory
        @tab N @tab
--- 603,609 ----
        @code{omp_get_device_teams_thread_limit}, and
        @code{omp_set_device_teams_thread_limit} routines @tab N @tab
  @item @code{omp_target_memset} and @code{omp_target_memset_async} routines
!       @tab Y @tab
  @item Fortran version of the interop runtime routines @tab Y @tab
  @item Routines for obtaining memory spaces/allocators for shared/device memory
        @tab N @tab
*************** Returns the number of available non-host
*** 1802,1807 ****
--- 1802,1812 ----
  
  The effect of running this routine in a @code{target} region is unspecified.
  
+ Note that in GCC the function is marked pure, i.e. as returning always the
+ same number.  When GCC was not configured to support offloading, it is replaced
+ by zero; compile with @option{-fno-builtin-omp_get_num_devices} if a run-time
+ function is desired.
+ 
  @item @emph{C/C++}:
  @multitable @columnfractions .20 .80
  @item @emph{Prototype}: @tab @code{int omp_get_num_devices(void);}
*************** The effect of running this routine in a
*** 1812,1817 ****
--- 1817,1825 ----
  @item @emph{Interface}: @tab @code{integer function omp_get_num_devices()}
  @end multitable
  
+ @item @emph{See also}:
+ @ref{omp_get_initial_device}
+ 
  @item @emph{Reference}:
  @uref{https://www.openmp.org, OpenMP specification v4.5}, Section 3.2.31.
  @end table
*************** the value of @code{omp_initial_device}.
*** 1950,1955 ****
--- 1958,1969 ----
  
  The effect of running this routine in a @code{target} region is unspecified.
  
+ Note that GCC inlines this function unless you compile with
+ @option{-fno-builtin-omp_get_initial_device}.  If GCC was not configured to
+ support offloading, it expands to constant zero; in non-host code it expands
+ to @code{omp_initial_device}; and otherwise it is replaced with a call to
+ @code{omp_get_num_devices}.
+ 
  @item @emph{C/C++}
  @multitable @columnfractions .20 .80
  @item @emph{Prototype}: @tab @code{int omp_get_initial_device(void);}
*************** pointers on devices. They have C linkage
*** 1984,1991 ****
  * omp_target_memcpy_async:: Copy data between devices asynchronously
  * omp_target_memcpy_rect:: Copy a subvolume of data between devices
  * omp_target_memcpy_rect_async:: Copy a subvolume of data between devices asynchronously
! @c * omp_target_memset:: <fixme>/TR12
! @c * omp_target_memset_async:: <fixme>/TR12
  * omp_target_associate_ptr:: Associate a device pointer with a host pointer
  * omp_target_disassociate_ptr:: Remove device--host pointer association
  * omp_get_mapped_ptr:: Return device pointer to a host pointer
--- 1998,2005 ----
  * omp_target_memcpy_async:: Copy data between devices asynchronously
  * omp_target_memcpy_rect:: Copy a subvolume of data between devices
  * omp_target_memcpy_rect_async:: Copy a subvolume of data between devices asynchronously
! * omp_target_memset:: Set bytes in device memory
! * omp_target_memset_async:: Set bytes in device memory asynchronously
  * omp_target_associate_ptr:: Associate a device pointer with a host pointer
  * omp_target_disassociate_ptr:: Remove device--host pointer association
  * omp_get_mapped_ptr:: Return device pointer to a host pointer
*************** the initial device.
*** 2398,2403 ****
--- 2412,2509 ----
  @end table
  
  
+ @node omp_target_memset
+ @subsection @code{omp_target_memset} -- Set bytes in device memory
+ @table @asis
+ @item @emph{Description}:
+ This routine fills memory on the device identified by device number
+ @var{device_num}.  Starting from the device address @var{ptr}, the first
+ @var{count} bytes are set to the value @var{val}, converted to
+ @code{unsigned char}. If @var{count} is zero, the routine has no effect;
+ if @var{ptr} is @code{NULL}, the behavior is unspecified.  The function
+ returns @var{ptr}.
+ 
+ The @var{device_num} must be a conforming device number and @var{ptr} must be
+ a valid device pointer for that device.  Running this routine in a
+ @code{target} region except on the initial device is not supported.
+ 
+ @item @emph{C/C++}
+ @multitable @columnfractions .20 .80
+ @item @emph{Prototype}: @tab @code{void *omp_target_memcpy(void *ptr,}
+ @item                   @tab @code{                        int val,}
+ @item                   @tab @code{                        size_t count,}
+ @item                   @tab @code{                        int device_num)}
+ @end multitable
+ 
+ @item @emph{Fortran}:
+ @multitable @columnfractions .20 .80
+ @item @emph{Interface}: @tab @code{type(c_ptr) function omp_target_memset( &}
+ @item                   @tab @code{    ptr, val, count, device_num) bind(C)}
+ @item                   @tab @code{use, intrinsic :: iso_c_binding, only: c_ptr, c_size_t, c_int}
+ @item                   @tab @code{type(c_ptr), value :: ptr}
+ @item                   @tab @code{integer(c_size_t), value :: count}
+ @item                   @tab @code{integer(c_int), value :: val, device_num}
+ @end multitable
+ 
+ @item @emph{See also}:
+ @ref{omp_target_memset_async}
+ 
+ @item @emph{Reference}:
+ @uref{https://www.openmp.org, OpenMP specification v6.0}, Section 25.8.1
+ @end table
+ 
+ 
+ 
+ @node omp_target_memset_async
+ @subsection @code{omp_target_memset} -- Set bytes in device memory asynchronously
+ @table @asis
+ @item @emph{Description}:
+ This routine fills memory on the device identified by device number
+ @var{device_num}.  Starting from the device address @var{ptr}, the first
+ @var{count} bytes are set to the value @var{val}, converted to
+ @code{unsigned char}. If @var{count} is zero, the routine has no effect;
+ if @var{ptr} is @code{NULL}, the behavior is unspecified.  Task dependence
+ is expressed by passing an array of depend objects to @var{depobj_list}, where
+ the number of array elements is passed as @var{depobj_count}; if the count is
+ zero, the @var{depobj_list} argument is ignored.  In C++ and Fortran, the
+ @var{depobj_list} argument can also be omitted in that case.  The function
+ returns @var{ptr}.
+ 
+ The @var{device_num} must be a conforming device number and @var{ptr} must be
+ a valid device pointer for that device.  Running this routine in a
+ @code{target} region except on the initial device is not supported.
+ 
+ @item @emph{C/C++}
+ @multitable @columnfractions .20 .80
+ @item @emph{Prototype}: @tab @code{void *omp_target_memcpy_async(void *ptr,}
+ @item                   @tab @code{                        int val,}
+ @item                   @tab @code{                        size_t count,}
+ @item                   @tab @code{                        int device_num,}
+ @item                   @tab @code{                        int depobj_count,}
+ @item                   @tab @code{                        omp_depend_t *depobj_list)}
+ @end multitable
+ 
+ @item @emph{Fortran}:
+ @multitable @columnfractions .20 .80
+ @item @emph{Interface}: @tab @code{type(c_ptr) function omp_target_memset_async( &}
+ @item                   @tab @code{    ptr, val, count, device_num, &}
+ @item                   @tab @code{    depobj_count, depobj_list) bind(C)}
+ @item                   @tab @code{use, intrinsic :: iso_c_binding, only: c_ptr, c_size_t, c_int}
+ @item                   @tab @code{type(c_ptr), value :: ptr}
+ @item                   @tab @code{integer(c_size_t), value :: count}
+ @item                   @tab @code{integer(c_int), value :: val, device_num, depobj_count}
+ @item                   @tab @code{integer(omp_depend_kind), optional :: depobj_list(*)}
+ @end multitable
+ 
+ 
+ @item @emph{See also}:
+ @ref{omp_target_memset}
+ 
+ @item @emph{Reference}:
+ @uref{https://www.openmp.org, OpenMP specification v6.0}, Section 25.8.2
+ @end table
+ 
+ 
  
  @node omp_target_associate_ptr
  @subsection @code{omp_target_associate_ptr} -- Associate a device pointer with a host pointer
*************** and Fortran or used with @code{NULL} as
*** 3038,3043 ****
--- 3144,3154 ----
  In GCC, the effect of running this routine in a @code{target} region that is not
  the initial device is unspecified.
  
+ GCC implements the OpenMP 6.0 version of this function for C and C++, which is not
+ compatible with its type signature in previous versions of the OpenMP specification.
+ In older versions, the type @code{int*} was used for the @var{ret_code} argument
+ in place of a pointer to the enumerated type @code{omp_interop_rc_t}.
+ 
  @c Implementation remark: In GCC, the Fortran interface differs from the one shown
  @c below: the function has C binding and @var{interop} and @var{property_id} are
  @c passed by value, which permits use of the same ABI as the C function.  This does
*************** and Fortran or used with @code{NULL} as
*** 3084,3089 ****
--- 3195,3205 ----
  In GCC, the effect of running this routine in a @code{target} region that is not
  the initial device is unspecified.
  
+ GCC implements the OpenMP 6.0 version of this function for C and C++, which is not
+ compatible with its type signature in previous versions of the OpenMP specification.
+ In older versions, the type @code{int*} was used for the @var{ret_code} argument
+ in place of a pointer to the enumerated type @code{omp_interop_rc_t}.
+ 
  @c Implementation remark: In GCC, the Fortran interface differs from the one shown
  @c below: the function has C binding and @var{interop} and @var{property_id} are
  @c passed by value, which permits use of the same ABI as the C function.  This does
*************** and Fortran or used with @code{NULL} as
*** 3130,3135 ****
--- 3246,3256 ----
  In GCC, the effect of running this routine in a @code{target} region that is not
  the initial device is unspecified.
  
+ GCC implements the OpenMP 6.0 version of this function for C and C++, which is not
+ compatible with its type signature in previous versions of the OpenMP specification.
+ In older versions, the type @code{int*} was used for the @var{ret_code} argument
+ in place of a pointer to the enumerated type @code{omp_interop_rc_t}.
+ 
  @c Implementation remark: In GCC, the Fortran interface differs from the one shown
  @c below: @var{interop} and @var{property_id} are passed by value.  This does not
  @c affect the usage of the function when GCC's @code{omp_lib} module or
*************** the @var{ret_code} in human-readable for
*** 3256,3261 ****
--- 3377,3387 ----
  The behavior is unspecified if value of @var{ret_code} was not set by an
  interoperability routine invoked for @var{interop}.
  
+ GCC implements the OpenMP 6.0 version of this function for C and C++, which is not
+ compatible with its type signature in previous versions of the OpenMP specification.
+ In older versions, the type @code{int} was used for the @var{ret_code} argument
+ in place of the enumerated type @code{omp_interop_rc_t}.
+ 
  @item @emph{C/C++}:
  @multitable @columnfractions .20 .80
  @item @emph{Prototype}: @tab @code{const char *omp_get_interop_rc_desc(const omp_interop_t interop,
diff -Nrcpad gcc-16-20250601/libgomp/omp.h.in gcc-16-20250608/libgomp/omp.h.in
*** gcc-16-20250601/libgomp/omp.h.in	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/omp.h.in	Sun Jun  8 22:32:44 2025
*************** extern int omp_target_memcpy_rect_async
*** 347,352 ****
--- 347,356 ----
  					 const __SIZE_TYPE__ *, int, int, int,
  					 omp_depend_t * __GOMP_DEFAULT_NULL)
    __GOMP_NOTHROW;
+ extern void *omp_target_memset (void *, int, __SIZE_TYPE__, int) __GOMP_NOTHROW;
+ extern void *omp_target_memset_async (void *, int, __SIZE_TYPE__, int,
+ 				      int, omp_depend_t * __GOMP_DEFAULT_NULL)
+   __GOMP_NOTHROW;
  extern int omp_target_associate_ptr (const void *, const void *, __SIZE_TYPE__,
  				     __SIZE_TYPE__, int) __GOMP_NOTHROW;
  extern int omp_target_disassociate_ptr (const void *, int) __GOMP_NOTHROW;
diff -Nrcpad gcc-16-20250601/libgomp/omp_lib.f90.in gcc-16-20250608/libgomp/omp_lib.f90.in
*** gcc-16-20250601/libgomp/omp_lib.f90.in	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/omp_lib.f90.in	Sun Jun  8 22:32:44 2025
***************
*** 904,909 ****
--- 904,932 ----
          end interface
  
          interface
+           function omp_target_memset (ptr, val, count, device_num) bind(c)
+             use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
+             type(c_ptr) :: omp_target_memset
+             type(c_ptr), value :: ptr
+             integer(c_size_t), value :: count
+             integer(c_int), value :: val, device_num
+           end function omp_target_memset
+         end interface
+ 
+         interface
+           function omp_target_memset_async (ptr, val, count, device_num, &
+                                             depobj_count, depobj_list) bind(c)
+             use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
+             import :: omp_depend_kind
+             type(c_ptr) :: omp_target_memset_async
+             type(c_ptr), value :: ptr
+             integer(c_size_t), value :: count
+             integer(c_int), value :: val, device_num, depobj_count
+             integer(omp_depend_kind), optional :: depobj_list(*)
+           end function omp_target_memset_async
+         end interface
+ 
+         interface
            function omp_target_associate_ptr (host_ptr, device_ptr, size, &
                                               device_offset, device_num) bind(c)
              use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
diff -Nrcpad gcc-16-20250601/libgomp/omp_lib.h.in gcc-16-20250608/libgomp/omp_lib.h.in
*** gcc-16-20250601/libgomp/omp_lib.h.in	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/omp_lib.h.in	Sun Jun  8 22:32:44 2025
***************
*** 505,510 ****
--- 505,535 ----
        end interface
  
        interface
+         function omp_target_memset (ptr, val, count, device_num) bind(c)
+           use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
+           type(c_ptr) omp_target_memset
+           type(c_ptr), value :: ptr
+           integer(c_size_t), value :: count
+           integer(c_int), value :: val, device_num
+         end function omp_target_memset
+       end interface
+ 
+       interface
+         function omp_target_memset_async (ptr, val, count, device_num,          &
+      &                                    depobj_count, depobj_list)            &
+      &      bind(c)
+           use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
+           import :: omp_depend_kind
+           type(c_ptr) :: omp_target_memset_async
+           type(c_ptr), value :: ptr
+           integer(c_size_t), value :: count
+           integer(c_int), value :: val, device_num, depobj_count
+           integer(omp_depend_kind), optional :: depobj_list(*)
+         end function omp_target_memset_async
+       end interface
+ 
+ 
+       interface
          function omp_target_associate_ptr (host_ptr, device_ptr, size,          &
       &                                     device_offset, device_num)           &
       &      bind(c)
diff -Nrcpad gcc-16-20250601/libgomp/plugin/cuda-lib.def gcc-16-20250608/libgomp/plugin/cuda-lib.def
*** gcc-16-20250601/libgomp/plugin/cuda-lib.def	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/plugin/cuda-lib.def	Sun Jun  8 22:32:44 2025
*************** CUDA_ONE_CALL (cuMemcpyHtoDAsync)
*** 42,47 ****
--- 42,48 ----
  CUDA_ONE_CALL (cuMemcpy2D)
  CUDA_ONE_CALL (cuMemcpy2DUnaligned)
  CUDA_ONE_CALL (cuMemcpy3D)
+ CUDA_ONE_CALL (cuMemsetD8)
  CUDA_ONE_CALL (cuMemFree)
  CUDA_ONE_CALL (cuMemFreeHost)
  CUDA_ONE_CALL (cuMemGetAddressRange)
diff -Nrcpad gcc-16-20250601/libgomp/plugin/plugin-gcn.c gcc-16-20250608/libgomp/plugin/plugin-gcn.c
*** gcc-16-20250601/libgomp/plugin/plugin-gcn.c	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/plugin/plugin-gcn.c	Sun Jun  8 22:32:44 2025
*************** struct hsa_runtime_fn_info
*** 208,213 ****
--- 208,215 ----
    hsa_status_t (*hsa_code_object_deserialize_fn)
      (void *serialized_code_object, size_t serialized_code_object_size,
       const char *options, hsa_code_object_t *code_object);
+   hsa_status_t (*hsa_amd_memory_fill_fn)(void *ptr, uint32_t value,
+ 					 size_t count);
    hsa_status_t (*hsa_amd_memory_lock_fn)
      (void *host_ptr, size_t size, hsa_agent_t *agents, int num_agent,
       void **agent_ptr);
*************** init_hsa_runtime_functions (void)
*** 1456,1461 ****
--- 1458,1464 ----
    DLSYM_FN (hsa_signal_load_acquire)
    DLSYM_FN (hsa_queue_destroy)
    DLSYM_FN (hsa_code_object_deserialize)
+   DLSYM_OPT_FN (hsa_amd_memory_fill)
    DLSYM_OPT_FN (hsa_amd_memory_lock)
    DLSYM_OPT_FN (hsa_amd_memory_unlock)
    DLSYM_OPT_FN (hsa_amd_memory_async_copy_rect)
*************** init_hip_runtime_functions (void)
*** 4435,4440 ****
--- 4438,4520 ----
    return true;
  }
  
+ bool
+ GOMP_OFFLOAD_memset (int ord, void *ptr, int val, size_t count)
+ {
+   hsa_status_t status = HSA_STATUS_SUCCESS;
+ 
+   /* A memset feature is only provided via hsa_amd_memory_fill; while it
+      is fast, it is an HSA extension and it has two requirements: The memory
+      must be aligned to multiples of 4 bytes - and, by construction, only
+      multiples of 4 bytes can be filled (uint32_t value argument).
+ 
+      This means: Either not using that function or up to three function calls:
+      - copy 1 to 3 bytes to get alignment (hsa_memory_copy), if unaligned
+      - call hsa_amd_memory_fill
+      - copy remaining 1 to 3 bytes (hsa_memory_copy), if after alignment
+        count is not a multiple of 4 bytes.
+ 
+      Having more than one function call is only profitable if there is
+      enough data to process; see below for the used heuristic values.  */
+ 
+   uint8_t v8 = (uint8_t) val;
+   size_t before = (4 - (uintptr_t) ptr % 4) % 4;  /* 0 to 3 bytes.  */
+   size_t tail = (count - before) % 4;  /* 0 to 3 bytes.  */
+ 
+   /* Heuristic  */
+   enum {
+     /* Prefer alloca to malloc up to ... */
+     alloca_size = 256,  /* bytes */
+     /* Call hsa_amd_memory_fill also when two copy calls are required.  */
+     always_use_fill = 256*1024,  /* bytes */
+     /* Call hsa_amd_memory_fill also when on copy call is required.  */
+     use_fill_one_copy = (128+64)*1024  /* bytes */
+   };
+ 
+   /* Do not call hsa_amd_memory_fill when any of the following conditions
+      is true. Note that it is always preferred if available and
+      before == tail == 0.  */
+   if (__builtin_expect (!hsa_fns.hsa_amd_memory_fill_fn, 0)
+       || (before && tail && count < always_use_fill)
+       || ((before || tail) && count < use_fill_one_copy))
+     before = count;
+ 
+   /* Copy call for alignment - or all data, if condition above is true.  */
+   if (before)
+     {
+       void *data;
+       if (before > alloca_size)
+ 	data = malloc (before * sizeof (uint8_t));
+       else
+ 	data = alloca (before * sizeof (uint8_t));
+       memset (data, val, before);
+       status = hsa_fns.hsa_memory_copy_fn (ptr, data, before);
+       if (before > alloca_size)
+ 	free (data);
+       if (data == 0 || status != HSA_STATUS_SUCCESS)
+ 	goto fail;
+       count -= before;
+     }
+ 
+   if (count == 0)
+     return true;
+ 
+   ptr += before;
+ 
+   uint32_t values = v8 | (v8 << 8) | (v8 << 16) | (v8 << 24);
+   status = hsa_fns.hsa_amd_memory_fill_fn (ptr, values, count / 4);
+   if (tail && status == HSA_STATUS_SUCCESS)
+     {
+       ptr += count - tail;
+       status = hsa_fns.hsa_memory_copy_fn (ptr, &values, tail);
+     }
+   if (status == HSA_STATUS_SUCCESS)
+     return true;
+ 
+ fail:
+   GOMP_PLUGIN_error ("memory set failed");
+   return false;
+ }
  
  void
  GOMP_OFFLOAD_interop (struct interop_obj_t *obj, int ord,
diff -Nrcpad gcc-16-20250601/libgomp/plugin/plugin-nvptx.c gcc-16-20250608/libgomp/plugin/plugin-nvptx.c
*** gcc-16-20250601/libgomp/plugin/plugin-nvptx.c	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/plugin/plugin-nvptx.c	Sun Jun  8 22:32:44 2025
*************** GOMP_OFFLOAD_memcpy3d (int dst_ord, int
*** 2298,2303 ****
--- 2298,2312 ----
  }
  
  bool
+ GOMP_OFFLOAD_memset (int ord, void *ptr, int val, size_t count)
+ {
+   if (!nvptx_attach_host_thread_to_device (ord))
+     return false;
+   CUDA_CALL (cuMemsetD8, (CUdeviceptr) ptr, (unsigned char) val, count);
+   return true;
+ }
+ 
+ bool
  GOMP_OFFLOAD_openacc_async_host2dev (int ord, void *dst, const void *src,
  				     size_t n, struct goacc_asyncqueue *aq)
  {
diff -Nrcpad gcc-16-20250601/libgomp/target.c gcc-16-20250608/libgomp/target.c
*** gcc-16-20250601/libgomp/target.c	Sun Jun  1 22:32:36 2025
--- gcc-16-20250608/libgomp/target.c	Sun Jun  8 22:32:44 2025
*************** omp_target_memcpy_rect_async (void *dst,
*** 5003,5008 ****
--- 5003,5090 ----
    return 0;
  }
  
+ static void
+ omp_target_memset_int (void *ptr, int val, size_t count,
+ 		       struct gomp_device_descr *devicep)
+ {
+   if (__builtin_expect (count == 0, 0))
+     return;
+   if (devicep == NULL)
+     {
+       memset (ptr, val, count);
+       return;
+     }
+ 
+   gomp_mutex_lock (&devicep->lock);
+   int ret = devicep->memset_func (devicep->target_id, ptr, val, count);
+   gomp_mutex_unlock (&devicep->lock);
+   if (!ret)
+     gomp_fatal ("omp_target_memset failed");
+ }
+ 
+ void*
+ omp_target_memset (void *ptr, int val, size_t count, int device_num)
+ {
+   struct gomp_device_descr *devicep;
+   if (device_num == omp_initial_device
+       || device_num == gomp_get_num_devices ()
+       || (devicep = resolve_device (device_num, false)) == NULL
+       || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
+       || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
+     devicep = NULL;
+ 
+   omp_target_memset_int (ptr, val, count, devicep);
+   return ptr;
+ }
+ 
+ typedef struct
+ {
+   void *ptr;
+   size_t count;
+   struct gomp_device_descr *devicep;
+   int val;
+ } omp_target_memset_data;
+ 
+ static void
+ omp_target_memset_async_helper (void *args)
+ {
+   omp_target_memset_data *a = args;
+   omp_target_memset_int (a->ptr, a->val, a->count, a->devicep);
+ }
+ 
+ void*
+ omp_target_memset_async (void *ptr, int val, size_t count, int device_num,
+ 			 int depobj_count, omp_depend_t *depobj_list)
+ {
+   void *depend[depobj_count + 5];
+   struct gomp_device_descr *devicep;
+   unsigned flags = 0;
+   int i;
+ 
+   if (device_num == omp_initial_device
+       || device_num == gomp_get_num_devices ()
+       || (devicep = resolve_device (device_num, false)) == NULL
+       || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
+       || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
+     devicep = NULL;
+ 
+   omp_target_memset_data s = {.ptr = ptr, .val = val, .count = count,
+ 			      .devicep = devicep};
+   if (depobj_count > 0 && depobj_list != NULL)
+     {
+       flags |= GOMP_TASK_FLAG_DEPEND;
+       depend[0] = 0;
+       depend[1] = (void *) (uintptr_t) depobj_count;
+       depend[2] = depend[3] = depend[4] = 0;
+       for (i = 0; i < depobj_count; ++i)
+ 	depend[i + 5] = &depobj_list[i];
+     }
+ 
+   GOMP_task (omp_target_memset_async_helper, &s, NULL, sizeof (s),
+ 	     __alignof__ (s), true, flags, depend, 0, NULL);
+   return ptr;
+ }
+ 
  int
  omp_target_associate_ptr (const void *host_ptr, const void *device_ptr,
  			  size_t size, size_t device_offset, int device_num)
*************** gomp_load_plugin_for_device (struct gomp
*** 5568,5573 ****
--- 5650,5656 ----
        DLSYM_OPT (async_run, async_run);
        DLSYM_OPT (can_run, can_run);
        DLSYM (dev2dev);
+       DLSYM (memset);
      }
    if (device->capabilities & GOMP_OFFLOAD_CAP_OPENACC_200)
      {
diff -Nrcpad gcc-16-20250601/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c gcc-16-20250608/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
*** gcc-16-20250601/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c	Sun Jun  1 22:32:37 2025
--- gcc-16-20250608/libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c	Sun Jun  8 22:32:45 2025
***************
*** 1,7 ****
  int
  main ()
  {
!   int i, n, n2;
    int data[] = {1,2};
    struct S {
      int **ptrset;
--- 1,7 ----
  int
  main ()
  {
!   int i, n;
    int data[] = {1,2};
    struct S {
      int **ptrset;
*************** main ()
*** 33,48 ****
  
    i = 1;
    n = 0;
!   n2 = 2;
    #pragma omp target enter data map(sptr1[:1], sptr1->ptrset[:3], sptr1->ptrset2[:3])
    #pragma omp target enter data map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
  
!   #pragma omp target
      if (sptr1->ptrset2[1][0] != 1 || sptr1->ptrset2[1][1] != 2)
        __builtin_abort ();
  
    #pragma omp target exit data map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
    #pragma omp target exit data map(sptr1[:1], sptr1->ptrset[:3], sptr1->ptrset2[:3])
  
    __builtin_free (s1.ptrset);
    __builtin_free (s1.ptrset2);
--- 33,49 ----
  
    i = 1;
    n = 0;
!   #pragma omp target enter data map(data)
    #pragma omp target enter data map(sptr1[:1], sptr1->ptrset[:3], sptr1->ptrset2[:3])
    #pragma omp target enter data map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
  
!   #pragma omp target map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
      if (sptr1->ptrset2[1][0] != 1 || sptr1->ptrset2[1][1] != 2)
        __builtin_abort ();
  
    #pragma omp target exit data map(sptr1->ptrset[i][:n], sptr1->ptrset2[i][:n])
    #pragma omp target exit data map(sptr1[:1], sptr1->ptrset[:3], sptr1->ptrset2[:3])
+   #pragma omp target exit data map(data)
  
    __builtin_free (s1.ptrset);
    __builtin_free (s1.ptrset2);
diff -Nrcpad gcc-16-20250601/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-2.c gcc-16-20250608/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-2.c
*** gcc-16-20250601/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-2.c	Sun Jun  8 22:32:44 2025
***************
*** 0 ****
--- 1,62 ----
+ // PR libgomp/120444
+ // Async version
+ 
+ #include <omp.h>
+ 
+ int main()
+ {
+   #pragma omp parallel for
+   for (int dev = omp_initial_device; dev <= omp_get_num_devices (); dev++)
+     {
+       char *ptr = (char *) omp_target_alloc (sizeof(int) * 1024, dev);
+ 
+       omp_depend_t dep;
+       #pragma omp depobj(dep) depend(inout: ptr)
+ 
+       /* Play also around with the alignment - as hsa_amd_memory_fill operates
+ 	 on multiples of 4 bytes (uint32_t).  */
+ 
+       for (int start = 0; start < 32; start++)
+ 	for (int tail = 0; tail < 32; tail++)
+ 	  {
+ 	    unsigned char val = '0' + start + tail;
+ #if __cplusplus
+ 	    void *ptr2 = omp_target_memset_async (ptr + start, val,
+ 					    1024 - start - tail, dev, 0);
+ #else
+ 	    void *ptr2 = omp_target_memset_async (ptr + start, val,
+ 					    1024 - start - tail, dev, 0, nullptr);
+ #endif
+ 	    if (ptr + start != ptr2)
+ 	      __builtin_abort ();
+ 
+ 	    #pragma omp taskwait
+ 
+ 	    #pragma omp target device(dev) is_device_ptr(ptr) depend(depobj: dep) nowait
+ 	      for (int i = start; i < 1024 - start - tail; i++)
+ 		{
+ 		  if (ptr[i] != val)
+ 		    __builtin_abort ();
+ 		  ptr[i] += 2;
+ 		}
+ 
+ 	    omp_target_memset_async (ptr + start, val + 3,
+ 				     1024 - start - tail, dev, 1, &dep);
+ 
+ 	    #pragma omp target device(dev) is_device_ptr(ptr) depend(depobj: dep) nowait
+ 	      for (int i = start; i < 1024 - start - tail; i++)
+ 		{
+ 		  if (ptr[i] != val + 3)
+ 		    __builtin_abort ();
+ 		  ptr[i] += 1;
+ 		}
+ 
+ 	    omp_target_memset_async (ptr + start, val - 3,
+ 				     1024 - start - tail, dev, 1, &dep);
+ 
+ 	    #pragma omp taskwait depend (depobj: dep)
+ 	  }
+       #pragma omp depobj(dep) destroy
+       omp_target_free (ptr, dev);
+     }
+ }
diff -Nrcpad gcc-16-20250601/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-3.c gcc-16-20250608/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-3.c
*** gcc-16-20250601/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-3.c	Sun Jun  8 22:32:44 2025
***************
*** 0 ****
--- 1,80 ----
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <omp.h>
+ 
+ #define MIN(x,y) ((x) < (y) ? x : y)
+ 
+ enum { N = 524288 + 8 };
+ 
+ static void
+ init_val (int8_t *ptr, int val, size_t count)
+ {
+   #pragma omp target is_device_ptr(ptr) firstprivate(val, count)
+   __builtin_memset (ptr, val, count);
+ }
+ 
+ static void
+ check_val (int8_t *ptr, int val, size_t count)
+ {
+   if (count == 0)
+     return;
+   #pragma omp target is_device_ptr(ptr) firstprivate(val, count)
+   for (size_t i = 0; i < count; i++)
+     if (ptr[i] != val) __builtin_abort ();
+ }
+ 
+ static void
+ test_it (int8_t *ptr, int lshift, size_t count)
+ {
+   if (N < count + lshift) __builtin_abort ();
+   if (lshift >= 4) __builtin_abort ();
+   ptr += lshift;
+ 
+   init_val (ptr, 'z', MIN (count + 32, N - lshift));
+ 
+   omp_target_memset (ptr, '1', count, omp_get_default_device());
+ 
+   check_val (ptr, '1', count);
+   check_val (ptr + count, 'z', MIN (32, N - lshift - count));
+ }
+ 
+ 
+ int main()
+ {
+   size_t size;
+   int8_t *ptr = (int8_t *) omp_target_alloc (N + 3, omp_get_default_device());
+   ptr += (4 - (uintptr_t) ptr % 4) % 4;
+   if ((uintptr_t) ptr % 4 != 0) __builtin_abort ();
+ 
+   test_it (ptr, 0, 1);
+   test_it (ptr, 3, 1);
+   test_it (ptr, 0, 4);
+   test_it (ptr, 3, 4);
+   test_it (ptr, 0, 5);
+   test_it (ptr, 3, 5);
+   test_it (ptr, 0, 6);
+   test_it (ptr, 3, 6);
+ 
+   for (int i = 1; i <= 9; i++)
+     {
+       switch (i)
+ 	{
+ 	case 1: size = 16; break; // = 2^4 bytes
+ 	case 2: size = 32; break; // = 2^5 bytes
+ 	case 3: size = 64; break; // = 2^7 bytes
+ 	case 4: size = 128; break; // = 2^7 bytes
+ 	case 5: size = 256; break; // = 2^8 bytes
+ 	case 6: size = 512; break; // = 2^9 bytes
+ 	case 7: size = 65536; break; // = 2^16 bytes
+ 	case 8: size = 262144; break; // = 2^18 bytes
+ 	case 9: size = 524288; break; // = 2^20 bytes
+ 	default: __builtin_abort ();
+ 	}
+       test_it (ptr, 0, size);
+       test_it (ptr, 3, size);
+       test_it (ptr, 0, size + 1);
+       test_it (ptr, 3, size + 1);
+       test_it (ptr, 3, size + 2);
+     }
+   omp_target_free (ptr, omp_get_default_device());
+ }
diff -Nrcpad gcc-16-20250601/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset.c gcc-16-20250608/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset.c
*** gcc-16-20250601/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libgomp/testsuite/libgomp.c-c++-common/omp_target_memset.c	Sun Jun  8 22:32:44 2025
***************
*** 0 ****
--- 1,62 ----
+ // PR libgomp/120444
+ 
+ #include <omp.h>
+ 
+ int main()
+ {
+   for (int dev = omp_initial_device; dev < omp_get_num_devices (); dev++)
+     {
+       char *ptr = (char *) omp_target_alloc (sizeof(int) * 1024, dev);
+ 
+       /* Play also around with the alignment - as hsa_amd_memory_fill operates
+ 	 on multiples of 4 bytes (uint32_t).  */
+ 
+       for (int start = 0; start < 32; start++)
+ 	for (int tail = 0; tail < 32; tail++)
+ 	  {
+ 	    unsigned char val = '0' + start + tail;
+ 	    void *ptr2 = omp_target_memset (ptr + start, val,
+ 					    1024 - start - tail, dev);
+ 	    if (ptr + start != ptr2)
+ 	      __builtin_abort ();
+ 
+ 	    #pragma omp target device(dev) is_device_ptr(ptr)
+ 	      for (int i = start; i < 1024 - start - tail; i++)
+ 		if (ptr[i] != val)
+ 		  __builtin_abort ();
+ 
+ 	  }
+ 
+       /* Check 'small' values for correctness.  */
+ 
+       for (int start = 0; start < 32; start++)
+ 	for (int size = 0; size <= 64 + 32; size++)
+ 	  {
+ 	    omp_target_memset (ptr, 'a' - 2, 1024, dev);
+ 
+ 	    unsigned char val = '0' + start + size % 32;
+ 	    void *ptr2 = omp_target_memset (ptr + start, val, size, dev);
+ 
+ 	    if (ptr + start != ptr2)
+ 	      __builtin_abort ();
+ 
+ 	    if (size == 0)
+ 	      continue;
+ 
+ 	    #pragma omp target device(dev) is_device_ptr(ptr)
+ 	    {
+ 	      for (int i = 0; i < start; i++)
+ 		if (ptr[i] != 'a' - 2)
+ 		  __builtin_abort ();
+ 	      for (int i = start; i < start + size; i++)
+ 		if (ptr[i] != val)
+ 		  __builtin_abort ();
+ 	      for (int i = start + size + 1; i < 1024; i++)
+ 		if (ptr[i] != 'a' - 2)
+ 		  __builtin_abort ();
+ 	    }
+ 	  }
+ 
+       omp_target_free (ptr, dev);
+     }
+ }
diff -Nrcpad gcc-16-20250601/libgomp/testsuite/libgomp.fortran/omp_target_memset-2.f90 gcc-16-20250608/libgomp/testsuite/libgomp.fortran/omp_target_memset-2.f90
*** gcc-16-20250601/libgomp/testsuite/libgomp.fortran/omp_target_memset-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libgomp/testsuite/libgomp.fortran/omp_target_memset-2.f90	Sun Jun  8 22:32:45 2025
***************
*** 0 ****
--- 1,67 ----
+ ! PR libgomp/120444
+ ! Async version
+ 
+ use omp_lib
+ use iso_c_binding
+ implicit none (type, external)
+ integer(c_int) :: dev
+ 
+ !$omp parallel do
+ do dev = omp_initial_device, omp_get_num_devices ()
+ block
+   integer(c_int) :: i, val, start, tail
+   type(c_ptr) :: ptr, ptr2, tmpptr
+   integer(c_int8_t), pointer, contiguous :: fptr(:)
+   integer(c_intptr_t) :: intptr
+   integer(c_size_t), parameter :: count = 1024
+   integer(omp_depend_kind) :: dep(1)
+ 
+   ptr = omp_target_alloc (count, dev)
+ 
+   !$omp depobj(dep(1)) depend(inout: ptr)
+ 
+   ! Play also around with the alignment - as hsa_amd_memory_fill operates
+   ! on multiples of 4 bytes (c_int32_t)
+ 
+   do start = 0, 31
+     do tail = 0, 31
+       val = iachar('0') + start + tail
+ 
+       tmpptr = transfer (transfer (ptr, intptr) + start, tmpptr)
+       ptr2 = omp_target_memset_async (tmpptr, val, count - start - tail, dev, 0)
+ 
+       if (.not. c_associated (tmpptr, ptr2)) stop 1
+ 
+       !$omp taskwait
+ 
+       !$omp target device(dev) is_device_ptr(ptr) depend(depobj: dep(1)) nowait
+         do i = 1 + start, int(count, c_int) - start - tail
+           call c_f_pointer (ptr, fptr, [count])
+           if (fptr(i) /= int (val, c_int8_t)) stop 2
+           fptr(i) = fptr(i) + 2_c_int8_t
+         end do
+       !$omp end target
+ 
+       ptr2 = omp_target_memset_async (tmpptr, val + 3, &
+                                       count - start - tail, dev, 1, dep)
+ 
+       !$omp target device(dev) is_device_ptr(ptr) depend(depobj: dep(1)) nowait
+         do i = 1 + start, int(count, c_int) - start - tail
+           call c_f_pointer (ptr, fptr, [count])
+           if (fptr(i) /= int (val + 3, c_int8_t)) stop 3
+           fptr(i) = fptr(i) - 1_c_int8_t
+         end do
+       !$omp end target
+ 
+       ptr2 = omp_target_memset_async (tmpptr, val - 3, &
+                                       count - start - tail, dev, 1, dep)
+ 
+       !$omp taskwait depend (depobj: dep(1))
+     end do
+   end do
+ 
+   !$omp depobj(dep(1)) destroy
+   call omp_target_free (ptr, dev);
+ end block
+ end do
+ end
diff -Nrcpad gcc-16-20250601/libgomp/testsuite/libgomp.fortran/omp_target_memset.f90 gcc-16-20250608/libgomp/testsuite/libgomp.fortran/omp_target_memset.f90
*** gcc-16-20250601/libgomp/testsuite/libgomp.fortran/omp_target_memset.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libgomp/testsuite/libgomp.fortran/omp_target_memset.f90	Sun Jun  8 22:32:45 2025
***************
*** 0 ****
--- 1,39 ----
+ ! PR libgomp/120444
+ 
+ use omp_lib
+ use iso_c_binding
+ implicit none (type, external)
+ 
+ integer(c_int) :: dev, i, val, start, tail
+ type(c_ptr) :: ptr, ptr2, tmpptr
+ integer(c_int8_t), pointer, contiguous :: fptr(:)
+ integer(c_intptr_t) :: intptr
+ integer(c_size_t), parameter :: count = 1024
+ 
+ do dev = omp_initial_device, omp_get_num_devices ()
+   ptr = omp_target_alloc (count, dev)
+ 
+   ! Play also around with the alignment - as hsa_amd_memory_fill operates
+   ! on multiples of 4 bytes (c_int32_t)
+ 
+   do start = 0, 31
+     do tail = 0, 31
+       val = iachar('0') + start + tail
+ 
+       tmpptr = transfer (transfer (ptr, intptr) + start, tmpptr)
+       ptr2 = omp_target_memset (tmpptr, val, count - start - tail, dev)
+ 
+       if (.not. c_associated (tmpptr, ptr2)) stop 1
+ 
+       !$omp target device(dev) is_device_ptr(ptr)
+         do i = 1 + start, int(count, c_int) - start - tail
+           call c_f_pointer (ptr, fptr, [count])
+           if (fptr(i) /= int (val, c_int8_t)) stop 2
+         end do
+       !$omp end target
+     end do
+   end do
+ 
+   call omp_target_free (ptr, dev);
+ end do
+ end
diff -Nrcpad gcc-16-20250601/libstdc++-v3/ChangeLog gcc-16-20250608/libstdc++-v3/ChangeLog
*** gcc-16-20250601/libstdc++-v3/ChangeLog	Sun Jun  1 22:32:40 2025
--- gcc-16-20250608/libstdc++-v3/ChangeLog	Sun Jun  8 22:32:47 2025
***************
*** 1,3 ****
--- 1,338 ----
+ 2025-06-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/30_threads/semaphore/1.cc: Check type properties and
+ 	max() values.
+ 	* testsuite/30_threads/semaphore/3.cc: New test.
+ 	* testsuite/30_threads/semaphore/cons_neg.cc: New test.
+ 
+ 2025-06-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/semaphore_base.h (_Select_semaphore_impl): Rename
+ 	to _Semaphore_impl and use std::conditional_t instead of an
+ 	immediately invoked lambda expression.
+ 	* include/std/semaphore (counting_semaphore): Adjust to use new
+ 	name.
+ 
+ 2025-06-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/30_threads/barrier/1.cc: Require hosted. Only
+ 	require gthreads for non-linux targets.
+ 	* testsuite/30_threads/barrier/2.cc: Likewise.
+ 	* testsuite/30_threads/semaphore/1.cc: Likewise.
+ 	* testsuite/30_threads/semaphore/2.cc: Likewise.
+ 	* testsuite/30_threads/semaphore/cons.cc: Likewise.
+ 	* testsuite/30_threads/semaphore/least_max_value_neg.cc:
+ 	Likewise.
+ 	* testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
+ 
+ 2025-06-06  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/120432
+ 	* include/std/flat_map (flat_map::operator[]): Make the
+ 	non-template overloads call try_emplace directly.  Remove
+ 	non-standard same_as constraint on the template overload.
+ 	* testsuite/23_containers/flat_map/1.cc (test08): New test.
+ 
+ 2025-06-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/atomic_timed_wait.h (__atomic_wait_address_until_v):
+ 	Add assertion to prevent use with proxy waits.
+ 	(__atomic_wait_address_for_v): Likewise.
+ 	* include/bits/atomic_wait.h (__atomic_wait_address_v):
+ 	Likewise.
+ 
+ 2025-06-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/atomic_wait.h (__atomic_wait_address_v): Add bare
+ 	wait flag.
+ 	* include/bits/semaphore_base.h (__semaphore_base): Rename to
+ 	__semaphore_impl. Replace local variable and predicate lambdas
+ 	with _Available struct.
+ 	(__platform_semaphore_impl): New class template.
+ 	(__semaphore_impl): Remove alias template.
+ 	(_Select_semaphore_impl): New alias template.
+ 	* include/std/semaphore (counting_semaphore): Use
+ 	_Select_semaphore_impl.
+ 
+ 2025-06-06  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/120565
+ 	* include/bits/chrono_io.h
+ 	(operator<<(basic_ostream<_CharT, _Traits>&, const sys_info&))
+ 	(operator<<(basic_ostream<_CharT, _Traits>&, const local_info&)):
+ 	Support wchar_t as _CharT.
+ 	* testsuite/std/time/format/empty_spec.cc: Instantiated test_infos for
+ 	wchar_t and increase timeout.
+ 
+ 2025-06-06  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/std/time/format/empty_spec.cc: New tests and increased
+ 	timeout.
+ 
+ 2025-06-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/120548
+ 	* include/std/format (__formatter_fp::_M_localize): Do not
+ 	include a leading sign character in the string to be grouped.
+ 	* testsuite/std/format/functions/format.cc: Check grouping when
+ 	sign is present in the output.
+ 
+ 2025-06-05  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/119152
+ 	* src/c++23/std.cc.in (std::indirect, pmr::indirect)
+ 	[__cpp_lib_indirect]
+ 	(std::polymorphic, pmr::polymorphic) [__cpp_lib_polymorphic]: Export.
+ 
+ 2025-06-05  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/120481
+ 	* include/bits/chrono_io.h (__format::_S_chars): Reorder so it
+ 	contains "-{}".
+ 	(__format::_S_colon, __format::_S_slash, __format::_S_space)
+ 	(__format::_S_plus_minus): Updated starting indicies.
+ 	(__format::_S_minus_empty_spec): Define.
+ 	(__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_R_T):
+ 	Rework implementation.
+ 	(__formatter_chrono::_M_d_e, __formatter_chrono::_M_F)
+ 	(__formatter_chrono::_M_m, __formatter_chrono::_M_u_w)
+ 	(__formatter_chrono::_M_H_I, __formatter_chrono::_M_p):
+ 	Handle multi digits values.
+ 	(__formatter_chrono::_S_digit): Return string view.
+ 	(__formatter_chrono::_S_str_d1, __formatter_chrono::_S_str_d2)
+ 	(__formatter_chrono::_S_fill_two_digits): Define.
+ 	* testsuite/std/time/format/empty_spec.cc: Update test for
+ 	year_month_day, that uses '%F'.
+ 	* testsuite/std/time/format/pr120481.cc: New test.
+ 
+ 2025-06-05  Nathan Myers  <ncm@cantrip.org>
+ 
+ 	Revert:
+ 	2025-06-04  Nathan Myers  <ncm@cantrip.org>
+ 
+ 	PR libstdc++/119741
+ 	* include/std/sstream: full implementation, really just
+ 	decls, requires clause and plumbing.
+ 	* include/bits/version.def, include/bits/version.h:
+ 	new preprocessor symbol
+ 	__cpp_lib_sstream_from_string_view.
+ 	* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 
+ 2025-06-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/std/time/format/empty_spec.cc: Only test time zones
+ 	for cxx11 string ABI.
+ 
+ 2025-06-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/99832
+ 	* include/bits/chrono.h (system_clock::to_time_t): Add
+ 	always_inline attribute to be agnostic to the underlying type of
+ 	time_t.
+ 	(system_clock::from_time_t): Add always_inline for consistency
+ 	with to_time_t.
+ 	* testsuite/20_util/system_clock/99832.cc: New test.
+ 
+ 2025-06-04  Nathan Myers  <ncm@cantrip.org>
+ 
+ 	PR libstdc++/119741
+ 	* include/std/sstream: full implementation, really just
+ 	decls, requires clause and plumbing.
+ 	* include/bits/version.def, include/bits/version.h:
+ 	new preprocessor symbol
+ 	__cpp_lib_sstream_from_string_view.
+ 	* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 	* testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc:
+ 	New tests.
+ 
+ 2025-06-04  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/c++config (_GLIBCXX_AUTO_CAST): Define.
+ 	* include/bits/iterator_concepts.h (_Decay_copy, __decay_copy):
+ 	Remove.
+ 	(__member_begin, __adl_begin): Use _GLIBCXX_AUTO_CAST instead of
+ 	__decay_copy as per P0849R8.
+ 	* include/bits/ranges_base.h (_Begin): Likewise.
+ 	(__member_end, __adl_end, _End): Likewise.
+ 	(__member_rbegin, __adl_rbegin, _RBegin): Likewise.
+ 	(__member_rend, __adl_rend, _Rend): Likewise.
+ 	(__member_size, __adl_size, _Size): Likewise.
+ 	(_Data): Likewise.
+ 
+ 2025-06-04  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/std/time/format/empty_spec.cc: New tests.
+ 
+ 2025-06-04  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/ranges_algo.h (__starts_with_fn, starts_with):
+ 	Define.
+ 	(__ends_with_fn, ends_with): Define.
+ 	* include/bits/version.def (ranges_starts_ends_with): Define.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/algorithm: Provide __cpp_lib_ranges_starts_ends_with.
+ 	* src/c++23/std.cc.in (ranges::starts_with): Export.
+ 	(ranges::ends_with): Export.
+ 	* testsuite/25_algorithms/ends_with/1.cc: New test.
+ 	* testsuite/25_algorithms/starts_with/1.cc: New test.
+ 
+ 2025-06-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/semaphore_base.h (_S_get_current): Replace with
+ 	non-static _M_get_current.
+ 	(_S_do_try_acquire): Replace with non-static _M_do_try_acquire.
+ 
+ 2025-06-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/104928
+ 	* include/bits/semaphore_base.h (_S_do_try_acquire): Take old
+ 	value by reference.
+ 	(_M_acquire): Move _S_do_try_acquire call out of the predicate
+ 	and loop on its result. Make the predicate capture and update
+ 	the local copy of the value.
+ 	(_M_try_acquire_until, _M_try_acquire_for): Likewise.
+ 	(_M_try_acquire): Just call _M_try_acquire_for.
+ 	* testsuite/30_threads/semaphore/104928-2.cc: New test.
+ 	* testsuite/30_threads/semaphore/104928.cc: New test.
+ 
+ 2025-06-04  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/chrono_io.h (__formatter_chrono:_M_s): Add missing
+ 	__out argument to format_to call.
+ 	* testsuite/std/time/format/empty_spec.cc: New test.
+ 
+ 2025-06-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/stop_token: Check __glibcxx_jthread instead of
+ 	__cplusplus.
+ 
+ 2025-06-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/type_traits (is_destructible, is_destructible_v):
+ 	Define using new built-in.
+ 	(is_nothrow_destructible, is_nothrow_destructible_v): Likewise.
+ 	(is_trivially_destructible, is_trivially_destructible_v):
+ 	Likewise.
+ 
+ 2025-06-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/atomic_timed_wait.h (__detail::__wait_until):
+ 	Remove incorrect comment.
+ 	(__atomic_wait_address_until_v): Do not take address of __args in
+ 	call to __detail::__wait_until. Fix return statement to refer to
+ 	member of __wait_result_type.
+ 	(__atomic_wait_address_for_v): Change parameter type from
+ 	time_point to duration.
+ 	* src/c++20/atomic.cc (__spin_until_impl): Fix incorrect
+ 	return value. Reuse result of first call to clock.
+ 
+ 2025-06-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_vector.h (~_Vector_base): Add unreachable
+ 	hint for negative capacity and cast to size_t explicitly.
+ 	* include/bits/vector.tcc (vector::_M_realloc_append): Use
+ 	size() instead of end() - begin().
+ 
+ 2025-06-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/bit (__rotl, __rotr): Use static_cast for
+ 	conversion from int to unsigned.
+ 
+ 2025-06-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++23/std.cc.in: Remove redundant checks for feature test
+ 	macros that are always true.
+ 
+ 2025-06-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/basic_string.h (basic_string::size): Remove space
+ 	before parameter list.
+ 	(basic_string::capacity): Likewise.
+ 	* include/bits/stl_deque.h (deque::size): Likewise.
+ 	* include/bits/stl_vector.h (vector::size, vector::capacity):
+ 	Likewise.
+ 	* include/bits/vector.tcc (vector::_M_realloc_insert): Likewise.
+ 	(vector::_M_realloc_append): Likewise.
+ 
+ 2025-06-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/120386
+ 	* include/bits/ranges_algo.h (__unique_copy_fn): Reorder
+ 	arguments for third case to match the first two cases.
+ 	* include/bits/stl_algo.h (__unique_copy): Replace three
+ 	overloads with two, depending only on the iterator category of
+ 	the input range.  Dispatch to __unique_copy_1 for the
+ 	non-forward case.
+ 	(__unique_copy_1): New overloads for the case where the input
+ 	range uses non-forward iterators.
+ 	(unique_copy): Only pass the input range category to
+ 	__unique_copy.
+ 	* testsuite/25_algorithms/unique_copy/lwg2439.cc: New test.
+ 
+ 2025-06-02  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/funcwrap.h (__polyfunc::__pass_by_rref): Define.
+ 	(__polyfunc::__param_t): Update to use __pass_by_rref.
+ 	* include/bits/cpyfunc_impl.h:: Assert that are parameters type
+ 	are complete.
+ 	* include/bits/funcref_impl.h: Likewise.
+ 	* include/bits/mofunc_impl.h: Likewise.
+ 	* testsuite/20_util/copyable_function/call.cc: New test.
+ 	* testsuite/20_util/function_ref/call.cc: New test.
+ 	* testsuite/20_util/move_only_function/call.cc: New test.
+ 	* testsuite/20_util/copyable_function/conv.cc: New test.
+ 	* testsuite/20_util/function_ref/conv.cc: New test.
+ 	* testsuite/20_util/move_only_function/conv.cc: New test.
+ 	* testsuite/20_util/copyable_function/incomplete_neg.cc: New test.
+ 	* testsuite/20_util/function_ref/incomplete_neg.cc: New test.
+ 	* testsuite/20_util/move_only_function/incomplete_neg.cc: New test.
+ 
+ 2025-06-02  Jonathan Wakely  <jwakely@redhat.com>
+ 	    Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/119152
+ 	* include/bits/indirect.h (std::polymorphic, pmr::polymorphic)
+ 	[__glibcxx_polymorphic]: Define.
+ 	* include/bits/version.def (polymorphic): Define.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/memory: Define __cpp_lib_polymorphic.
+ 	* testsuite/std/memory/polymorphic/copy.cc: New test.
+ 	* testsuite/std/memory/polymorphic/copy_alloc.cc: New test.
+ 	* testsuite/std/memory/polymorphic/ctor.cc: New test.
+ 	* testsuite/std/memory/polymorphic/ctor_poly.cc: New test.
+ 	* testsuite/std/memory/polymorphic/incomplete.cc: New test.
+ 	* testsuite/std/memory/polymorphic/invalid_neg.cc: New test.
+ 	* testsuite/std/memory/polymorphic/move.cc: New test.
+ 	* testsuite/std/memory/polymorphic/move_alloc.cc: New test.
+ 
  2025-05-30  Tomasz Kamiński  <tkaminsk@redhat.com>
  
  	* testsuite/std/time/format/empty_spec.cc: New test.
diff -Nrcpad gcc-16-20250601/libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt gcc-16-20250608/libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
*** gcc-16-20250601/libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt	Sun Jun  1 22:32:40 2025
--- gcc-16-20250608/libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt	Sun Jun  8 22:32:47 2025
***************
*** 1,9084 ****
- FUNC:_ZGTtNKSt11logic_error4whatEv
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
- FUNC:_ZGTtNKSt13bad_exception4whatEv
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
- FUNC:_ZGTtNKSt13bad_exceptionD1Ev
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
- FUNC:_ZGTtNKSt13runtime_error4whatEv
  FUNC:_ZGTtNKSt13runtime_error4whatEv@@GLIBCXX_3.4.22
- FUNC:_ZGTtNKSt9exception4whatEv
  FUNC:_ZGTtNKSt9exception4whatEv@@CXXABI_1.3.10
- FUNC:_ZGTtNKSt9exceptionD1Ev
  FUNC:_ZGTtNKSt9exceptionD1Ev@@CXXABI_1.3.10
- FUNC:_ZGTtNSt11logic_errorC1EPKc
  FUNC:_ZGTtNSt11logic_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11logic_errorC2EPKc
  FUNC:_ZGTtNSt11logic_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11logic_errorD0Ev
  FUNC:_ZGTtNSt11logic_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11logic_errorD1Ev
  FUNC:_ZGTtNSt11logic_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11logic_errorD2Ev
  FUNC:_ZGTtNSt11logic_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorC1EPKc
  FUNC:_ZGTtNSt11range_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorC2EPKc
  FUNC:_ZGTtNSt11range_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorD0Ev
  FUNC:_ZGTtNSt11range_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorD1Ev
  FUNC:_ZGTtNSt11range_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt11range_errorD2Ev
  FUNC:_ZGTtNSt11range_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorC1EPKc
  FUNC:_ZGTtNSt12domain_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorC2EPKc
  FUNC:_ZGTtNSt12domain_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorD0Ev
  FUNC:_ZGTtNSt12domain_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorD1Ev
  FUNC:_ZGTtNSt12domain_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12domain_errorD2Ev
  FUNC:_ZGTtNSt12domain_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorC1EPKc
  FUNC:_ZGTtNSt12length_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorC2EPKc
  FUNC:_ZGTtNSt12length_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorD0Ev
  FUNC:_ZGTtNSt12length_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorD1Ev
  FUNC:_ZGTtNSt12length_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12length_errorD2Ev
  FUNC:_ZGTtNSt12length_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeC1EPKc
  FUNC:_ZGTtNSt12out_of_rangeC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeC2EPKc
  FUNC:_ZGTtNSt12out_of_rangeC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeD0Ev
  FUNC:_ZGTtNSt12out_of_rangeD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeD1Ev
  FUNC:_ZGTtNSt12out_of_rangeD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt12out_of_rangeD2Ev
  FUNC:_ZGTtNSt12out_of_rangeD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorC1EPKc
  FUNC:_ZGTtNSt13runtime_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorC2EPKc
  FUNC:_ZGTtNSt13runtime_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorD0Ev
  FUNC:_ZGTtNSt13runtime_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorD1Ev
  FUNC:_ZGTtNSt13runtime_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt13runtime_errorD2Ev
  FUNC:_ZGTtNSt13runtime_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorC1EPKc
  FUNC:_ZGTtNSt14overflow_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorC2EPKc
  FUNC:_ZGTtNSt14overflow_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorD0Ev
  FUNC:_ZGTtNSt14overflow_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorD1Ev
  FUNC:_ZGTtNSt14overflow_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt14overflow_errorD2Ev
  FUNC:_ZGTtNSt14overflow_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorC1EPKc
  FUNC:_ZGTtNSt15underflow_errorC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorC2EPKc
  FUNC:_ZGTtNSt15underflow_errorC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorD0Ev
  FUNC:_ZGTtNSt15underflow_errorD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorD1Ev
  FUNC:_ZGTtNSt15underflow_errorD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt15underflow_errorD2Ev
  FUNC:_ZGTtNSt15underflow_errorD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentC1EPKc
  FUNC:_ZGTtNSt16invalid_argumentC1EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentC2EPKc
  FUNC:_ZGTtNSt16invalid_argumentC2EPKc@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZGTtNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentD0Ev
  FUNC:_ZGTtNSt16invalid_argumentD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentD1Ev
  FUNC:_ZGTtNSt16invalid_argumentD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZGTtNSt16invalid_argumentD2Ev
  FUNC:_ZGTtNSt16invalid_argumentD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZN10__cxxabiv116__enum_type_infoD0Ev
  FUNC:_ZN10__cxxabiv116__enum_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv116__enum_type_infoD1Ev
  FUNC:_ZN10__cxxabiv116__enum_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv116__enum_type_infoD2Ev
  FUNC:_ZN10__cxxabiv116__enum_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__array_type_infoD0Ev
  FUNC:_ZN10__cxxabiv117__array_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__array_type_infoD1Ev
  FUNC:_ZN10__cxxabiv117__array_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__array_type_infoD2Ev
  FUNC:_ZN10__cxxabiv117__array_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__class_type_infoD0Ev
  FUNC:_ZN10__cxxabiv117__class_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__class_type_infoD1Ev
  FUNC:_ZN10__cxxabiv117__class_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__class_type_infoD2Ev
  FUNC:_ZN10__cxxabiv117__class_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__pbase_type_infoD0Ev
  FUNC:_ZN10__cxxabiv117__pbase_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__pbase_type_infoD1Ev
  FUNC:_ZN10__cxxabiv117__pbase_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv117__pbase_type_infoD2Ev
  FUNC:_ZN10__cxxabiv117__pbase_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv119__pointer_type_infoD0Ev
  FUNC:_ZN10__cxxabiv119__pointer_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv119__pointer_type_infoD1Ev
  FUNC:_ZN10__cxxabiv119__pointer_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv119__pointer_type_infoD2Ev
  FUNC:_ZN10__cxxabiv119__pointer_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv120__function_type_infoD0Ev
  FUNC:_ZN10__cxxabiv120__function_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv120__function_type_infoD1Ev
  FUNC:_ZN10__cxxabiv120__function_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv120__function_type_infoD2Ev
  FUNC:_ZN10__cxxabiv120__function_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv120__si_class_type_infoD0Ev
  FUNC:_ZN10__cxxabiv120__si_class_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv120__si_class_type_infoD1Ev
  FUNC:_ZN10__cxxabiv120__si_class_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv120__si_class_type_infoD2Ev
  FUNC:_ZN10__cxxabiv120__si_class_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD0Ev
  FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD1Ev
  FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD2Ev
  FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv123__fundamental_type_infoD0Ev
  FUNC:_ZN10__cxxabiv123__fundamental_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv123__fundamental_type_infoD1Ev
  FUNC:_ZN10__cxxabiv123__fundamental_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv123__fundamental_type_infoD2Ev
  FUNC:_ZN10__cxxabiv123__fundamental_type_infoD2Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
- FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
- FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
- FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
- FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
- FUNC:_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
- FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
- FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
- FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
- FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
- FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_@@GLIBCXX_3.4.17
- FUNC:_ZN14__gnu_parallel9_Settings3getEv
  FUNC:_ZN14__gnu_parallel9_Settings3getEv@@GLIBCXX_3.4.10
- FUNC:_ZN14__gnu_parallel9_Settings3setERS0_
  FUNC:_ZN14__gnu_parallel9_Settings3setERS0_@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx12__atomic_addEPVii
  FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
- FUNC:_ZN9__gnu_cxx17__pool_alloc_base12_M_get_mutexEv
  FUNC:_ZN9__gnu_cxx17__pool_alloc_base12_M_get_mutexEv@@GLIBCXX_3.4.2
- FUNC:_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj
  FUNC:_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj@@GLIBCXX_3.4.2
- FUNC:_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEj
  FUNC:_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEj@@GLIBCXX_3.4.2
- FUNC:_ZN9__gnu_cxx18__exchange_and_addEPVii
  FUNC:_ZN9__gnu_cxx18__exchange_and_addEPVii@@GLIBCXX_3.4
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4fileEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4fileEv@@GLIBCXX_3.4.2
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4syncEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE5uflowEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE8overflowEi
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9pbackfailEi
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9underflowEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EOS3_
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EP8_IO_FILE
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EP8_IO_FILE@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EOS3_
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EP8_IO_FILE
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EP8_IO_FILE@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED0Ev
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEaSEOS3_
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4fileEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4fileEv@@GLIBCXX_3.4.2
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4syncEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE8overflowEj
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9pbackfailEj
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9underflowEv
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EOS3_
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EP8_IO_FILE
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EP8_IO_FILE@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EOS3_
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EP8_IO_FILE
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EP8_IO_FILE@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED0Ev
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED1Ev
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4.10
- FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEaSEOS3_
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv
  FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.3
- FUNC:_ZN9__gnu_cxx6__poolILb0EE10_M_destroyEv
  FUNC:_ZN9__gnu_cxx6__poolILb0EE10_M_destroyEv@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb0EE13_M_initializeEv
  FUNC:_ZN9__gnu_cxx6__poolILb0EE13_M_initializeEv@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcj
  FUNC:_ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcj@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEjj
  FUNC:_ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEjj@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb1EE10_M_destroyEv
  FUNC:_ZN9__gnu_cxx6__poolILb1EE10_M_destroyEv@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEPFvPvE
  FUNC:_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEPFvPvE@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv
  FUNC:_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv@@GLIBCXX_3.4.6
- FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_get_thread_idEv
  FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_get_thread_idEv@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcj
  FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcj@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEjj
  FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEjj@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx6__poolILb1EE21_M_destroy_thread_keyEPv
  FUNC:_ZN9__gnu_cxx6__poolILb1EE21_M_destroy_thread_keyEPv@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx9__freeresEv
  FUNC:_ZN9__gnu_cxx9__freeresEv@@CXXABI_1.3.10
- FUNC:_ZN9__gnu_cxx9free_list6_M_getEj
  FUNC:_ZN9__gnu_cxx9free_list6_M_getEj@@GLIBCXX_3.4.4
- FUNC:_ZN9__gnu_cxx9free_list8_M_clearEv
  FUNC:_ZN9__gnu_cxx9free_list8_M_clearEv@@GLIBCXX_3.4.4
- FUNC:_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj
  FUNC:_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE
  FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv
  FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE
  FUNC:_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_
  FUNC:_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj
  FUNC:_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj
  FUNC:_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv
  FUNC:_ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj
  FUNC:_ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv120__function_type_info15__is_function_pEv
  FUNC:_ZNK10__cxxabiv120__function_type_info15__is_function_pEv@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE
  FUNC:_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE
  FUNC:_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_
  FUNC:_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE
  FUNC:_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE
  FUNC:_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_
  FUNC:_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
- FUNC:_ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj
  FUNC:_ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
- FUNC:_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE
  FUNC:_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc
  FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_
  FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc
  FUNC:_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc
  FUNC:_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv
  FUNC:_ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv@@GLIBCXX_3.4.10
- FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
- FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
- FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKRSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKRSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4backEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.15
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4cendEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4cendEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5crendEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5crendEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5frontEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.15
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6cbeginEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6cbeginEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7crbeginEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7crbeginEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
- FUNC:_ZNKSi6gcountEv
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
- FUNC:_ZNKSi6sentrycvbEv
  FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
- FUNC:_ZNKSo6sentrycvbEv
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
- FUNC:_ZNKSs12find_last_ofEPKcj
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs12find_last_ofEPKcjj
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs12find_last_ofERKSsj
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
- FUNC:_ZNKSs12find_last_ofEcj
  FUNC:_ZNKSs12find_last_ofEcj@@GLIBCXX_3.4
- FUNC:_ZNKSs13find_first_ofEPKcj
  FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs13find_first_ofEPKcjj
  FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs13find_first_ofERKSsj
  FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCXX_3.4
- FUNC:_ZNKSs13find_first_ofEcj
  FUNC:_ZNKSs13find_first_ofEcj@@GLIBCXX_3.4
- FUNC:_ZNKSs13get_allocatorEv
  FUNC:_ZNKSs13get_allocatorEv@@GLIBCXX_3.4
  FUNC:_ZNKSs15_M_check_lengthEjjPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs15_M_check_lengthEjjPKc@GLIBCXX_3.4
- FUNC:_ZNKSs16find_last_not_ofEPKcj
  FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs16find_last_not_ofEPKcjj
  FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs16find_last_not_ofERKSsj
  FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCXX_3.4
- FUNC:_ZNKSs16find_last_not_ofEcj
  FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCXX_3.4
- FUNC:_ZNKSs17find_first_not_ofEPKcj
  FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs17find_first_not_ofEPKcjj
  FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs17find_first_not_ofERKSsj
  FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCXX_3.4
- FUNC:_ZNKSs17find_first_not_ofEcj
  FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCXX_3.4
- FUNC:_ZNKSs2atEj
  FUNC:_ZNKSs2atEj@@GLIBCXX_3.4
- FUNC:_ZNKSs3endEv
  FUNC:_ZNKSs3endEv@@GLIBCXX_3.4
- FUNC:_ZNKSs4_Rep12_M_is_leakedEv
  FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
- FUNC:_ZNKSs4_Rep12_M_is_sharedEv
  FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
- FUNC:_ZNKSs4backEv
  FUNC:_ZNKSs4backEv@@GLIBCXX_3.4.15
- FUNC:_ZNKSs4cendEv
  FUNC:_ZNKSs4cendEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSs4copyEPcjj
  FUNC:_ZNKSs4copyEPcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs4dataEv
  FUNC:_ZNKSs4dataEv@@GLIBCXX_3.4
- FUNC:_ZNKSs4findEPKcj
  FUNC:_ZNKSs4findEPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs4findEPKcjj
  FUNC:_ZNKSs4findEPKcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs4findERKSsj
  FUNC:_ZNKSs4findERKSsj@@GLIBCXX_3.4
- FUNC:_ZNKSs4findEcj
  FUNC:_ZNKSs4findEcj@@GLIBCXX_3.4
- FUNC:_ZNKSs4rendEv
  FUNC:_ZNKSs4rendEv@@GLIBCXX_3.4
- FUNC:_ZNKSs4sizeEv
  FUNC:_ZNKSs4sizeEv@@GLIBCXX_3.4
- FUNC:_ZNKSs5beginEv
  FUNC:_ZNKSs5beginEv@@GLIBCXX_3.4
- FUNC:_ZNKSs5c_strEv
  FUNC:_ZNKSs5c_strEv@@GLIBCXX_3.4
- FUNC:_ZNKSs5crendEv
  FUNC:_ZNKSs5crendEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSs5emptyEv
  FUNC:_ZNKSs5emptyEv@@GLIBCXX_3.4
- FUNC:_ZNKSs5frontEv
  FUNC:_ZNKSs5frontEv@@GLIBCXX_3.4.15
- FUNC:_ZNKSs5rfindEPKcj
  FUNC:_ZNKSs5rfindEPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs5rfindEPKcjj
  FUNC:_ZNKSs5rfindEPKcjj@@GLIBCXX_3.4
- FUNC:_ZNKSs5rfindERKSsj
  FUNC:_ZNKSs5rfindERKSsj@@GLIBCXX_3.4
- FUNC:_ZNKSs5rfindEcj
  FUNC:_ZNKSs5rfindEcj@@GLIBCXX_3.4
- FUNC:_ZNKSs6_M_repEv
  FUNC:_ZNKSs6_M_repEv@@GLIBCXX_3.4
- FUNC:_ZNKSs6cbeginEv
  FUNC:_ZNKSs6cbeginEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSs6lengthEv
  FUNC:_ZNKSs6lengthEv@@GLIBCXX_3.4
- FUNC:_ZNKSs6rbeginEv
  FUNC:_ZNKSs6rbeginEv@@GLIBCXX_3.4
- FUNC:_ZNKSs6substrEjj
  FUNC:_ZNKSs6substrEjj@@GLIBCXX_3.4
- FUNC:_ZNKSs7_M_dataEv
  FUNC:_ZNKSs7_M_dataEv@@GLIBCXX_3.4
- FUNC:_ZNKSs7_M_iendEv
  FUNC:_ZNKSs7_M_iendEv@@GLIBCXX_3.4
- FUNC:_ZNKSs7compareEPKc
  FUNC:_ZNKSs7compareEPKc@@GLIBCXX_3.4
- FUNC:_ZNKSs7compareERKSs
  FUNC:_ZNKSs7compareERKSs@@GLIBCXX_3.4
- FUNC:_ZNKSs7compareEjjPKc
  FUNC:_ZNKSs7compareEjjPKc@@GLIBCXX_3.4
- FUNC:_ZNKSs7compareEjjPKcj
  FUNC:_ZNKSs7compareEjjPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSs7compareEjjRKSs
  FUNC:_ZNKSs7compareEjjRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSs7compareEjjRKSsjj
  FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCXX_3.4
- FUNC:_ZNKSs7crbeginEv
  FUNC:_ZNKSs7crbeginEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSs8_M_checkEjPKc
  FUNC:_ZNKSs8_M_checkEjPKc@@GLIBCXX_3.4
- FUNC:_ZNKSs8_M_limitEjj
  FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
- FUNC:_ZNKSs8capacityEv
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
- FUNC:_ZNKSs8max_sizeEv
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
- FUNC:_ZNKSs9_M_ibeginEv
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
- FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSsixEj
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
- FUNC:_ZNKSt10bad_typeid4whatEv
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
- FUNC:_ZNKSt10error_code23default_error_conditionEv
  FUNC:_ZNKSt10error_code23default_error_conditionEv@@GLIBCXX_3.4.11
- FUNC:_ZNKSt10filesystem16filesystem_error4whatEv
  FUNC:_ZNKSt10filesystem16filesystem_error4whatEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem16filesystem_error5path1Ev
  FUNC:_ZNKSt10filesystem16filesystem_error5path1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem16filesystem_error5path2Ev
  FUNC:_ZNKSt10filesystem16filesystem_error5path2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem18directory_iteratordeEv
  FUNC:_ZNKSt10filesystem18directory_iteratordeEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem28recursive_directory_iterator17recursion_pendingEv
  FUNC:_ZNKSt10filesystem28recursive_directory_iterator17recursion_pendingEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem28recursive_directory_iterator5depthEv
  FUNC:_ZNKSt10filesystem28recursive_directory_iterator5depthEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem28recursive_directory_iterator7optionsEv
  FUNC:_ZNKSt10filesystem28recursive_directory_iterator7optionsEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem28recursive_directory_iteratordeEv
  FUNC:_ZNKSt10filesystem28recursive_directory_iteratordeEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path11parent_pathEv
  FUNC:_ZNKSt10filesystem4path11parent_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path12has_filenameEv
  FUNC:_ZNKSt10filesystem4path12has_filenameEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path13has_root_nameEv
  FUNC:_ZNKSt10filesystem4path13has_root_nameEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path13has_root_pathEv
  FUNC:_ZNKSt10filesystem4path13has_root_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path13relative_pathEv
  FUNC:_ZNKSt10filesystem4path13relative_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path14root_directoryEv
  FUNC:_ZNKSt10filesystem4path14root_directoryEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path15has_parent_pathEv
  FUNC:_ZNKSt10filesystem4path15has_parent_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path16lexically_normalEv
  FUNC:_ZNKSt10filesystem4path16lexically_normalEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path17_M_find_extensionEv
  FUNC:_ZNKSt10filesystem4path17_M_find_extensionEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path17has_relative_pathEv
  FUNC:_ZNKSt10filesystem4path17has_relative_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path18has_root_directoryEv
  FUNC:_ZNKSt10filesystem4path18has_root_directoryEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path18lexically_relativeERKS0_
  FUNC:_ZNKSt10filesystem4path18lexically_relativeERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path19lexically_proximateERKS0_
  FUNC:_ZNKSt10filesystem4path19lexically_proximateERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path5_List13_Impl_deleterclEPNS1_5_ImplE
  FUNC:_ZNKSt10filesystem4path5_List13_Impl_deleterclEPNS1_5_ImplE@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path5_List3endEv
  FUNC:_ZNKSt10filesystem4path5_List3endEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path5_List5beginEv
  FUNC:_ZNKSt10filesystem4path5_List5beginEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path7compareERKS0_
  FUNC:_ZNKSt10filesystem4path7compareERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path7compareESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNKSt10filesystem4path7compareESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path9root_nameEv
  FUNC:_ZNKSt10filesystem4path9root_nameEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem4path9root_pathEv
  FUNC:_ZNKSt10filesystem4path9root_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error4whatEv
  FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error4whatEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error5path1Ev
  FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error5path1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error5path2Ev
  FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error5path2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1118directory_iteratordeEv
  FUNC:_ZNKSt10filesystem7__cxx1118directory_iteratordeEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator17recursion_pendingEv
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator17recursion_pendingEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator5depthEv
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator5depthEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator7optionsEv
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator7optionsEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iteratordeEv
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iteratordeEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path11parent_pathEv
  FUNC:_ZNKSt10filesystem7__cxx114path11parent_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path12has_filenameEv
  FUNC:_ZNKSt10filesystem7__cxx114path12has_filenameEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path13has_root_nameEv
  FUNC:_ZNKSt10filesystem7__cxx114path13has_root_nameEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path13has_root_pathEv
  FUNC:_ZNKSt10filesystem7__cxx114path13has_root_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path13relative_pathEv
  FUNC:_ZNKSt10filesystem7__cxx114path13relative_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path14root_directoryEv
  FUNC:_ZNKSt10filesystem7__cxx114path14root_directoryEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path15has_parent_pathEv
  FUNC:_ZNKSt10filesystem7__cxx114path15has_parent_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path16lexically_normalEv
  FUNC:_ZNKSt10filesystem7__cxx114path16lexically_normalEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path17_M_find_extensionEv
  FUNC:_ZNKSt10filesystem7__cxx114path17_M_find_extensionEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path17has_relative_pathEv
  FUNC:_ZNKSt10filesystem7__cxx114path17has_relative_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path18has_root_directoryEv
  FUNC:_ZNKSt10filesystem7__cxx114path18has_root_directoryEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path18lexically_relativeERKS1_
  FUNC:_ZNKSt10filesystem7__cxx114path18lexically_relativeERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path19lexically_proximateERKS1_
  FUNC:_ZNKSt10filesystem7__cxx114path19lexically_proximateERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE
  FUNC:_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path5_List3endEv
  FUNC:_ZNKSt10filesystem7__cxx114path5_List3endEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path5_List5beginEv
  FUNC:_ZNKSt10filesystem7__cxx114path5_List5beginEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path7compareERKS1_
  FUNC:_ZNKSt10filesystem7__cxx114path7compareERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path7compareESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNKSt10filesystem7__cxx114path7compareESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path9root_nameEv
  FUNC:_ZNKSt10filesystem7__cxx114path9root_nameEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10filesystem7__cxx114path9root_pathEv
  FUNC:_ZNKSt10filesystem7__cxx114path9root_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt10istrstream5rdbufEv
  FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10lock_error4whatEv
  FUNC:_ZNKSt10lock_error4whatEv@@GLIBCXX_3.4.11
- FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv
  FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv
  FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv
  FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv
  FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv
  FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv
  FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv
  FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv
  FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv
  FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv
  FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv
  FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv
  FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv
  FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv
  FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv
  FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv
  FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv
  FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv
  FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv
  FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv
  FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv
  FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv
  FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv
  FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv
  FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv
  FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv
  FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv
  FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv
  FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv
  FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv
  FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv
  FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv
  FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv
  FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv
  FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv
  FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv
  FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv
  FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv
  FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv
  FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv
  FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv
  FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv
  FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv
  FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv
  FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv
  FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv
  FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv
  FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv
  FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv
  FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv
  FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv
  FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv
  FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv
  FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv
  FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv
  FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv
  FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10ostrstream5rdbufEv
  FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt10ostrstream6pcountEv
  FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc
  FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPPKc
  FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPPKc@@GLIBCXX_3.4.30
- FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc
  FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc
  FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc
  FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc
  FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc
  FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm
  FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc
  FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc
  FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc
  FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw
  FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPPKw
  FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPPKw@@GLIBCXX_3.4.30
- FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw
  FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw
  FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw
  FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw
  FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw
  FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm
  FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw
  FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw
  FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw
  FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt11logic_error4whatEv
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
! FUNC:_ZNKSt12__basic_fileIcE13native_handleEv
! FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.32
! FUNC:_ZNKSt12__basic_fileIcE7is_openEv
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt12bad_weak_ptr4whatEv
  FUNC:_ZNKSt12bad_weak_ptr4whatEv@@GLIBCXX_3.4.15
- FUNC:_ZNKSt12future_error4whatEv
  FUNC:_ZNKSt12future_error4whatEv@@GLIBCXX_3.4.14
- FUNC:_ZNKSt12strstreambuf6pcountEv
  FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCXX_3.4
- FUNC:_ZNKSt13bad_exception4whatEv
  FUNC:_ZNKSt13bad_exception4whatEv@@GLIBCXX_3.4.9
- FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv
  FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv
  FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv
  FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
- FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv
  FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
- FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv
  FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
- FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv
  FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
- FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv
  FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
- FUNC:_ZNKSt13random_device13_M_getentropyEv
  FUNC:_ZNKSt13random_device13_M_getentropyEv@@GLIBCXX_3.4.25
- FUNC:_ZNKSt13runtime_error4whatEv
  FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv
  FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
- FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv
  FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
- FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv
  FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
- FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv
  FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
- FUNC:_ZNKSt14error_category10equivalentERKSt10error_codei
  FUNC:_ZNKSt14error_category10equivalentERKSt10error_codei@@GLIBCXX_3.4.11
- FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
- FUNC:_ZNKSt14error_category23default_error_conditionEi
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
- FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
- FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
- FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt16bad_array_length4whatEv
  FUNC:_ZNKSt16bad_array_length4whatEv@@CXXABI_1.3.8
- FUNC:_ZNKSt17bad_function_call4whatEv
  FUNC:_ZNKSt17bad_function_call4whatEv@@GLIBCXX_3.4.18
- FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv
  FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv
  FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE11do_encodingEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE13do_max_lengthEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE16do_always_noconvEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDiE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE11do_encodingEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE13do_max_lengthEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE16do_always_noconvEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIDsE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE11do_encodingEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE13do_max_lengthEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE16do_always_noconvEv
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19__codecvt_utf8_baseIwE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv
  FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv
  FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv
  FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
- FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv
  FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE11do_encodingEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE13do_max_lengthEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE16do_always_noconvEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE11do_encodingEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE13do_max_lengthEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE16do_always_noconvEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE11do_encodingEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE13do_max_lengthEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE16do_always_noconvEv
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20__codecvt_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt20bad_array_new_length4whatEv
  FUNC:_ZNKSt20bad_array_new_length4whatEv@@CXXABI_1.3.8
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE11do_encodingEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE13do_max_lengthEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE16do_always_noconvEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE11do_encodingEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE13do_max_lengthEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE16do_always_noconvEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE11do_encodingEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE13do_max_lengthEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE16do_always_noconvEv
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3_V214error_category10_M_messageB5cxx11Ei
  FUNC:_ZNKSt3_V214error_category10_M_messageB5cxx11Ei@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3_V214error_category10_M_messageEi
  FUNC:_ZNKSt3_V214error_category10_M_messageEi@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3_V214error_category10equivalentERKSt10error_codei
  FUNC:_ZNKSt3_V214error_category10equivalentERKSt10error_codei@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3_V214error_category10equivalentEiRKSt15error_condition
  FUNC:_ZNKSt3_V214error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3_V214error_category23default_error_conditionEi
  FUNC:_ZNKSt3_V214error_category23default_error_conditionEi@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3tr14hashINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclES6_
  FUNC:_ZNKSt3tr14hashINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclES6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3tr14hashINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEclES6_
  FUNC:_ZNKSt3tr14hashINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEclES6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt3tr14hashIRKSbIwSt11char_traitsIwESaIwEEEclES6_
  FUNC:_ZNKSt3tr14hashIRKSbIwSt11char_traitsIwESaIwEEEclES6_@@GLIBCXX_3.4.10
- FUNC:_ZNKSt3tr14hashIRKSsEclES2_
  FUNC:_ZNKSt3tr14hashIRKSsEclES2_@@GLIBCXX_3.4.10
- FUNC:_ZNKSt3tr14hashISbIwSt11char_traitsIwESaIwEEEclES4_
  FUNC:_ZNKSt3tr14hashISbIwSt11char_traitsIwESaIwEEEclES4_@@GLIBCXX_3.4.10
- FUNC:_ZNKSt3tr14hashISsEclESs
  FUNC:_ZNKSt3tr14hashISsEclESs@@GLIBCXX_3.4.10
- FUNC:_ZNKSt3tr14hashIeEclEe
  FUNC:_ZNKSt3tr14hashIeEclEe@@GLIBCXX_3.4.10
- FUNC:_ZNKSt4hashIRKSbIwSt11char_traitsIwESaIwEEEclES5_
  FUNC:_ZNKSt4hashIRKSbIwSt11char_traitsIwESaIwEEEclES5_@@GLIBCXX_3.4.10
- FUNC:_ZNKSt4hashIRKSsEclES1_
  FUNC:_ZNKSt4hashIRKSsEclES1_@@GLIBCXX_3.4.10
- FUNC:_ZNKSt4hashISbIwSt11char_traitsIwESaIwEEEclES3_
  FUNC:_ZNKSt4hashISbIwSt11char_traitsIwESaIwEEEclES3_@@GLIBCXX_3.4.10
- FUNC:_ZNKSt4hashISsEclESs
  FUNC:_ZNKSt4hashISsEclESs@@GLIBCXX_3.4.10
- FUNC:_ZNKSt4hashISt10error_codeEclES0_
  FUNC:_ZNKSt4hashISt10error_codeEclES0_@@GLIBCXX_3.4.11
- FUNC:_ZNKSt4hashIeEclEe
  FUNC:_ZNKSt4hashIeEclEe@@GLIBCXX_3.4.10
- FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc
  FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE10do_tolowerEc
  FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc
  FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE10do_toupperEc
  FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE13_M_widen_initEv
  FUNC:_ZNKSt5ctypeIcE13_M_widen_initEv@@GLIBCXX_3.4.11
- FUNC:_ZNKSt5ctypeIcE14_M_narrow_initEv
  FUNC:_ZNKSt5ctypeIcE14_M_narrow_initEv@@GLIBCXX_3.4.11
- FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc
  FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE8do_widenEc
  FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc
  FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIcE9do_narrowEcc
  FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_
  FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw
  FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE10do_tolowerEw
  FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw
  FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE10do_toupperEw
  FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_
  FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt
  FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt
  FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE5do_isEtw
  FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw
  FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE8do_widenEc
  FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc
  FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4
- FUNC:_ZNKSt5ctypeIwE9do_narrowEwc
  FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4
- FUNC:_ZNKSt6chrono4tzdb11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNKSt6chrono4tzdb11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6chrono4tzdb12current_zoneEv
  FUNC:_ZNKSt6chrono4tzdb12current_zoneEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6chrono9time_zone15_M_get_sys_infoENS_10time_pointINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1EEEEEE
  FUNC:_ZNKSt6chrono9time_zone15_M_get_sys_infoENS_10time_pointINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1EEEEEE@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6chrono9time_zone17_M_get_local_infoENS_10time_pointINS_7local_tENS_8durationIxSt5ratioILx1ELx1EEEEEE
  FUNC:_ZNKSt6chrono9time_zone17_M_get_local_infoENS_10time_pointINS_7local_tENS_8durationIxSt5ratioILx1ELx1EEEEEE@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6chrono9tzdb_list14const_iteratordeEv
  FUNC:_ZNKSt6chrono9tzdb_list14const_iteratordeEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6chrono9tzdb_list5beginEv
  FUNC:_ZNKSt6chrono9tzdb_list5beginEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6chrono9tzdb_list5frontEv
  FUNC:_ZNKSt6chrono9tzdb_list5frontEv@@GLIBCXX_3.4.31
- FUNC:_ZNKSt6locale2id5_M_idEv
  FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCXX_3.4
- FUNC:_ZNKSt6locale4nameB5cxx11Ev
  FUNC:_ZNKSt6locale4nameB5cxx11Ev@@GLIBCXX_3.4.21
- FUNC:_ZNKSt6locale4nameEv
  FUNC:_ZNKSt6locale4nameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt6localeeqERKS_
  FUNC:_ZNKSt6localeeqERKS_@@GLIBCXX_3.4
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE10neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE10pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11do_groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13do_neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13do_pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE14do_curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE14do_frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE8groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE10neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE10pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11do_groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13do_neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13do_pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE14do_curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE14do_frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE8groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE10neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE10pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11do_groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13do_neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13do_pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE14do_curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE14do_frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE8groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE10neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE10pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11do_groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13do_neg_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13do_pos_formatEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE14do_curr_symbolEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE14do_frac_digitsEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_decimal_pointEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_negative_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_positive_signEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_thousands_sepEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13get_allocatorEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEjjPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEjjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4cendEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4cendEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4copyEPcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4copyEPcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5crendEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5crendEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6cbeginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6cbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKcj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_jj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7crbeginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7crbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_checkEjPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_checkEjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13get_allocatorEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4cendEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4cendEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4copyEPwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4sizeEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5c_strEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5crendEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5crendEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindERKS4_j
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindERKS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6cbeginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6cbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6lengthEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6substrEjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEPKw
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareERKS4_
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKw
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKwj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_jj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7crbeginEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7crbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_checkEjPKc
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4viewEv
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE13get_allocatorEv
  FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4viewEv
  FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4viewEv
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4viewEv
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4viewEv
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4viewEv
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4viewEv
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4viewEv
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
- FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE10_M_compareEPKcS3_
  FUNC:_ZNKSt7__cxx117collateIcE10_M_compareEPKcS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE10do_compareEPKcS3_S3_S3_
  FUNC:_ZNKSt7__cxx117collateIcE10do_compareEPKcS3_S3_S3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE12_M_transformEPcPKcj
  FUNC:_ZNKSt7__cxx117collateIcE12_M_transformEPcPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE12do_transformEPKcS3_
  FUNC:_ZNKSt7__cxx117collateIcE12do_transformEPKcS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE4hashEPKcS3_
  FUNC:_ZNKSt7__cxx117collateIcE4hashEPKcS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE7compareEPKcS3_S3_S3_
  FUNC:_ZNKSt7__cxx117collateIcE7compareEPKcS3_S3_S3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE7do_hashEPKcS3_
  FUNC:_ZNKSt7__cxx117collateIcE7do_hashEPKcS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIcE9transformEPKcS3_
  FUNC:_ZNKSt7__cxx117collateIcE9transformEPKcS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE10_M_compareEPKwS3_
  FUNC:_ZNKSt7__cxx117collateIwE10_M_compareEPKwS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE10do_compareEPKwS3_S3_S3_
  FUNC:_ZNKSt7__cxx117collateIwE10do_compareEPKwS3_S3_S3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE12_M_transformEPwPKwj
  FUNC:_ZNKSt7__cxx117collateIwE12_M_transformEPwPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE12do_transformEPKwS3_
  FUNC:_ZNKSt7__cxx117collateIwE12do_transformEPKwS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE4hashEPKwS3_
  FUNC:_ZNKSt7__cxx117collateIwE4hashEPKwS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE7compareEPKwS3_S3_S3_
  FUNC:_ZNKSt7__cxx117collateIwE7compareEPKwS3_S3_S3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE7do_hashEPKwS3_
  FUNC:_ZNKSt7__cxx117collateIwE7do_hashEPKwS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx117collateIwE9transformEPKwS3_
  FUNC:_ZNKSt7__cxx117collateIwE9transformEPKwS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE18_M_convert_to_charERKNS_12basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNKSt7__cxx118messagesIcE18_M_convert_to_charERKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE20_M_convert_from_charEPc
  FUNC:_ZNKSt7__cxx118messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE3getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNKSt7__cxx118messagesIcE3getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale
  FUNC:_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc
  FUNC:_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE5closeEi
  FUNC:_ZNKSt7__cxx118messagesIcE5closeEi@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE6do_getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNKSt7__cxx118messagesIcE6do_getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale
  FUNC:_ZNKSt7__cxx118messagesIcE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIcE8do_closeEi
  FUNC:_ZNKSt7__cxx118messagesIcE8do_closeEi@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE18_M_convert_to_charERKNS_12basic_stringIwSt11char_traitsIwESaIwEEE
  FUNC:_ZNKSt7__cxx118messagesIwE18_M_convert_to_charERKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE20_M_convert_from_charEPc
  FUNC:_ZNKSt7__cxx118messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE3getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE
  FUNC:_ZNKSt7__cxx118messagesIwE3getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale
  FUNC:_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc
  FUNC:_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE5closeEi
  FUNC:_ZNKSt7__cxx118messagesIwE5closeEi@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE6do_getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE
  FUNC:_ZNKSt7__cxx118messagesIwE6do_getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale
  FUNC:_ZNKSt7__cxx118messagesIwE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118messagesIwE8do_closeEi
  FUNC:_ZNKSt7__cxx118messagesIwE8do_closeEi@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE11do_groupingEv
  FUNC:_ZNKSt7__cxx118numpunctIcE11do_groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE11do_truenameEv
  FUNC:_ZNKSt7__cxx118numpunctIcE11do_truenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE12do_falsenameEv
  FUNC:_ZNKSt7__cxx118numpunctIcE12do_falsenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE13decimal_pointEv
  FUNC:_ZNKSt7__cxx118numpunctIcE13decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE13thousands_sepEv
  FUNC:_ZNKSt7__cxx118numpunctIcE13thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE16do_decimal_pointEv
  FUNC:_ZNKSt7__cxx118numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE16do_thousands_sepEv
  FUNC:_ZNKSt7__cxx118numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE8groupingEv
  FUNC:_ZNKSt7__cxx118numpunctIcE8groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE8truenameEv
  FUNC:_ZNKSt7__cxx118numpunctIcE8truenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIcE9falsenameEv
  FUNC:_ZNKSt7__cxx118numpunctIcE9falsenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE11do_groupingEv
  FUNC:_ZNKSt7__cxx118numpunctIwE11do_groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE11do_truenameEv
  FUNC:_ZNKSt7__cxx118numpunctIwE11do_truenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE12do_falsenameEv
  FUNC:_ZNKSt7__cxx118numpunctIwE12do_falsenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE13decimal_pointEv
  FUNC:_ZNKSt7__cxx118numpunctIwE13decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE13thousands_sepEv
  FUNC:_ZNKSt7__cxx118numpunctIwE13thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE16do_decimal_pointEv
  FUNC:_ZNKSt7__cxx118numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE16do_thousands_sepEv
  FUNC:_ZNKSt7__cxx118numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE8groupingEv
  FUNC:_ZNKSt7__cxx118numpunctIwE8groupingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE8truenameEv
  FUNC:_ZNKSt7__cxx118numpunctIwE8truenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118numpunctIwE9falsenameEv
  FUNC:_ZNKSt7__cxx118numpunctIwE9falsenameEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKc
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state@@GLIBCXX_3.4.30
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSD_
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSD_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKw
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state@@GLIBCXX_3.4.30
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSD_
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSD_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basece
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basece@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basece
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basece@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewe
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewe@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewe
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewe@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE10do_unshiftERS0_PDuS3_RS3_
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE10do_unshiftERS0_PDuS3_RS3_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE11do_encodingEv
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE13do_max_lengthEv
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE16do_always_noconvEv
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE5do_inERS0_PKDuS4_RS4_PDiS6_RS6_
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE5do_inERS0_PKDuS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE6do_outERS0_PKDiS4_RS4_PDuS6_RS6_
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE6do_outERS0_PKDiS4_RS4_PDuS6_RS6_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE9do_lengthERS0_PKDuS4_j
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE9do_lengthERS0_PKDuS4_j@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE10do_unshiftERS0_PcS3_RS3_
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE11do_encodingEv
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE13do_max_lengthEv
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE16do_always_noconvEv
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE5do_inERS0_PKcS4_RS4_PDiS6_RS6_
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE5do_inERS0_PKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE6do_outERS0_PKDiS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE6do_outERS0_PKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDic11__mbstate_tE9do_lengthERS0_PKcS4_j
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE10do_unshiftERS0_PDuS3_RS3_
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE10do_unshiftERS0_PDuS3_RS3_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE11do_encodingEv
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE13do_max_lengthEv
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE16do_always_noconvEv
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE5do_inERS0_PKDuS4_RS4_PDsS6_RS6_
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE5do_inERS0_PKDuS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE6do_outERS0_PKDsS4_RS4_PDuS6_RS6_
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE6do_outERS0_PKDsS4_RS4_PDuS6_RS6_@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE9do_lengthERS0_PKDuS4_j
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE9do_lengthERS0_PKDuS4_j@@GLIBCXX_3.4.26
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE11do_encodingEv
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE13do_max_lengthEv
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE16do_always_noconvEv
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE5do_inERS0_PKcS4_RS4_PDsS6_RS6_
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE5do_inERS0_PKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE6do_outERS0_PKDsS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE6do_outERS0_PKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE9do_lengthERS0_PKcS4_j
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4.21
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
- FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_
  FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_
  FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj
  FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_
  FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE4hashEPKcS2_
  FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_
  FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_
  FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIcE9transformEPKcS2_
  FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_
  FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_
  FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj
  FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_
  FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE4hashEPKwS2_
  FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_
  FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_
  FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7collateIwE9transformEPKwS2_
  FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
- FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
- FUNC:_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEj
  FUNC:_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEj@@GLIBCXX_3.4.18
- FUNC:_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEjjj
  FUNC:_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEjjj@@GLIBCXX_3.4.18
- FUNC:_ZNKSt8bad_cast4whatEv
  FUNC:_ZNKSt8bad_cast4whatEv@@GLIBCXX_3.4.9
- FUNC:_ZNKSt8ios_base7failure4whatEv
  FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8ios_base7failureB5cxx114whatEv
  FUNC:_ZNKSt8ios_base7failureB5cxx114whatEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs
  FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc
  FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE3getEiiiRKSs
  FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale
  FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc
  FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE5closeEi
  FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs
  FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale
  FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIcE8do_closeEi
  FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE
  FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc
  FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE
  FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale
  FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc
  FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE5closeEi
  FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE
  FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale
  FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNKSt8messagesIwE8do_closeEi
  FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE11do_groupingEv
  FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE11do_truenameEv
  FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE12do_falsenameEv
  FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE13decimal_pointEv
  FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE13thousands_sepEv
  FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv
  FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv
  FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE8groupingEv
  FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE8truenameEv
  FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIcE9falsenameEv
  FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE11do_groupingEv
  FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE11do_truenameEv
  FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE12do_falsenameEv
  FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE13decimal_pointEv
  FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE13thousands_sepEv
  FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv
  FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv
  FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE8groupingEv
  FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE8truenameEv
  FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8numpunctIwE9falsenameEv
  FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state@@GLIBCXX_3.4.30
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.14
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSC_
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSC_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.26
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state@@GLIBCXX_3.4.30
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.14
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSC_
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSC_@@GLIBCXX_3.4.21
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.26
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_
  FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc
  FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc
  FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_
  FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc
  FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
- FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc
  FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
- FUNC:_ZNKSt8valarrayIjE4sizeEv
  FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9bad_alloc4whatEv
  FUNC:_ZNKSt9bad_alloc4whatEv@@GLIBCXX_3.4.9
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvbEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvbEv@@GLIBCXX_3.4.21
- FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9exception4whatEv
  FUNC:_ZNKSt9exception4whatEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
- FUNC:_ZNKSt9strstream5rdbufEv
  FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9strstream6pcountEv
  FUNC:_ZNKSt9strstream6pcountEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj
  FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCXX_3.4
- FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv
  FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCXX_3.4
- FUNC:_ZNKSt9type_info14__is_pointer_pEv
  FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCXX_3.4
- FUNC:_ZNKSt9type_info15__is_function_pEv
  FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCXX_3.4
- FUNC:_ZNOSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNOSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNOSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNOSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNOSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNOSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNOSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv
  FUNC:_ZNOSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNOSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv
  FUNC:_ZNOSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
- FUNC:_ZNSaIcEC1ERKS_
  FUNC:_ZNSaIcEC1ERKS_@@GLIBCXX_3.4
- FUNC:_ZNSaIcEC1Ev
  FUNC:_ZNSaIcEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIcEC2ERKS_
  FUNC:_ZNSaIcEC2ERKS_@@GLIBCXX_3.4
- FUNC:_ZNSaIcEC2Ev
  FUNC:_ZNSaIcEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIcED1Ev
  FUNC:_ZNSaIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIcED2Ev
  FUNC:_ZNSaIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIwEC1ERKS_
  FUNC:_ZNSaIwEC1ERKS_@@GLIBCXX_3.4
- FUNC:_ZNSaIwEC1Ev
  FUNC:_ZNSaIwEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIwEC2ERKS_
  FUNC:_ZNSaIwEC2ERKS_@@GLIBCXX_3.4
- FUNC:_ZNSaIwEC2Ev
  FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIwED1Ev
  FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSaIwED2Ev
  FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.16
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIN9__gnu_cxx17__normal_iteratorIPwS2_EEEES6_T_S8_RKS1_St20forward_iterator_tag
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIN9__gnu_cxx17__normal_iteratorIPwS2_EEEES6_T_S8_RKS1_St20forward_iterator_tag@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPKwEEPwT_S7_RKS1_St20forward_iterator_tag
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPKwEEPwT_S7_RKS1_St20forward_iterator_tag@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS0_E
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS0_E
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13shrink_to_fitEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS0_E
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EjwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EjwRKS1_@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4backEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.15
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4dataEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5frontEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.15
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEOS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEOS2_@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EESt16initializer_listIwE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EESt16initializer_listIwE@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_St16initializer_listIwE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_St16initializer_listIwE@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEv@@GLIBCXX_3.4.29
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.17
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ENS2_12__sv_wrapperERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ENS2_12__sv_wrapperERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_RKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_RKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ENS2_12__sv_wrapperERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ENS2_12__sv_wrapperERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_RKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_RKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEOS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEOS2_@@GLIBCXX_3.4.14
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE@@GLIBCXX_3.4.11
- FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4
- FUNC:_ZNSd4swapERSd
  FUNC:_ZNSd4swapERSd@@GLIBCXX_3.4.21
- FUNC:_ZNSdC1EOSd
  FUNC:_ZNSdC1EOSd@@GLIBCXX_3.4.21
- FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSdC1Ev
  FUNC:_ZNSdC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSdC2EOSd
  FUNC:_ZNSdC2EOSd@@GLIBCXX_3.4.21
- FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSdC2Ev
  FUNC:_ZNSdC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSdD0Ev
  FUNC:_ZNSdD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSdD1Ev
  FUNC:_ZNSdD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSdD2Ev
  FUNC:_ZNSdD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSdaSEOSd
  FUNC:_ZNSdaSEOSd@@GLIBCXX_3.4.21
- FUNC:_ZNSi10_M_extractIPvEERSiRT_
  FUNC:_ZNSi10_M_extractIPvEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIbEERSiRT_
  FUNC:_ZNSi10_M_extractIbEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIdEERSiRT_
  FUNC:_ZNSi10_M_extractIdEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIeEERSiRT_
  FUNC:_ZNSi10_M_extractIeEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIfEERSiRT_
  FUNC:_ZNSi10_M_extractIfEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIjEERSiRT_
  FUNC:_ZNSi10_M_extractIjEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIlEERSiRT_
  FUNC:_ZNSi10_M_extractIlEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractImEERSiRT_
  FUNC:_ZNSi10_M_extractImEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractItEERSiRT_
  FUNC:_ZNSi10_M_extractItEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIxEERSiRT_
  FUNC:_ZNSi10_M_extractIxEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi10_M_extractIyEERSiRT_
  FUNC:_ZNSi10_M_extractIyEERSiRT_@@GLIBCXX_3.4.9
- FUNC:_ZNSi3getEPci
  FUNC:_ZNSi3getEPci@@GLIBCXX_3.4
- FUNC:_ZNSi3getEPcic
  FUNC:_ZNSi3getEPcic@@GLIBCXX_3.4
- FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc
  FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCXX_3.4
- FUNC:_ZNSi3getERc
  FUNC:_ZNSi3getERc@@GLIBCXX_3.4
- FUNC:_ZNSi3getEv
  FUNC:_ZNSi3getEv@@GLIBCXX_3.4
- FUNC:_ZNSi4peekEv
  FUNC:_ZNSi4peekEv@@GLIBCXX_3.4
- FUNC:_ZNSi4readEPci
  FUNC:_ZNSi4readEPci@@GLIBCXX_3.4
- FUNC:_ZNSi4swapERSi
  FUNC:_ZNSi4swapERSi@@GLIBCXX_3.4.21
- FUNC:_ZNSi4syncEv
  FUNC:_ZNSi4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE
  FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
- FUNC:_ZNSi5seekgExSt12_Ios_Seekdir
  FUNC:_ZNSi5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
- FUNC:_ZNSi5tellgEv
  FUNC:_ZNSi5tellgEv@@GLIBCXX_3.4
- FUNC:_ZNSi5ungetEv
  FUNC:_ZNSi5ungetEv@@GLIBCXX_3.4
  FUNC:_ZNSi6ignoreEi@@GLIBCXX_3.4.5
  FUNC:_ZNSi6ignoreEi@GLIBCXX_3.4
- FUNC:_ZNSi6ignoreEii
  FUNC:_ZNSi6ignoreEii@@GLIBCXX_3.4
  FUNC:_ZNSi6ignoreEv@@GLIBCXX_3.4.5
  FUNC:_ZNSi6ignoreEv@GLIBCXX_3.4
- FUNC:_ZNSi6sentryC1ERSib
  FUNC:_ZNSi6sentryC1ERSib@@GLIBCXX_3.4
- FUNC:_ZNSi6sentryC2ERSib
  FUNC:_ZNSi6sentryC2ERSib@@GLIBCXX_3.4
- FUNC:_ZNSi7getlineEPci
  FUNC:_ZNSi7getlineEPci@@GLIBCXX_3.4
- FUNC:_ZNSi7getlineEPcic
  FUNC:_ZNSi7getlineEPcic@@GLIBCXX_3.4
- FUNC:_ZNSi7putbackEc
  FUNC:_ZNSi7putbackEc@@GLIBCXX_3.4
- FUNC:_ZNSi8readsomeEPci
  FUNC:_ZNSi8readsomeEPci@@GLIBCXX_3.4
- FUNC:_ZNSiC1EOSi
  FUNC:_ZNSiC1EOSi@@GLIBCXX_3.4.21
- FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSiC1Ev
  FUNC:_ZNSiC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSiC2EOSi
  FUNC:_ZNSiC2EOSi@@GLIBCXX_3.4.21
- FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSiC2Ev
  FUNC:_ZNSiC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSiD0Ev
  FUNC:_ZNSiD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSiD1Ev
  FUNC:_ZNSiD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSiD2Ev
  FUNC:_ZNSiD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSiaSEOSi
  FUNC:_ZNSiaSEOSi@@GLIBCXX_3.4.21
- FUNC:_ZNSirsEPFRSiS_E
  FUNC:_ZNSirsEPFRSiS_E@@GLIBCXX_3.4
- FUNC:_ZNSirsEPFRSt8ios_baseS0_E
  FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
- FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E
  FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
- FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSirsERPv
  FUNC:_ZNSirsERPv@@GLIBCXX_3.4
- FUNC:_ZNSirsERb
  FUNC:_ZNSirsERb@@GLIBCXX_3.4
- FUNC:_ZNSirsERd
  FUNC:_ZNSirsERd@@GLIBCXX_3.4
- FUNC:_ZNSirsERe
  FUNC:_ZNSirsERe@@GLIBCXX_3.4
- FUNC:_ZNSirsERf
  FUNC:_ZNSirsERf@@GLIBCXX_3.4
- FUNC:_ZNSirsERi
  FUNC:_ZNSirsERi@@GLIBCXX_3.4
- FUNC:_ZNSirsERj
  FUNC:_ZNSirsERj@@GLIBCXX_3.4
- FUNC:_ZNSirsERl
  FUNC:_ZNSirsERl@@GLIBCXX_3.4
- FUNC:_ZNSirsERm
  FUNC:_ZNSirsERm@@GLIBCXX_3.4
- FUNC:_ZNSirsERs
  FUNC:_ZNSirsERs@@GLIBCXX_3.4
- FUNC:_ZNSirsERt
  FUNC:_ZNSirsERt@@GLIBCXX_3.4
- FUNC:_ZNSirsERx
  FUNC:_ZNSirsERx@@GLIBCXX_3.4
- FUNC:_ZNSirsERy
  FUNC:_ZNSirsERy@@GLIBCXX_3.4
- FUNC:_ZNSo3putEc
  FUNC:_ZNSo3putEc@@GLIBCXX_3.4
- FUNC:_ZNSo4swapERSo
  FUNC:_ZNSo4swapERSo@@GLIBCXX_3.4.21
- FUNC:_ZNSo5flushEv
  FUNC:_ZNSo5flushEv@@GLIBCXX_3.4
- FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE
  FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
- FUNC:_ZNSo5seekpExSt12_Ios_Seekdir
  FUNC:_ZNSo5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
- FUNC:_ZNSo5tellpEv
  FUNC:_ZNSo5tellpEv@@GLIBCXX_3.4
- FUNC:_ZNSo5writeEPKci
  FUNC:_ZNSo5writeEPKci@@GLIBCXX_3.4
- FUNC:_ZNSo6sentryC1ERSo
  FUNC:_ZNSo6sentryC1ERSo@@GLIBCXX_3.4
- FUNC:_ZNSo6sentryC2ERSo
  FUNC:_ZNSo6sentryC2ERSo@@GLIBCXX_3.4
- FUNC:_ZNSo6sentryD1Ev
  FUNC:_ZNSo6sentryD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSo6sentryD2Ev
  FUNC:_ZNSo6sentryD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSo8_M_writeEPKci
  FUNC:_ZNSo8_M_writeEPKci@@GLIBCXX_3.4
- FUNC:_ZNSo9_M_insertIPKvEERSoT_
  FUNC:_ZNSo9_M_insertIPKvEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertIbEERSoT_
  FUNC:_ZNSo9_M_insertIbEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertIdEERSoT_
  FUNC:_ZNSo9_M_insertIdEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertIeEERSoT_
  FUNC:_ZNSo9_M_insertIeEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertIlEERSoT_
  FUNC:_ZNSo9_M_insertIlEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertImEERSoT_
  FUNC:_ZNSo9_M_insertImEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertIxEERSoT_
  FUNC:_ZNSo9_M_insertIxEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSo9_M_insertIyEERSoT_
  FUNC:_ZNSo9_M_insertIyEERSoT_@@GLIBCXX_3.4.9
- FUNC:_ZNSoC1EOSo
  FUNC:_ZNSoC1EOSo@@GLIBCXX_3.4.21
- FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSoC1ERSd
  FUNC:_ZNSoC1ERSd@@GLIBCXX_3.4.21
- FUNC:_ZNSoC1Ev
  FUNC:_ZNSoC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSoC2EOSo
  FUNC:_ZNSoC2EOSo@@GLIBCXX_3.4.21
- FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSoC2ERSd
  FUNC:_ZNSoC2ERSd@@GLIBCXX_3.4.21
- FUNC:_ZNSoC2Ev
  FUNC:_ZNSoC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSoD0Ev
  FUNC:_ZNSoD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSoD1Ev
  FUNC:_ZNSoD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSoD2Ev
  FUNC:_ZNSoD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSoaSEOSo
  FUNC:_ZNSoaSEOSo@@GLIBCXX_3.4.21
- FUNC:_ZNSolsEDn
  FUNC:_ZNSolsEDn@@GLIBCXX_3.4.26
- FUNC:_ZNSolsEPFRSoS_E
  FUNC:_ZNSolsEPFRSoS_E@@GLIBCXX_3.4
- FUNC:_ZNSolsEPFRSt8ios_baseS0_E
  FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
- FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E
  FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
- FUNC:_ZNSolsEPKv
  FUNC:_ZNSolsEPKv@@GLIBCXX_3.4
- FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE
  FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- FUNC:_ZNSolsEb
  FUNC:_ZNSolsEb@@GLIBCXX_3.4
- FUNC:_ZNSolsEd
  FUNC:_ZNSolsEd@@GLIBCXX_3.4
- FUNC:_ZNSolsEe
  FUNC:_ZNSolsEe@@GLIBCXX_3.4
- FUNC:_ZNSolsEf
  FUNC:_ZNSolsEf@@GLIBCXX_3.4
- FUNC:_ZNSolsEi
  FUNC:_ZNSolsEi@@GLIBCXX_3.4
- FUNC:_ZNSolsEj
  FUNC:_ZNSolsEj@@GLIBCXX_3.4
- FUNC:_ZNSolsEl
  FUNC:_ZNSolsEl@@GLIBCXX_3.4
- FUNC:_ZNSolsEm
  FUNC:_ZNSolsEm@@GLIBCXX_3.4
- FUNC:_ZNSolsEs
  FUNC:_ZNSolsEs@@GLIBCXX_3.4
- FUNC:_ZNSolsEt
  FUNC:_ZNSolsEt@@GLIBCXX_3.4
- FUNC:_ZNSolsEx
  FUNC:_ZNSolsEx@@GLIBCXX_3.4
- FUNC:_ZNSolsEy
  FUNC:_ZNSolsEy@@GLIBCXX_3.4
- FUNC:_ZNSs10_S_compareEjj
  FUNC:_ZNSs10_S_compareEjj@@GLIBCXX_3.4.16
- FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE
  FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE
  FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSs12_M_leak_hardEv
  FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
- FUNC:_ZNSs12_S_constructEjcRKSaIcE
  FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag
  FUNC:_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag@@GLIBCXX_3.4.14
- FUNC:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag
  FUNC:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag@@GLIBCXX_3.4.14
- FUNC:_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag
  FUNC:_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag@@GLIBCXX_3.4.14
- FUNC:_ZNSs12_S_empty_repEv
  FUNC:_ZNSs12_S_empty_repEv@@GLIBCXX_3.4
- FUNC:_ZNSs12__sv_wrapperC1ESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSs12__sv_wrapperC1ESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSs12__sv_wrapperC2ESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSs12__sv_wrapperC2ESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_
  FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCXX_3.4
- FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_
  FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCXX_3.4
- FUNC:_ZNSs13_S_copy_charsEPcPKcS1_
  FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCXX_3.4
- FUNC:_ZNSs13_S_copy_charsEPcS_S_
  FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCXX_3.4
- FUNC:_ZNSs13shrink_to_fitEv
  FUNC:_ZNSs13shrink_to_fitEv@@GLIBCXX_3.4.14
- FUNC:_ZNSs14_M_replace_auxEjjjc
  FUNC:_ZNSs14_M_replace_auxEjjjc@@GLIBCXX_3.4
- FUNC:_ZNSs15_M_replace_safeEjjPKcj
  FUNC:_ZNSs15_M_replace_safeEjjPKcj@@GLIBCXX_3.4
- FUNC:_ZNSs17_S_to_string_viewESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSs17_S_to_string_viewESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSs18_S_construct_aux_2EjcRKSaIcE
  FUNC:_ZNSs18_S_construct_aux_2EjcRKSaIcE@@GLIBCXX_3.4.14
- FUNC:_ZNSs2atEj
  FUNC:_ZNSs2atEj@@GLIBCXX_3.4
- FUNC:_ZNSs3endEv
  FUNC:_ZNSs3endEv@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE
  FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE
  FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep10_M_refcopyEv
  FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep10_M_refdataEv
  FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep12_S_empty_repEv
  FUNC:_ZNSs4_Rep12_S_empty_repEv@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep13_M_set_leakedEv
  FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep15_M_set_sharableEv
  FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep26_M_set_length_and_sharableEj@@GLIBCXX_3.4.5
  FUNC:_ZNSs4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_
  FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj
  FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCXX_3.4
- FUNC:_ZNSs4_Rep9_S_createEjjRKSaIcE
  FUNC:_ZNSs4_Rep9_S_createEjjRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSs4backEv
  FUNC:_ZNSs4backEv@@GLIBCXX_3.4.15
- FUNC:_ZNSs4dataEv
  FUNC:_ZNSs4dataEv@@GLIBCXX_3.4.26
- FUNC:_ZNSs4rendEv
  FUNC:_ZNSs4rendEv@@GLIBCXX_3.4
- FUNC:_ZNSs4swapERSs
  FUNC:_ZNSs4swapERSs@@GLIBCXX_3.4
- FUNC:_ZNSs5beginEv
  FUNC:_ZNSs5beginEv@@GLIBCXX_3.4
- FUNC:_ZNSs5clearEv
  FUNC:_ZNSs5clearEv@@GLIBCXX_3.4
- FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE
  FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCXX_3.4
- FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_
  FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCXX_3.4
- FUNC:_ZNSs5eraseEjj
  FUNC:_ZNSs5eraseEjj@@GLIBCXX_3.4
- FUNC:_ZNSs5frontEv
  FUNC:_ZNSs5frontEv@@GLIBCXX_3.4.15
- FUNC:_ZNSs6appendEPKc
  FUNC:_ZNSs6appendEPKc@@GLIBCXX_3.4
- FUNC:_ZNSs6appendEPKcj
  FUNC:_ZNSs6appendEPKcj@@GLIBCXX_3.4
- FUNC:_ZNSs6appendERKSs
  FUNC:_ZNSs6appendERKSs@@GLIBCXX_3.4
- FUNC:_ZNSs6appendERKSsjj
  FUNC:_ZNSs6appendERKSsjj@@GLIBCXX_3.4
- FUNC:_ZNSs6appendESt16initializer_listIcE
  FUNC:_ZNSs6appendESt16initializer_listIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSs6appendEjc
  FUNC:_ZNSs6appendEjc@@GLIBCXX_3.4
- FUNC:_ZNSs6assignEOSs
  FUNC:_ZNSs6assignEOSs@@GLIBCXX_3.4.14
- FUNC:_ZNSs6assignEPKc
  FUNC:_ZNSs6assignEPKc@@GLIBCXX_3.4
- FUNC:_ZNSs6assignEPKcj
  FUNC:_ZNSs6assignEPKcj@@GLIBCXX_3.4
- FUNC:_ZNSs6assignERKSs
  FUNC:_ZNSs6assignERKSs@@GLIBCXX_3.4
- FUNC:_ZNSs6assignERKSsjj
  FUNC:_ZNSs6assignERKSsjj@@GLIBCXX_3.4
- FUNC:_ZNSs6assignESt16initializer_listIcE
  FUNC:_ZNSs6assignESt16initializer_listIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSs6assignEjc
  FUNC:_ZNSs6assignEjc@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEESt16initializer_listIcE
  FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEESt16initializer_listIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc
  FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc
  FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEjPKc
  FUNC:_ZNSs6insertEjPKc@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEjPKcj
  FUNC:_ZNSs6insertEjPKcj@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEjRKSs
  FUNC:_ZNSs6insertEjRKSs@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEjRKSsjj
  FUNC:_ZNSs6insertEjRKSsjj@@GLIBCXX_3.4
- FUNC:_ZNSs6insertEjjc
  FUNC:_ZNSs6insertEjjc@@GLIBCXX_3.4
- FUNC:_ZNSs6rbeginEv
  FUNC:_ZNSs6rbeginEv@@GLIBCXX_3.4
- FUNC:_ZNSs6resizeEj
  FUNC:_ZNSs6resizeEj@@GLIBCXX_3.4
- FUNC:_ZNSs6resizeEjc
  FUNC:_ZNSs6resizeEjc@@GLIBCXX_3.4
  FUNC:_ZNSs7_M_copyEPcPKcj@@GLIBCXX_3.4.5
  FUNC:_ZNSs7_M_copyEPcPKcj@GLIBCXX_3.4
- FUNC:_ZNSs7_M_dataEPc
  FUNC:_ZNSs7_M_dataEPc@@GLIBCXX_3.4
- FUNC:_ZNSs7_M_leakEv
  FUNC:_ZNSs7_M_leakEv@@GLIBCXX_3.4
  FUNC:_ZNSs7_M_moveEPcPKcj@@GLIBCXX_3.4.5
  FUNC:_ZNSs7_M_moveEPcPKcj@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_St16initializer_listIcE
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_St16initializer_listIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEjjPKc
  FUNC:_ZNSs7replaceEjjPKc@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEjjPKcj
  FUNC:_ZNSs7replaceEjjPKcj@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEjjRKSs
  FUNC:_ZNSs7replaceEjjRKSs@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEjjRKSsjj
  FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4
- FUNC:_ZNSs7replaceEjjjc
  FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4
- FUNC:_ZNSs7reserveEj
  FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4
- FUNC:_ZNSs7reserveEv
  FUNC:_ZNSs7reserveEv@@GLIBCXX_3.4.29
- FUNC:_ZNSs8pop_backEv
  FUNC:_ZNSs8pop_backEv@@GLIBCXX_3.4.17
  FUNC:_ZNSs9_M_assignEPcjc@@GLIBCXX_3.4.5
  FUNC:_ZNSs9_M_assignEPcjc@GLIBCXX_3.4
- FUNC:_ZNSs9_M_mutateEjjj
  FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4
- FUNC:_ZNSs9push_backEc
  FUNC:_ZNSs9push_backEc@@GLIBCXX_3.4
- FUNC:_ZNSsC1ENSs12__sv_wrapperERKSaIcE
  FUNC:_ZNSsC1ENSs12__sv_wrapperERKSaIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSsC1EOSs
  FUNC:_ZNSsC1EOSs@@GLIBCXX_3.4.14
- FUNC:_ZNSsC1EOSsRKSaIcE
  FUNC:_ZNSsC1EOSsRKSaIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSsC1EPKcRKSaIcE
  FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1EPKcjRKSaIcE
  FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1ERKSaIcE
  FUNC:_ZNSsC1ERKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1ERKSs
  FUNC:_ZNSsC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSsC1ERKSsRKSaIcE
  FUNC:_ZNSsC1ERKSsRKSaIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSsC1ERKSsjRKSaIcE
  FUNC:_ZNSsC1ERKSsjRKSaIcE@@GLIBCXX_3.4.23
- FUNC:_ZNSsC1ERKSsjj
  FUNC:_ZNSsC1ERKSsjj@@GLIBCXX_3.4
- FUNC:_ZNSsC1ERKSsjjRKSaIcE
  FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSsC1EjcRKSaIcE
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1Ev
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC1IPcEET_S1_RKSaIcE
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2ENSs12__sv_wrapperERKSaIcE
  FUNC:_ZNSsC2ENSs12__sv_wrapperERKSaIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSsC2EOSs
  FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
- FUNC:_ZNSsC2EOSsRKSaIcE
  FUNC:_ZNSsC2EOSsRKSaIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSsC2EPKcRKSaIcE
  FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2EPKcjRKSaIcE
  FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2ERKSaIcE
  FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2ERKSs
  FUNC:_ZNSsC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSsC2ERKSsRKSaIcE
  FUNC:_ZNSsC2ERKSsRKSaIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSsC2ERKSsjRKSaIcE
  FUNC:_ZNSsC2ERKSsjRKSaIcE@@GLIBCXX_3.4.23
- FUNC:_ZNSsC2ERKSsjj
  FUNC:_ZNSsC2ERKSsjj@@GLIBCXX_3.4
- FUNC:_ZNSsC2ERKSsjjRKSaIcE
  FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSsC2EjcRKSaIcE
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2Ev
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsC2IPcEET_S1_RKSaIcE
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
- FUNC:_ZNSsD1Ev
  FUNC:_ZNSsD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSsD2Ev
  FUNC:_ZNSsD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSsaSEOSs
  FUNC:_ZNSsaSEOSs@@GLIBCXX_3.4.14
- FUNC:_ZNSsaSEPKc
  FUNC:_ZNSsaSEPKc@@GLIBCXX_3.4
- FUNC:_ZNSsaSERKSs
  FUNC:_ZNSsaSERKSs@@GLIBCXX_3.4
- FUNC:_ZNSsaSESt16initializer_listIcE
  FUNC:_ZNSsaSESt16initializer_listIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSsaSEc
  FUNC:_ZNSsaSEc@@GLIBCXX_3.4
- FUNC:_ZNSsixEj
  FUNC:_ZNSsixEj@@GLIBCXX_3.4
- FUNC:_ZNSspLEPKc
  FUNC:_ZNSspLEPKc@@GLIBCXX_3.4
- FUNC:_ZNSspLERKSs
  FUNC:_ZNSspLERKSs@@GLIBCXX_3.4
- FUNC:_ZNSspLESt16initializer_listIcE
  FUNC:_ZNSspLESt16initializer_listIcE@@GLIBCXX_3.4.11
- FUNC:_ZNSspLEc
  FUNC:_ZNSspLEc@@GLIBCXX_3.4
- FUNC:_ZNSt10_Sp_lockerC1EPKv
  FUNC:_ZNSt10_Sp_lockerC1EPKv@@GLIBCXX_3.4.21
- FUNC:_ZNSt10_Sp_lockerC1EPKvS1_
  FUNC:_ZNSt10_Sp_lockerC1EPKvS1_@@GLIBCXX_3.4.21
- FUNC:_ZNSt10_Sp_lockerC2EPKv
  FUNC:_ZNSt10_Sp_lockerC2EPKv@@GLIBCXX_3.4.21
- FUNC:_ZNSt10_Sp_lockerC2EPKvS1_
  FUNC:_ZNSt10_Sp_lockerC2EPKvS1_@@GLIBCXX_3.4.21
- FUNC:_ZNSt10_Sp_lockerD1Ev
  FUNC:_ZNSt10_Sp_lockerD1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt10_Sp_lockerD2Ev
  FUNC:_ZNSt10_Sp_lockerD2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc
  FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc@@GLIBCXX_3.4
- FUNC:_ZNSt10bad_typeidD0Ev
  FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10bad_typeidD1Ev
  FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10bad_typeidD2Ev
  FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10filesystem10equivalentERKNS_4pathES2_
  FUNC:_ZNSt10filesystem10equivalentERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10equivalentERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem10equivalentERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10equivalentERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem10equivalentERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10equivalentERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem10equivalentERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10hash_valueERKNS_4pathE
  FUNC:_ZNSt10filesystem10hash_valueERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10remove_allERKNS_4pathE
  FUNC:_ZNSt10filesystem10remove_allERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10remove_allERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem10remove_allERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10remove_allERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem10remove_allERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem10remove_allERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem10remove_allERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11permissionsERKNS_4pathENS_5permsENS_12perm_optionsE
  FUNC:_ZNSt10filesystem11permissionsERKNS_4pathENS_5permsENS_12perm_optionsE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11permissionsERKNS_4pathENS_5permsENS_12perm_optionsERSt10error_code
  FUNC:_ZNSt10filesystem11permissionsERKNS_4pathENS_5permsENS_12perm_optionsERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11permissionsERKNS_7__cxx114pathENS_5permsENS_12perm_optionsE
  FUNC:_ZNSt10filesystem11permissionsERKNS_7__cxx114pathENS_5permsENS_12perm_optionsE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11permissionsERKNS_7__cxx114pathENS_5permsENS_12perm_optionsERSt10error_code
  FUNC:_ZNSt10filesystem11permissionsERKNS_7__cxx114pathENS_5permsENS_12perm_optionsERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11resize_fileERKNS_4pathEy
  FUNC:_ZNSt10filesystem11resize_fileERKNS_4pathEy@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11resize_fileERKNS_4pathEyRSt10error_code
  FUNC:_ZNSt10filesystem11resize_fileERKNS_4pathEyRSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11resize_fileERKNS_7__cxx114pathEy
  FUNC:_ZNSt10filesystem11resize_fileERKNS_7__cxx114pathEy@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem11resize_fileERKNS_7__cxx114pathEyRSt10error_code
  FUNC:_ZNSt10filesystem11resize_fileERKNS_7__cxx114pathEyRSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12copy_symlinkERKNS_4pathES2_
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12copy_symlinkERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12copy_symlinkERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12copy_symlinkERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathB5cxx11ERSt10error_code
  FUNC:_ZNSt10filesystem12current_pathB5cxx11ERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathB5cxx11Ev
  FUNC:_ZNSt10filesystem12current_pathB5cxx11Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathERKNS_4pathE
  FUNC:_ZNSt10filesystem12current_pathERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem12current_pathERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem12current_pathERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem12current_pathERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathERSt10error_code
  FUNC:_ZNSt10filesystem12current_pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12current_pathEv
  FUNC:_ZNSt10filesystem12current_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12read_symlinkERKNS_4pathE
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12read_symlinkERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12read_symlinkERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem12read_symlinkERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14create_symlinkERKNS_4pathES2_
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14create_symlinkERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14create_symlinkERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14create_symlinkERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14symlink_statusERKNS_4pathE
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14symlink_statusERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14symlink_statusERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem14symlink_statusERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15hard_link_countERKNS_4pathE
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15hard_link_countERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15hard_link_countERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15hard_link_countERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathE
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathENSt6chrono10time_pointINS_12__file_clockENS3_8durationIxSt5ratioILx1ELx1000000000EEEEEE
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathENSt6chrono10time_pointINS_12__file_clockENS3_8durationIxSt5ratioILx1ELx1000000000EEEEEE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathENSt6chrono10time_pointINS_12__file_clockENS3_8durationIxSt5ratioILx1ELx1000000000EEEEEERSt10error_code
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathENSt6chrono10time_pointINS_12__file_clockENS3_8durationIxSt5ratioILx1ELx1000000000EEEEEERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathENSt6chrono10time_pointINS_12__file_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEE
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathENSt6chrono10time_pointINS_12__file_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathENSt6chrono10time_pointINS_12__file_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEERSt10error_code
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathENSt6chrono10time_pointINS_12__file_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathE
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathES2_
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_hard_linkERKNS_4pathES2_
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_hard_linkERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_hard_linkERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16create_hard_linkERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsRKNS_4pathES5_St10error_code
  FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsRKNS_4pathES5_St10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsRKNS_4pathESt10error_code
  FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsRKNS_4pathESt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsSt10error_code
  FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsRKNS_4pathES5_St10error_code
  FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsRKNS_4pathES5_St10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsRKNS_4pathESt10error_code
  FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsRKNS_4pathESt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsSt10error_code
  FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorD0Ev
  FUNC:_ZNSt10filesystem16filesystem_errorD0Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorD1Ev
  FUNC:_ZNSt10filesystem16filesystem_errorD1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16filesystem_errorD2Ev
  FUNC:_ZNSt10filesystem16filesystem_errorD2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_4pathE
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18create_directoriesERKNS_4pathE
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18create_directoriesERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18create_directoriesERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18create_directoriesERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18directory_iterator9incrementERSt10error_code
  FUNC:_ZNSt10filesystem18directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18directory_iteratorC1ERKNS_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem18directory_iteratorC1ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18directory_iteratorC2ERKNS_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem18directory_iteratorC2ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem18directory_iteratorppEv
  FUNC:_ZNSt10filesystem18directory_iteratorppEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem19temp_directory_pathB5cxx11ERSt10error_code
  FUNC:_ZNSt10filesystem19temp_directory_pathB5cxx11ERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem19temp_directory_pathB5cxx11Ev
  FUNC:_ZNSt10filesystem19temp_directory_pathB5cxx11Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem19temp_directory_pathERSt10error_code
  FUNC:_ZNSt10filesystem19temp_directory_pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem19temp_directory_pathEv
  FUNC:_ZNSt10filesystem19temp_directory_pathEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_4pathES2_
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iterator25disable_recursion_pendingEv
  FUNC:_ZNSt10filesystem28recursive_directory_iterator25disable_recursion_pendingEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iterator3popERSt10error_code
  FUNC:_ZNSt10filesystem28recursive_directory_iterator3popERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iterator3popEv
  FUNC:_ZNSt10filesystem28recursive_directory_iterator3popEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iterator9incrementERSt10error_code
  FUNC:_ZNSt10filesystem28recursive_directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iteratorC1ERKNS_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorC1ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iteratorC2ERKNS_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorC2ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iteratorD1Ev
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorD1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iteratorD2Ev
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorD2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iteratoraSEOS0_
  FUNC:_ZNSt10filesystem28recursive_directory_iteratoraSEOS0_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem28recursive_directory_iteratoraSERKS0_
  FUNC:_ZNSt10filesystem28recursive_directory_iteratoraSERKS0_@@GLIBCXX_3.4.27
- FUNC:_ZNSt10filesystem28recursive_directory_iteratorppEv
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorppEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4copyERKNS_4pathES2_NS_12copy_optionsE
  FUNC:_ZNSt10filesystem4copyERKNS_4pathES2_NS_12copy_optionsE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4copyERKNS_4pathES2_NS_12copy_optionsERSt10error_code
  FUNC:_ZNSt10filesystem4copyERKNS_4pathES2_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4copyERKNS_7__cxx114pathES3_NS_12copy_optionsE
  FUNC:_ZNSt10filesystem4copyERKNS_7__cxx114pathES3_NS_12copy_optionsE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4copyERKNS_7__cxx114pathES3_NS_12copy_optionsERSt10error_code
  FUNC:_ZNSt10filesystem4copyERKNS_7__cxx114pathES3_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path14_M_split_cmptsEv
  FUNC:_ZNSt10filesystem4path14_M_split_cmptsEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path14_S_convert_locEPKcS2_RKSt6locale
  FUNC:_ZNSt10filesystem4path14_S_convert_locEPKcS2_RKSt6locale@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path15remove_filenameEv
  FUNC:_ZNSt10filesystem4path15remove_filenameEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path16replace_filenameERKS0_
  FUNC:_ZNSt10filesystem4path16replace_filenameERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path17replace_extensionERKS0_
  FUNC:_ZNSt10filesystem4path17replace_extensionERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path5_ListC1ERKS1_
  FUNC:_ZNSt10filesystem4path5_ListC1ERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path5_ListC1Ev
  FUNC:_ZNSt10filesystem4path5_ListC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path9_M_appendESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSt10filesystem4path9_M_appendESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4path9_M_concatESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSt10filesystem4path9_M_concatESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4pathaSERKS0_
  FUNC:_ZNSt10filesystem4pathaSERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4pathdVERKS0_
  FUNC:_ZNSt10filesystem4pathdVERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem4pathpLERKS0_
  FUNC:_ZNSt10filesystem4pathpLERKS0_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem5spaceERKNS_4pathE
  FUNC:_ZNSt10filesystem5spaceERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem5spaceERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem5spaceERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem5spaceERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem5spaceERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem5spaceERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem5spaceERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6removeERKNS_4pathE
  FUNC:_ZNSt10filesystem6removeERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6removeERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem6removeERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6removeERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem6removeERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6removeERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem6removeERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6renameERKNS_4pathES2_
  FUNC:_ZNSt10filesystem6renameERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6renameERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem6renameERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6renameERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem6renameERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6renameERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem6renameERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6statusERKNS_4pathE
  FUNC:_ZNSt10filesystem6statusERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6statusERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem6statusERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6statusERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem6statusERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem6statusERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem6statusERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1110hash_valueERKNS0_4pathE
  FUNC:_ZNSt10filesystem7__cxx1110hash_valueERKNS0_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_St10error_code
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_St10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_St10error_code
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_St10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD0Ev
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD0Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD1Ev
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD2Ev
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1118directory_iterator9incrementERSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1118directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorC1ERKNS0_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorC1ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKNS0_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorppEv
  FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorppEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator25disable_recursion_pendingEv
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator25disable_recursion_pendingEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popERSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popEv
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator9incrementERSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC1ERKNS0_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC1ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathENS_17directory_optionsEPSt10error_code
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD2Ev
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSEOS1_
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSEOS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSERKS1_
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSERKS1_@@GLIBCXX_3.4.27
- FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorppEv
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorppEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path14_M_split_cmptsEv
  FUNC:_ZNSt10filesystem7__cxx114path14_M_split_cmptsEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path14_S_convert_locEPKcS3_RKSt6locale
  FUNC:_ZNSt10filesystem7__cxx114path14_S_convert_locEPKcS3_RKSt6locale@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path15remove_filenameEv
  FUNC:_ZNSt10filesystem7__cxx114path15remove_filenameEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path16replace_filenameERKS1_
  FUNC:_ZNSt10filesystem7__cxx114path16replace_filenameERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path17replace_extensionERKS1_
  FUNC:_ZNSt10filesystem7__cxx114path17replace_extensionERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path5_ListC1ERKS2_
  FUNC:_ZNSt10filesystem7__cxx114path5_ListC1ERKS2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path5_ListC1Ev
  FUNC:_ZNSt10filesystem7__cxx114path5_ListC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path9_M_appendESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSt10filesystem7__cxx114path9_M_appendESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114path9_M_concatESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSt10filesystem7__cxx114path9_M_concatESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114pathaSERKS1_
  FUNC:_ZNSt10filesystem7__cxx114pathaSERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114pathdVERKS1_
  FUNC:_ZNSt10filesystem7__cxx114pathdVERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem7__cxx114pathpLERKS1_
  FUNC:_ZNSt10filesystem7__cxx114pathpLERKS1_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8absoluteERKNS_4pathE
  FUNC:_ZNSt10filesystem8absoluteERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8absoluteERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem8absoluteERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8absoluteERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem8absoluteERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8absoluteERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem8absoluteERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8is_emptyERKNS_4pathE
  FUNC:_ZNSt10filesystem8is_emptyERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8is_emptyERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem8is_emptyERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8is_emptyERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem8is_emptyERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8is_emptyERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem8is_emptyERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8relativeERKNS_4pathES2_
  FUNC:_ZNSt10filesystem8relativeERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8relativeERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem8relativeERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8relativeERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem8relativeERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem8relativeERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem8relativeERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9canonicalERKNS_4pathE
  FUNC:_ZNSt10filesystem9canonicalERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9canonicalERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem9canonicalERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9canonicalERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem9canonicalERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9copy_fileERKNS_4pathES2_NS_12copy_optionsE
  FUNC:_ZNSt10filesystem9copy_fileERKNS_4pathES2_NS_12copy_optionsE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9copy_fileERKNS_4pathES2_NS_12copy_optionsERSt10error_code
  FUNC:_ZNSt10filesystem9copy_fileERKNS_4pathES2_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9copy_fileERKNS_7__cxx114pathES3_NS_12copy_optionsE
  FUNC:_ZNSt10filesystem9copy_fileERKNS_7__cxx114pathES3_NS_12copy_optionsE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9copy_fileERKNS_7__cxx114pathES3_NS_12copy_optionsERSt10error_code
  FUNC:_ZNSt10filesystem9copy_fileERKNS_7__cxx114pathES3_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9file_sizeERKNS_4pathE
  FUNC:_ZNSt10filesystem9file_sizeERKNS_4pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9file_sizeERKNS_4pathERSt10error_code
  FUNC:_ZNSt10filesystem9file_sizeERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9file_sizeERKNS_7__cxx114pathE
  FUNC:_ZNSt10filesystem9file_sizeERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9file_sizeERKNS_7__cxx114pathERSt10error_code
  FUNC:_ZNSt10filesystem9file_sizeERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9proximateERKNS_4pathES2_
  FUNC:_ZNSt10filesystem9proximateERKNS_4pathES2_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9proximateERKNS_4pathES2_RSt10error_code
  FUNC:_ZNSt10filesystem9proximateERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9proximateERKNS_7__cxx114pathES3_
  FUNC:_ZNSt10filesystem9proximateERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt10filesystem9proximateERKNS_7__cxx114pathES3_RSt10error_code
  FUNC:_ZNSt10filesystem9proximateERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
- FUNC:_ZNSt10istrstream3strEv
  FUNC:_ZNSt10istrstream3strEv@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC1EPKc
  FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC1EPKci
  FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC1EPc
  FUNC:_ZNSt10istrstreamC1EPc@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC1EPci
  FUNC:_ZNSt10istrstreamC1EPci@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC2EPKc
  FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC2EPKci
  FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC2EPc
  FUNC:_ZNSt10istrstreamC2EPc@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamC2EPci
  FUNC:_ZNSt10istrstreamC2EPci@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamD0Ev
  FUNC:_ZNSt10istrstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamD1Ev
  FUNC:_ZNSt10istrstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10istrstreamD2Ev
  FUNC:_ZNSt10istrstreamD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10money_base20_S_construct_patternEccc
  FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj
  FUNC:_ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EEC1Ej
  FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj
  FUNC:_ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EEC2Ej
  FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EED0Ev
  FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EED1Ev
  FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb0EED2Ev
  FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj
  FUNC:_ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EEC1Ej
  FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj
  FUNC:_ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EEC2Ej
  FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EED0Ev
  FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EED1Ev
  FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIcLb1EED2Ev
  FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj
  FUNC:_ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EEC1Ej
  FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj
  FUNC:_ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EEC2Ej
  FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EED0Ev
  FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EED1Ev
  FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb0EED2Ev
  FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj
  FUNC:_ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EEC1Ej
  FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj
  FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj
  FUNC:_ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EEC2Ej
  FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EED0Ev
  FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EED1Ev
  FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10moneypunctIwLb1EED2Ev
  FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstream3strEv
  FUNC:_ZNSt10ostrstream3strEv@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstream6freezeEb
  FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode
  FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamC1Ev
  FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode
  FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamC2Ev
  FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamD0Ev
  FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamD1Ev
  FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt10ostrstreamD2Ev
  FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct
  FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj
  FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj
  FUNC:_ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcEC1Ej
  FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj
  FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj
  FUNC:_ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcEC2Ej
  FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcED0Ev
  FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcED1Ev
  FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIcED2Ev
  FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct
  FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj
  FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj
  FUNC:_ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwEC1Ej
  FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj
  FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj
  FUNC:_ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwEC2Ej
  FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwED0Ev
  FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwED1Ev
  FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11__timepunctIwED2Ev
  FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11char_traitsIcE2eqERKcS2_@@GLIBCXX_3.4.5
  FUNC:_ZNSt11char_traitsIcE2eqERKcS2_@GLIBCXX_3.4
  FUNC:_ZNSt11char_traitsIwE2eqERKwS2_@@GLIBCXX_3.4.5
  FUNC:_ZNSt11char_traitsIwE2eqERKwS2_@GLIBCXX_3.4
- FUNC:_ZNSt11logic_errorC1EOS_
  FUNC:_ZNSt11logic_errorC1EOS_@@GLIBCXX_3.4.26
- FUNC:_ZNSt11logic_errorC1EPKc
  FUNC:_ZNSt11logic_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt11logic_errorC1ERKS_
  FUNC:_ZNSt11logic_errorC1ERKS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt11logic_errorC1ERKSs
  FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt11logic_errorC2EOS_
  FUNC:_ZNSt11logic_errorC2EOS_@@GLIBCXX_3.4.26
- FUNC:_ZNSt11logic_errorC2EPKc
  FUNC:_ZNSt11logic_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt11logic_errorC2ERKS_
  FUNC:_ZNSt11logic_errorC2ERKS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt11logic_errorC2ERKSs
  FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt11logic_errorD0Ev
  FUNC:_ZNSt11logic_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11logic_errorD1Ev
  FUNC:_ZNSt11logic_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11logic_errorD2Ev
  FUNC:_ZNSt11logic_errorD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11logic_erroraSEOS_
  FUNC:_ZNSt11logic_erroraSEOS_@@GLIBCXX_3.4.26
- FUNC:_ZNSt11logic_erroraSERKS_
  FUNC:_ZNSt11logic_erroraSERKS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt11range_errorC1EPKc
  FUNC:_ZNSt11range_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt11range_errorC1ERKSs
  FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt11range_errorC2EPKc
  FUNC:_ZNSt11range_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt11range_errorC2ERKSs
  FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt11range_errorD0Ev
  FUNC:_ZNSt11range_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11range_errorD1Ev
  FUNC:_ZNSt11range_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt11range_errorD2Ev
  FUNC:_ZNSt11range_errorD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt11regex_errorC1ENSt15regex_constants10error_typeE
  FUNC:_ZNSt11regex_errorC1ENSt15regex_constants10error_typeE@@GLIBCXX_3.4.20
- FUNC:_ZNSt11regex_errorC2ENSt15regex_constants10error_typeE
  FUNC:_ZNSt11regex_errorC2ENSt15regex_constants10error_typeE@@GLIBCXX_3.4.21
- FUNC:_ZNSt11regex_errorD0Ev
  FUNC:_ZNSt11regex_errorD0Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt11regex_errorD1Ev
  FUNC:_ZNSt11regex_errorD1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt11regex_errorD2Ev
  FUNC:_ZNSt11regex_errorD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt11this_thread11__sleep_forENSt6chrono8durationIxSt5ratioILx1ELx1EEEENS1_IxS2_ILx1ELx1000000000EEEE
  FUNC:_ZNSt11this_thread11__sleep_forENSt6chrono8durationIxSt5ratioILx1ELx1EEEENS1_IxS2_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.18
- FUNC:_ZNSt12__basic_fileIcE2fdEv
  FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE4fileEv
  FUNC:_ZNSt12__basic_fileIcE4fileEv@@GLIBCXX_3.4.1
- FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei
  FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE4syncEv
  FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE5closeEv
  FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci
  FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci
  FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir
  FUNC:_ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode
  FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode
  FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i
  FUNC:_ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcE9showmanycEv
  FUNC:_ZNSt12__basic_fileIcE9showmanycEv@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t
  FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcED1Ev
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12__basic_fileIcED2Ev
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
- FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
- FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS4_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS4_@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS4_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS4_@@GLIBCXX_3.4.28
- FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
- FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS4_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS4_@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS6_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS6_@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS6_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS6_@@GLIBCXX_3.4.28
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
- FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS5_
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS5_@@GLIBCXX_3.4.26
! FUNC:_ZNSt12bad_weak_ptrD0Ev
  FUNC:_ZNSt12bad_weak_ptrD0Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt12bad_weak_ptrD1Ev
  FUNC:_ZNSt12bad_weak_ptrD1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt12bad_weak_ptrD2Ev
  FUNC:_ZNSt12bad_weak_ptrD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt12ctype_bynameIcEC1EPKcj
  FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIcEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt12ctype_bynameIcEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIcEC1ERKSsj
  FUNC:_ZNSt12ctype_bynameIcEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIcEC2EPKcj
  FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt12ctype_bynameIcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIcEC2ERKSsj
  FUNC:_ZNSt12ctype_bynameIcEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIcED0Ev
  FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIcED1Ev
  FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIcED2Ev
  FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIwEC1EPKcj
  FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIwEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt12ctype_bynameIwEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIwEC1ERKSsj
  FUNC:_ZNSt12ctype_bynameIwEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIwEC2EPKcj
  FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIwEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt12ctype_bynameIwEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIwEC2ERKSsj
  FUNC:_ZNSt12ctype_bynameIwEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt12ctype_bynameIwED0Ev
  FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIwED1Ev
  FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12ctype_bynameIwED2Ev
  FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12domain_errorC1EPKc
  FUNC:_ZNSt12domain_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt12domain_errorC1ERKSs
  FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt12domain_errorC2EPKc
  FUNC:_ZNSt12domain_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt12domain_errorC2ERKSs
  FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt12domain_errorD0Ev
  FUNC:_ZNSt12domain_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12domain_errorD1Ev
  FUNC:_ZNSt12domain_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12domain_errorD2Ev
  FUNC:_ZNSt12domain_errorD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt12future_errorD0Ev
  FUNC:_ZNSt12future_errorD0Ev@@GLIBCXX_3.4.14
- FUNC:_ZNSt12future_errorD1Ev
  FUNC:_ZNSt12future_errorD1Ev@@GLIBCXX_3.4.14
- FUNC:_ZNSt12future_errorD2Ev
  FUNC:_ZNSt12future_errorD2Ev@@GLIBCXX_3.4.14
- FUNC:_ZNSt12length_errorC1EPKc
  FUNC:_ZNSt12length_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt12length_errorC1ERKSs
  FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt12length_errorC2EPKc
  FUNC:_ZNSt12length_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt12length_errorC2ERKSs
  FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt12length_errorD0Ev
  FUNC:_ZNSt12length_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12length_errorD1Ev
  FUNC:_ZNSt12length_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12length_errorD2Ev
  FUNC:_ZNSt12length_errorD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt12out_of_rangeC1EPKc
  FUNC:_ZNSt12out_of_rangeC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt12out_of_rangeC1ERKSs
  FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt12out_of_rangeC2EPKc
  FUNC:_ZNSt12out_of_rangeC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt12out_of_rangeC2ERKSs
  FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt12out_of_rangeD0Ev
  FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12out_of_rangeD1Ev
  FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12out_of_rangeD2Ev
  FUNC:_ZNSt12out_of_rangeD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt12strstreambuf3strEv
  FUNC:_ZNSt12strstreambuf3strEv@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf6freezeEb
  FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf6setbufEPci
  FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf7_M_freeEPc
  FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf8_M_allocEj
  FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i
  FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf8overflowEi
  FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf9pbackfailEi
  FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambuf9underflowEv
  FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E
  FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPKai
  FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPKci
  FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPKhi
  FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPaiS0_
  FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPciS0_
  FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1EPhiS0_
  FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC1Ei
  FUNC:_ZNSt12strstreambufC1Ei@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E
  FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPKai
  FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPKci
  FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPKhi
  FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPaiS0_
  FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPciS0_
  FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2EPhiS0_
  FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufC2Ei
  FUNC:_ZNSt12strstreambufC2Ei@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufD0Ev
  FUNC:_ZNSt12strstreambufD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufD1Ev
  FUNC:_ZNSt12strstreambufD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12strstreambufD2Ev
  FUNC:_ZNSt12strstreambufD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt12system_errorD0Ev
  FUNC:_ZNSt12system_errorD0Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt12system_errorD1Ev
  FUNC:_ZNSt12system_errorD1Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt12system_errorD2Ev
  FUNC:_ZNSt12system_errorD2Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt13__future_base11_State_baseD0Ev
  FUNC:_ZNSt13__future_base11_State_baseD0Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base11_State_baseD1Ev
  FUNC:_ZNSt13__future_base11_State_baseD1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base11_State_baseD2Ev
  FUNC:_ZNSt13__future_base11_State_baseD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base12_Result_baseC1Ev
  FUNC:_ZNSt13__future_base12_Result_baseC1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base12_Result_baseC2Ev
  FUNC:_ZNSt13__future_base12_Result_baseC2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base12_Result_baseD0Ev
  FUNC:_ZNSt13__future_base12_Result_baseD0Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base12_Result_baseD1Ev
  FUNC:_ZNSt13__future_base12_Result_baseD1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base12_Result_baseD2Ev
  FUNC:_ZNSt13__future_base12_Result_baseD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt13__future_base13_State_baseV211_Make_ready6_M_setEv
  FUNC:_ZNSt13__future_base13_State_baseV211_Make_ready6_M_setEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt13__future_base19_Async_state_commonD0Ev
  FUNC:_ZNSt13__future_base19_Async_state_commonD0Ev@@GLIBCXX_3.4.17
- FUNC:_ZNSt13__future_base19_Async_state_commonD1Ev
  FUNC:_ZNSt13__future_base19_Async_state_commonD1Ev@@GLIBCXX_3.4.17
- FUNC:_ZNSt13__future_base19_Async_state_commonD2Ev
  FUNC:_ZNSt13__future_base19_Async_state_commonD2Ev@@GLIBCXX_3.4.17
- FUNC:_ZNSt13bad_exceptionD0Ev
  FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13bad_exceptionD1Ev
  FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13bad_exceptionD2Ev
  FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE14_M_get_ext_posER11__mbstate_t
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE14_M_get_ext_posER11__mbstate_t@@GLIBCXX_3.4.15
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4swapERS2_
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1EOS2_
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2EOS2_
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEaSEOS2_
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE14_M_get_ext_posER11__mbstate_t
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE14_M_get_ext_posER11__mbstate_t@@GLIBCXX_3.4.15
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4swapERS2_
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EOS2_
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EOS2_
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEaSEOS2_
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIPvEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIPvEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIbEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIbEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIdEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIdEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIfEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIfEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIjEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIjEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIlEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIlEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractImEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractImEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractItEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractItEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIxEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIxEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIyEERS2_RT_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIyEERS2_RT_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@@GLIBCXX_3.4.5
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@@GLIBCXX_3.4.5
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIPKvEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIPKvEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIxEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIxEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_@@GLIBCXX_3.4.9
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1ERSt14basic_iostreamIwS1_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1ERSt14basic_iostreamIwS1_E@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2ERSt14basic_iostreamIwS1_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2ERSt14basic_iostreamIwS1_E@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEDn
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEDn@@GLIBCXX_3.4.26
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
- FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
- FUNC:_ZNSt13random_device14_M_init_pretr1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt13random_device14_M_init_pretr1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt13random_device14_M_init_pretr1ERKSs
  FUNC:_ZNSt13random_device14_M_init_pretr1ERKSs@@GLIBCXX_3.4.18
- FUNC:_ZNSt13random_device16_M_getval_pretr1Ev
  FUNC:_ZNSt13random_device16_M_getval_pretr1Ev@@GLIBCXX_3.4.18
- FUNC:_ZNSt13random_device7_M_finiEv
  FUNC:_ZNSt13random_device7_M_finiEv@@GLIBCXX_3.4.18
- FUNC:_ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt13random_device7_M_initERKSs
  FUNC:_ZNSt13random_device7_M_initERKSs@@GLIBCXX_3.4.18
- FUNC:_ZNSt13random_device9_M_getvalEv
  FUNC:_ZNSt13random_device9_M_getvalEv@@GLIBCXX_3.4.18
- FUNC:_ZNSt13runtime_errorC1EOS_
  FUNC:_ZNSt13runtime_errorC1EOS_@@GLIBCXX_3.4.26
- FUNC:_ZNSt13runtime_errorC1EPKc
  FUNC:_ZNSt13runtime_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt13runtime_errorC1ERKS_
  FUNC:_ZNSt13runtime_errorC1ERKS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13runtime_errorC1ERKSs
  FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt13runtime_errorC2EOS_
  FUNC:_ZNSt13runtime_errorC2EOS_@@GLIBCXX_3.4.26
- FUNC:_ZNSt13runtime_errorC2EPKc
  FUNC:_ZNSt13runtime_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt13runtime_errorC2ERKS_
  FUNC:_ZNSt13runtime_errorC2ERKS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt13runtime_errorC2ERKSs
  FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt13runtime_errorD0Ev
  FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13runtime_errorD1Ev
  FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13runtime_errorD2Ev
  FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt13runtime_erroraSEOS_
  FUNC:_ZNSt13runtime_erroraSEOS_@@GLIBCXX_3.4.26
- FUNC:_ZNSt13runtime_erroraSERKS_
  FUNC:_ZNSt13runtime_erroraSERKS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4swapERS2_
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EOS2_
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EOS2_
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEaSEOS2_
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4swapERS2_
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EOS2_
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EOS2_
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEaSEOS2_
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EOS2_
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EOS2_
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEaSEOS2_
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKSsj
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKSsj
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKSsj
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKSsj
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIcEC1EPKcj
  FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIcEC1ERKSsj
  FUNC:_ZNSt14collate_bynameIcEC1ERKSsj@@GLIBCXX_3.4.26
- FUNC:_ZNSt14collate_bynameIcEC2EPKcj
  FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIcEC2ERKSsj
  FUNC:_ZNSt14collate_bynameIcEC2ERKSsj@@GLIBCXX_3.4.26
- FUNC:_ZNSt14collate_bynameIcED0Ev
  FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIcED1Ev
  FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIcED2Ev
  FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIwEC1EPKcj
  FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIwEC1ERKSsj
  FUNC:_ZNSt14collate_bynameIwEC1ERKSsj@@GLIBCXX_3.4.26
- FUNC:_ZNSt14collate_bynameIwEC2EPKcj
  FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIwEC2ERKSsj
  FUNC:_ZNSt14collate_bynameIwEC2ERKSsj@@GLIBCXX_3.4.26
- FUNC:_ZNSt14collate_bynameIwED0Ev
  FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIwED1Ev
  FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14collate_bynameIwED2Ev
  FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14error_categoryC1Ev
  FUNC:_ZNSt14error_categoryC1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt14error_categoryC2Ev
  FUNC:_ZNSt14error_categoryC2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt14error_categoryD0Ev
  FUNC:_ZNSt14error_categoryD0Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt14error_categoryD1Ev
  FUNC:_ZNSt14error_categoryD1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt14error_categoryD2Ev
  FUNC:_ZNSt14error_categoryD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt14overflow_errorC1EPKc
  FUNC:_ZNSt14overflow_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt14overflow_errorC1ERKSs
  FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt14overflow_errorC2EPKc
  FUNC:_ZNSt14overflow_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt14overflow_errorC2ERKSs
  FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt14overflow_errorD0Ev
  FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14overflow_errorD1Ev
  FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt14overflow_errorD2Ev
  FUNC:_ZNSt14overflow_errorD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt15_List_node_base10_M_reverseEv
  FUNC:_ZNSt15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.14
- FUNC:_ZNSt15_List_node_base11_M_transferEPS_S0_
  FUNC:_ZNSt15_List_node_base11_M_transferEPS_S0_@@GLIBCXX_3.4.14
- FUNC:_ZNSt15_List_node_base4hookEPS_
  FUNC:_ZNSt15_List_node_base4hookEPS_@@GLIBCXX_3.4
- FUNC:_ZNSt15_List_node_base4swapERS_S0_
  FUNC:_ZNSt15_List_node_base4swapERS_S0_@@GLIBCXX_3.4
- FUNC:_ZNSt15_List_node_base6unhookEv
  FUNC:_ZNSt15_List_node_base6unhookEv@@GLIBCXX_3.4
- FUNC:_ZNSt15_List_node_base7_M_hookEPS_
  FUNC:_ZNSt15_List_node_base7_M_hookEPS_@@GLIBCXX_3.4.14
- FUNC:_ZNSt15_List_node_base7reverseEv
  FUNC:_ZNSt15_List_node_base7reverseEv@@GLIBCXX_3.4
- FUNC:_ZNSt15_List_node_base8transferEPS_S0_
  FUNC:_ZNSt15_List_node_base8transferEPS_S0_@@GLIBCXX_3.4
- FUNC:_ZNSt15_List_node_base9_M_unhookEv
  FUNC:_ZNSt15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
- FUNC:_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv
  FUNC:_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv@@CXXABI_1.3.13
- FUNC:_ZNSt15__exception_ptr13exception_ptr4swapERS0_
  FUNC:_ZNSt15__exception_ptr13exception_ptr4swapERS0_@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv
  FUNC:_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv@@CXXABI_1.3.13
- FUNC:_ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrC1EPv
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1EPv@@CXXABI_1.3.11
- FUNC:_ZNSt15__exception_ptr13exception_ptrC1ERKS0_
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1ERKS0_@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrC1Ev
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1Ev@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE
  FUNC:_ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrC2ERKS0_
  FUNC:_ZNSt15__exception_ptr13exception_ptrC2ERKS0_@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrC2Ev
  FUNC:_ZNSt15__exception_ptr13exception_ptrC2Ev@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrD1Ev
  FUNC:_ZNSt15__exception_ptr13exception_ptrD1Ev@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptrD2Ev
  FUNC:_ZNSt15__exception_ptr13exception_ptrD2Ev@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptr13exception_ptraSERKS0_
  FUNC:_ZNSt15__exception_ptr13exception_ptraSERKS0_@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptreqERKNS_13exception_ptrES2_
  FUNC:_ZNSt15__exception_ptreqERKNS_13exception_ptrES2_@@CXXABI_1.3.3
- FUNC:_ZNSt15__exception_ptrneERKNS_13exception_ptrES2_
  FUNC:_ZNSt15__exception_ptrneERKNS_13exception_ptrES2_@@CXXABI_1.3.3
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@@GLIBCXX_3.4.16
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@@GLIBCXX_3.4.16
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4swapERS2_
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6stosscEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6stosscEv@@GLIBCXX_3.4.10
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@@GLIBCXX_3.4.16
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@@GLIBCXX_3.4.16
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6stosscEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6stosscEv@@GLIBCXX_3.4.10
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS3_
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@@GLIBCXX_3.4.16
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.6
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS3_
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS3_
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS3_
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS3_
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@@GLIBCXX_3.4.16
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.6
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS3_
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS3_
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS3_
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt15messages_bynameIcEC1EPKcj
  FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIcEC1ERKSsj
  FUNC:_ZNSt15messages_bynameIcEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15messages_bynameIcEC2EPKcj
  FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIcEC2ERKSsj
  FUNC:_ZNSt15messages_bynameIcEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15messages_bynameIcED0Ev
  FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIcED1Ev
  FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIcED2Ev
  FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIwEC1EPKcj
  FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIwEC1ERKSsj
  FUNC:_ZNSt15messages_bynameIwEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15messages_bynameIwEC2EPKcj
  FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIwEC2ERKSsj
  FUNC:_ZNSt15messages_bynameIwEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15messages_bynameIwED0Ev
  FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIwED1Ev
  FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15messages_bynameIwED2Ev
  FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj
  FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIcEC1ERKSsj
  FUNC:_ZNSt15numpunct_bynameIcEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj
  FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIcEC2ERKSsj
  FUNC:_ZNSt15numpunct_bynameIcEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15numpunct_bynameIcED0Ev
  FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIcED1Ev
  FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIcED2Ev
  FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj
  FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIwEC1ERKSsj
  FUNC:_ZNSt15numpunct_bynameIwEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj
  FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIwEC2ERKSsj
  FUNC:_ZNSt15numpunct_bynameIwEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15numpunct_bynameIwED0Ev
  FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIwED1Ev
  FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15numpunct_bynameIwED2Ev
  FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15underflow_errorC1EPKc
  FUNC:_ZNSt15underflow_errorC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt15underflow_errorC1ERKSs
  FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt15underflow_errorC2EPKc
  FUNC:_ZNSt15underflow_errorC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt15underflow_errorC2ERKSs
  FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt15underflow_errorD0Ev
  FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15underflow_errorD1Ev
  FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt15underflow_errorD2Ev
  FUNC:_ZNSt15underflow_errorD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale
  FUNC:_ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIcEC1Ej
  FUNC:_ZNSt16__numpunct_cacheIcEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIcEC2Ej
  FUNC:_ZNSt16__numpunct_cacheIcEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIcED0Ev
  FUNC:_ZNSt16__numpunct_cacheIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIcED1Ev
  FUNC:_ZNSt16__numpunct_cacheIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIcED2Ev
  FUNC:_ZNSt16__numpunct_cacheIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale
  FUNC:_ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIwEC1Ej
  FUNC:_ZNSt16__numpunct_cacheIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIwEC2Ej
  FUNC:_ZNSt16__numpunct_cacheIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIwED0Ev
  FUNC:_ZNSt16__numpunct_cacheIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIwED1Ev
  FUNC:_ZNSt16__numpunct_cacheIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16__numpunct_cacheIwED2Ev
  FUNC:_ZNSt16__numpunct_cacheIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16__time_get_state17_M_finalize_stateEP2tm
  FUNC:_ZNSt16__time_get_state17_M_finalize_stateEP2tm@@GLIBCXX_3.4.30
- FUNC:_ZNSt16bad_array_lengthD0Ev
  FUNC:_ZNSt16bad_array_lengthD0Ev@@CXXABI_1.3.8
- FUNC:_ZNSt16bad_array_lengthD1Ev
  FUNC:_ZNSt16bad_array_lengthD1Ev@@CXXABI_1.3.8
- FUNC:_ZNSt16bad_array_lengthD2Ev
  FUNC:_ZNSt16bad_array_lengthD2Ev@@CXXABI_1.3.8
- FUNC:_ZNSt16invalid_argumentC1EPKc
  FUNC:_ZNSt16invalid_argumentC1EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt16invalid_argumentC1ERKSs
  FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt16invalid_argumentC2EPKc
  FUNC:_ZNSt16invalid_argumentC2EPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt16invalid_argumentC2ERKSs
  FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt16invalid_argumentD0Ev
  FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16invalid_argumentD1Ev
  FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt16invalid_argumentD2Ev
  FUNC:_ZNSt16invalid_argumentD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt16nested_exceptionD0Ev
  FUNC:_ZNSt16nested_exceptionD0Ev@@CXXABI_1.3.5
- FUNC:_ZNSt16nested_exceptionD1Ev
  FUNC:_ZNSt16nested_exceptionD1Ev@@CXXABI_1.3.5
- FUNC:_ZNSt16nested_exceptionD2Ev
  FUNC:_ZNSt16nested_exceptionD2Ev@@CXXABI_1.3.5
- FUNC:_ZNSt17__timepunct_cacheIcEC1Ej
  FUNC:_ZNSt17__timepunct_cacheIcEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIcEC2Ej
  FUNC:_ZNSt17__timepunct_cacheIcEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIcED0Ev
  FUNC:_ZNSt17__timepunct_cacheIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIcED1Ev
  FUNC:_ZNSt17__timepunct_cacheIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIcED2Ev
  FUNC:_ZNSt17__timepunct_cacheIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIwEC1Ej
  FUNC:_ZNSt17__timepunct_cacheIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIwEC2Ej
  FUNC:_ZNSt17__timepunct_cacheIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIwED0Ev
  FUNC:_ZNSt17__timepunct_cacheIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIwED1Ev
  FUNC:_ZNSt17__timepunct_cacheIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17__timepunct_cacheIwED2Ev
  FUNC:_ZNSt17__timepunct_cacheIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17bad_function_callD0Ev
  FUNC:_ZNSt17bad_function_callD0Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt17bad_function_callD1Ev
  FUNC:_ZNSt17bad_function_callD1Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt17bad_function_callD2Ev
  FUNC:_ZNSt17bad_function_callD2Ev@@GLIBCXX_3.4.15
- FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev
  FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev
  FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev
  FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev
  FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev
  FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev
  FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev
  FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev
  FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev
  FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2ERKSsj
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2ERKSsj@@GLIBCXX_3.4.21
- FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev
  FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev
  FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev
  FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC1Ej
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC2Ej
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb0EED0Ev
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb0EED1Ev
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb0EED2Ev
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC1Ej
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC2Ej
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb1EED0Ev
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb1EED1Ev
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIcLb1EED2Ev
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC1Ej
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC2Ej
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb0EED0Ev
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb0EED1Ev
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb0EED2Ev
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC1Ej
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC2Ej
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb1EED0Ev
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb1EED1Ev
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18__moneypunct_cacheIwLb1EED2Ev
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS3_
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS3_
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS3_
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS3_
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS3_
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS3_
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS3_
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS3_
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt18condition_variable10notify_allEv
  FUNC:_ZNSt18condition_variable10notify_allEv@@GLIBCXX_3.4.11
- FUNC:_ZNSt18condition_variable10notify_oneEv
  FUNC:_ZNSt18condition_variable10notify_oneEv@@GLIBCXX_3.4.11
- FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE
  FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@@GLIBCXX_3.4.30
  FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11
- FUNC:_ZNSt18condition_variableC1Ev
  FUNC:_ZNSt18condition_variableC1Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt18condition_variableC2Ev
  FUNC:_ZNSt18condition_variableC2Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt18condition_variableD1Ev
  FUNC:_ZNSt18condition_variableD1Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt18condition_variableD2Ev
  FUNC:_ZNSt18condition_variableD2Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt19_Sp_make_shared_tag5_S_eqERKSt9type_info
  FUNC:_ZNSt19_Sp_make_shared_tag5_S_eqERKSt9type_info@@GLIBCXX_3.4.26
- FUNC:_ZNSt19__codecvt_utf8_baseIDiED0Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIDiED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIDiED1Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIDiED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIDiED2Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIDiED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIDsED0Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIDsED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIDsED1Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIDsED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIDsED2Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIDsED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIwED0Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIwED1Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19__codecvt_utf8_baseIwED2Ev
  FUNC:_ZNSt19__codecvt_utf8_baseIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS3_
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS3_
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS3_
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS3_
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS3_
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS3_
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS3_
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS3_
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS3_
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS3_
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS3_
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS3_
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS3_
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS3_
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS3_
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS3_
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@@GLIBCXX_3.4.5
  FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4
  FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@@GLIBCXX_3.4.5
  FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@GLIBCXX_3.4
- FUNC:_ZNSt20__codecvt_utf16_baseIDiED0Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIDiED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIDiED1Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIDiED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIDiED2Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIDiED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIDsED0Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIDsED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIDsED1Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIDsED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIDsED2Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIDsED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIwED0Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIwED1Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20__codecvt_utf16_baseIwED2Ev
  FUNC:_ZNSt20__codecvt_utf16_baseIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt20bad_array_new_lengthD0Ev
  FUNC:_ZNSt20bad_array_new_lengthD0Ev@@CXXABI_1.3.8
- FUNC:_ZNSt20bad_array_new_lengthD1Ev
  FUNC:_ZNSt20bad_array_new_lengthD1Ev@@CXXABI_1.3.8
- FUNC:_ZNSt20bad_array_new_lengthD2Ev
  FUNC:_ZNSt20bad_array_new_lengthD2Ev@@CXXABI_1.3.8
- FUNC:_ZNSt22condition_variable_anyC1Ev
  FUNC:_ZNSt22condition_variable_anyC1Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt22condition_variable_anyC2Ev
  FUNC:_ZNSt22condition_variable_anyC2Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt22condition_variable_anyD1Ev
  FUNC:_ZNSt22condition_variable_anyD1Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt22condition_variable_anyD2Ev
  FUNC:_ZNSt22condition_variable_anyD2Ev@@GLIBCXX_3.4.11
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED0Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED1Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED2Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED0Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED1Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED2Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED0Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED1Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED2Ev
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt28__atomic_futex_unsigned_base19_M_futex_notify_allEPj
  FUNC:_ZNSt28__atomic_futex_unsigned_base19_M_futex_notify_allEPj@@GLIBCXX_3.4.21
- FUNC:_ZNSt28__atomic_futex_unsigned_base19_M_futex_wait_untilEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE
  FUNC:_ZNSt28__atomic_futex_unsigned_base19_M_futex_wait_untilEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt28__atomic_futex_unsigned_base26_M_futex_wait_until_steadyEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE
  FUNC:_ZNSt28__atomic_futex_unsigned_base26_M_futex_wait_until_steadyEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.29
- FUNC:_ZNSt3_V214error_categoryD0Ev
  FUNC:_ZNSt3_V214error_categoryD0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt3_V214error_categoryD1Ev
  FUNC:_ZNSt3_V214error_categoryD1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt3_V214error_categoryD2Ev
  FUNC:_ZNSt3_V214error_categoryD2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt3_V215system_categoryEv
  FUNC:_ZNSt3_V215system_categoryEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt3_V216generic_categoryEv
  FUNC:_ZNSt3_V216generic_categoryEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt3pmr15memory_resourceD0Ev
  FUNC:_ZNSt3pmr15memory_resourceD0Ev@@GLIBCXX_3.4.28
- FUNC:_ZNSt3pmr15memory_resourceD1Ev
  FUNC:_ZNSt3pmr15memory_resourceD1Ev@@GLIBCXX_3.4.28
- FUNC:_ZNSt3pmr15memory_resourceD2Ev
  FUNC:_ZNSt3pmr15memory_resourceD2Ev@@GLIBCXX_3.4.28
- FUNC:_ZNSt3pmr19new_delete_resourceEv
  FUNC:_ZNSt3pmr19new_delete_resourceEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr20get_default_resourceEv
  FUNC:_ZNSt3pmr20get_default_resourceEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr20null_memory_resourceEv
  FUNC:_ZNSt3pmr20null_memory_resourceEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr20set_default_resourceEPNS_15memory_resourceE
  FUNC:_ZNSt3pmr20set_default_resourceEPNS_15memory_resourceE@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr25monotonic_buffer_resource13_M_new_bufferEjj
  FUNC:_ZNSt3pmr25monotonic_buffer_resource13_M_new_bufferEjj@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr25monotonic_buffer_resource18_M_release_buffersEv
  FUNC:_ZNSt3pmr25monotonic_buffer_resource18_M_release_buffersEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr25monotonic_buffer_resourceD0Ev
  FUNC:_ZNSt3pmr25monotonic_buffer_resourceD0Ev@@GLIBCXX_3.4.28
- FUNC:_ZNSt3pmr25monotonic_buffer_resourceD1Ev
  FUNC:_ZNSt3pmr25monotonic_buffer_resourceD1Ev@@GLIBCXX_3.4.28
- FUNC:_ZNSt3pmr25monotonic_buffer_resourceD2Ev
  FUNC:_ZNSt3pmr25monotonic_buffer_resourceD2Ev@@GLIBCXX_3.4.28
- FUNC:_ZNSt3pmr26synchronized_pool_resource11do_allocateEjj
  FUNC:_ZNSt3pmr26synchronized_pool_resource11do_allocateEjj@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr26synchronized_pool_resource13do_deallocateEPvjj
  FUNC:_ZNSt3pmr26synchronized_pool_resource13do_deallocateEPvjj@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr26synchronized_pool_resource7releaseEv
  FUNC:_ZNSt3pmr26synchronized_pool_resource7releaseEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr26synchronized_pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE
  FUNC:_ZNSt3pmr26synchronized_pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr26synchronized_pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE
  FUNC:_ZNSt3pmr26synchronized_pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr26synchronized_pool_resourceD1Ev
  FUNC:_ZNSt3pmr26synchronized_pool_resourceD1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr26synchronized_pool_resourceD2Ev
  FUNC:_ZNSt3pmr26synchronized_pool_resourceD2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resource11do_allocateEjj
  FUNC:_ZNSt3pmr28unsynchronized_pool_resource11do_allocateEjj@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resource13do_deallocateEPvjj
  FUNC:_ZNSt3pmr28unsynchronized_pool_resource13do_deallocateEPvjj@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resource7releaseEv
  FUNC:_ZNSt3pmr28unsynchronized_pool_resource7releaseEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resourceD1Ev
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceD1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt3pmr28unsynchronized_pool_resourceD2Ev
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceD2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt5ctypeIcE13classic_tableEv
  FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj
  FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcEC1EPKtbj
  FUNC:_ZNSt5ctypeIcEC1EPKtbj@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj
  FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcEC2EPKtbj
  FUNC:_ZNSt5ctypeIcEC2EPKtbj@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcED0Ev
  FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcED1Ev
  FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIcED2Ev
  FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwE19_M_initialize_ctypeEv
  FUNC:_ZNSt5ctypeIwE19_M_initialize_ctypeEv@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj
  FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwEC1Ej
  FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj
  FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwEC2Ej
  FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwED0Ev
  FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwED1Ev
  FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt5ctypeIwED2Ev
  FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6__norm15_List_node_base10_M_reverseEv
  FUNC:_ZNSt6__norm15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.14
- FUNC:_ZNSt6__norm15_List_node_base11_M_transferEPS0_S1_
  FUNC:_ZNSt6__norm15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.14
- FUNC:_ZNSt6__norm15_List_node_base4hookEPS0_
  FUNC:_ZNSt6__norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4.9
- FUNC:_ZNSt6__norm15_List_node_base4swapERS0_S1_
  FUNC:_ZNSt6__norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.9
- FUNC:_ZNSt6__norm15_List_node_base6unhookEv
  FUNC:_ZNSt6__norm15_List_node_base6unhookEv@@GLIBCXX_3.4.9
- FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_
  FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
- FUNC:_ZNSt6__norm15_List_node_base7reverseEv
  FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
- FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_
  FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
- FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv
  FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
- FUNC:_ZNSt6chrono11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE
  FUNC:_ZNSt6chrono11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono11reload_tzdbEv
  FUNC:_ZNSt6chrono11reload_tzdbEv@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono12current_zoneEv
  FUNC:_ZNSt6chrono12current_zoneEv@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono12system_clock3nowEv
  FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
- FUNC:_ZNSt6chrono13get_tzdb_listEv
  FUNC:_ZNSt6chrono13get_tzdb_listEv@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono14remote_versionB5cxx11Ev
  FUNC:_ZNSt6chrono14remote_versionB5cxx11Ev@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono3_V212steady_clock3nowEv
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
- FUNC:_ZNSt6chrono3_V212system_clock3nowEv
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
- FUNC:_ZNSt6chrono8get_tzdbEv
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
- FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
- FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_
  FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
- FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_
  FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
- FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i
  FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
- FUNC:_ZNSt6locale21_S_normalize_categoryEi
  FUNC:_ZNSt6locale21_S_normalize_categoryEi@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj
  FUNC:_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj@@GLIBCXX_3.4.7
- FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE
  FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE
  FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE
  FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i
  FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplC1EPKcj
  FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplC1ERKS0_j
  FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplC1Ej
  FUNC:_ZNSt6locale5_ImplC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplC2EPKcj
  FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplC2ERKS0_j
  FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplC2Ej
  FUNC:_ZNSt6locale5_ImplC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplD1Ev
  FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5_ImplD2Ev
  FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facet13_S_get_c_nameEv
  FUNC:_ZNSt6locale5facet13_S_get_c_nameEv@@GLIBCXX_3.4.6
- FUNC:_ZNSt6locale5facet15_S_get_c_localeEv
  FUNC:_ZNSt6locale5facet15_S_get_c_localeEv@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct
  FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_
  FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct
  FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facetD0Ev
  FUNC:_ZNSt6locale5facetD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facetD1Ev
  FUNC:_ZNSt6locale5facetD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6locale5facetD2Ev
  FUNC:_ZNSt6locale5facetD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6locale6globalERKS_
  FUNC:_ZNSt6locale6globalERKS_@@GLIBCXX_3.4
- FUNC:_ZNSt6locale7classicEv
  FUNC:_ZNSt6locale7classicEv@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC1EPKc
  FUNC:_ZNSt6localeC1EPKc@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC1EPNS_5_ImplE
  FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC1ERKS_
  FUNC:_ZNSt6localeC1ERKS_@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC1ERKS_PKci
  FUNC:_ZNSt6localeC1ERKS_PKci@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC1ERKS_S1_i
  FUNC:_ZNSt6localeC1ERKS_S1_i@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC1Ev
  FUNC:_ZNSt6localeC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC2EPKc
  FUNC:_ZNSt6localeC2EPKc@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC2EPNS_5_ImplE
  FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC2ERKS_
  FUNC:_ZNSt6localeC2ERKS_@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC2ERKS_PKci
  FUNC:_ZNSt6localeC2ERKS_PKci@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC2ERKS_S1_i
  FUNC:_ZNSt6localeC2ERKS_S1_i@@GLIBCXX_3.4
- FUNC:_ZNSt6localeC2Ev
  FUNC:_ZNSt6localeC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6localeD1Ev
  FUNC:_ZNSt6localeD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6localeD2Ev
  FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt6localeaSERKS_
  FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
- FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE
  FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE@@GLIBCXX_3.4.11
- FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEEPFvvE
  FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEEPFvvE@@GLIBCXX_3.4.21
- FUNC:_ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE
  FUNC:_ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE@@GLIBCXX_3.4.22
- FUNC:_ZNSt6thread20hardware_concurrencyEv
  FUNC:_ZNSt6thread20hardware_concurrencyEv@@GLIBCXX_3.4.17
- FUNC:_ZNSt6thread4joinEv
  FUNC:_ZNSt6thread4joinEv@@GLIBCXX_3.4.11
- FUNC:_ZNSt6thread6_StateD0Ev
  FUNC:_ZNSt6thread6_StateD0Ev@@GLIBCXX_3.4.22
- FUNC:_ZNSt6thread6_StateD1Ev
  FUNC:_ZNSt6thread6_StateD1Ev@@GLIBCXX_3.4.22
- FUNC:_ZNSt6thread6_StateD2Ev
  FUNC:_ZNSt6thread6_StateD2Ev@@GLIBCXX_3.4.22
- FUNC:_ZNSt6thread6detachEv
  FUNC:_ZNSt6thread6detachEv@@GLIBCXX_3.4.11
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1Ej
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2Ej
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED0Ev
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED1Ev
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED2Ev
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1Ej
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2Ej
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED0Ev
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED1Ev
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED2Ev
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1Ej
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2Ej
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED0Ev
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED1Ev
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED2Ev
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1Ej
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2Ej
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED0Ev
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED1Ev
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED2Ev
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_destroyEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_destroyEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_S_compareEjj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_S_compareEjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_S_allocateERS3_j
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_S_allocateERS3_j@@GLIBCXX_3.4.32
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcOS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcOS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcOS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcOS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEjc@@GLIBCXX_3.4.21
! FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvT_SA_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvT_SA_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC2ESt17basic_string_viewIcS2_E
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC2ESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcS4_EESA_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcS4_EESA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcS5_S5_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcS5_S5_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13shrink_to_fitEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13shrink_to_fitEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEjjjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEjjjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcjPKcjj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcjPKcjj@@GLIBCXX_3.4.31
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE18_M_construct_aux_2Ejc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE18_M_construct_aux_2Ejc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEjj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendESt16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendESt16initializer_listIcE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignESt16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignESt16initializer_listIcE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EESt16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EESt16initializer_listIcE@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EESt16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EESt16initializer_listIcE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvS9_T_SA_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvS9_T_SA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEPc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEPc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_moveEPcPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_moveEPcPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_NS6_IPcS4_EESB_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_NS6_IPcS4_EESB_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_PcSA_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_PcSA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_RKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_RKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_S8_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_S8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_j
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_j@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S9_S9_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S9_S9_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_St16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_St16initializer_listIcE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_jc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_jc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_NS6_IPKcS4_EESB_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_NS6_IPKcS4_EESB_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcSA_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcSA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_RKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_RKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S7_S7_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S7_S7_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S8_S8_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S8_S8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_jc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_jc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEv@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEjj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERjj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_lengthEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_lengthEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_S_assignEPcjc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_S_assignEPcjc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ENS4_12__sv_wrapperERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jRKS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jRKS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSESt16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSESt16initializer_listIcE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLESt16initializer_listIcE
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLESt16initializer_listIcE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_destroyEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_destroyEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_disposeEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_disposeEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_replaceEjjPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_replaceEjjPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_S_compareEjj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_capacityEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_capacityEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_S_allocateERS3_j
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_S_allocateERS3_j@@GLIBCXX_3.4.32
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwOS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwOS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwOS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwOS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructEjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructEjw@@GLIBCXX_3.4.21
! FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKwS4_EEEEvT_SB_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKwS4_EEEEvT_SB_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvT_SA_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvT_SA_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPKwEEvT_S8_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPKwEEvT_S8_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPwEEvT_S7_St20forward_iterator_tag
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPwEEvT_S7_St20forward_iterator_tag@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS2_E
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS2_E
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS4_EESA_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS4_EESA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS7_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS7_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS5_S5_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS5_S5_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13shrink_to_fitEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_replace_coldEPwjPKwjj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_replace_coldEPwjPKwjj@@GLIBCXX_3.4.31
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS2_E
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE18_M_construct_aux_2Ejw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE18_M_construct_aux_2Ejw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4swapERS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5clearEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEjj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EESt16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EESt16initializer_listIwE@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EESt16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EESt16initializer_listIwE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvS9_T_SA_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvS9_T_SA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEPw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_moveEPwPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_moveEPwPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_NS6_IPwS4_EESB_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_NS6_IPwS4_EESB_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_PwSA_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_PwSA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_RKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_RKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_S8_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_S8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_j
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_j@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S9_S9_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S9_S9_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_St16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_St16initializer_listIwE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_jw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_jw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_NS6_IPKwS4_EESB_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_NS6_IPKwS4_EESB_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwSA_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwSA_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_RKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_RKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S7_S7_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S7_S7_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S8_S8_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S8_S8_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_jw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_jw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEv@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEjj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8pop_backEv
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERjj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_lengthEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_lengthEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_S_assignEPwjw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_S_assignEPwjw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9push_backEw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ENS4_12__sv_wrapperERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jRKS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ENS4_12__sv_wrapperERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jRKS3_@@GLIBCXX_3.4.23
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jjRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jjRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEPKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEPKw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEw
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcEC1EPKcj
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcEC2EPKcj
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcED0Ev
  FUNC:_ZNSt7__cxx1114collate_bynameIcED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcED1Ev
  FUNC:_ZNSt7__cxx1114collate_bynameIcED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIcED2Ev
  FUNC:_ZNSt7__cxx1114collate_bynameIcED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwEC1EPKcj
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwEC2EPKcj
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwED0Ev
  FUNC:_ZNSt7__cxx1114collate_bynameIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwED1Ev
  FUNC:_ZNSt7__cxx1114collate_bynameIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1114collate_bynameIwED2Ev
  FUNC:_ZNSt7__cxx1114collate_bynameIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC1ERKS4_PS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC1ERKS4_PS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC2ERKS4_PS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC2ERKS4_PS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD2Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS5_x
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS5_x@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC1ERKS4_PS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC1ERKS4_PS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC2ERKS4_PS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC2ERKS4_PS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD1Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD2Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS5_x
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS5_x@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS4_
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcEC1EPKcj
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcEC2EPKcj
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcED0Ev
  FUNC:_ZNSt7__cxx1115messages_bynameIcED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcED1Ev
  FUNC:_ZNSt7__cxx1115messages_bynameIcED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIcED2Ev
  FUNC:_ZNSt7__cxx1115messages_bynameIcED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwEC1EPKcj
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwEC2EPKcj
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwED0Ev
  FUNC:_ZNSt7__cxx1115messages_bynameIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwED1Ev
  FUNC:_ZNSt7__cxx1115messages_bynameIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115messages_bynameIwED2Ev
  FUNC:_ZNSt7__cxx1115messages_bynameIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC1EPKcj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC2EPKcj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcED0Ev
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcED1Ev
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIcED2Ev
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC1EPKcj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC2EPKcj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwED0Ev
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwED1Ev
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115numpunct_bynameIwED2Ev
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNS_12basic_stringIcS3_SaIcEEEj
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNS_12basic_stringIcS3_SaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNS_12basic_stringIcS3_SaIcEEEj
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNS_12basic_stringIcS3_SaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNS_12basic_stringIcS2_IcESaIcEEEj
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNS_12basic_stringIcS2_IcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNS_12basic_stringIcS2_IcESaIcEEEj
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNS_12basic_stringIcS2_IcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED0Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED1Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED2Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED0Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED1Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED2Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED0Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED1Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED2Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2EPKcj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED0Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED1Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED2Ev
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS4_
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS4_
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS4_
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcEC1EP15__locale_structj
  FUNC:_ZNSt7__cxx117collateIcEC1EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcEC1Ej
  FUNC:_ZNSt7__cxx117collateIcEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcEC2EP15__locale_structj
  FUNC:_ZNSt7__cxx117collateIcEC2EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcEC2Ej
  FUNC:_ZNSt7__cxx117collateIcEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcED0Ev
  FUNC:_ZNSt7__cxx117collateIcED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcED1Ev
  FUNC:_ZNSt7__cxx117collateIcED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIcED2Ev
  FUNC:_ZNSt7__cxx117collateIcED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwEC1EP15__locale_structj
  FUNC:_ZNSt7__cxx117collateIwEC1EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwEC1Ej
  FUNC:_ZNSt7__cxx117collateIwEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwEC2EP15__locale_structj
  FUNC:_ZNSt7__cxx117collateIwEC2EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwEC2Ej
  FUNC:_ZNSt7__cxx117collateIwEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwED0Ev
  FUNC:_ZNSt7__cxx117collateIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwED1Ev
  FUNC:_ZNSt7__cxx117collateIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx117collateIwED2Ev
  FUNC:_ZNSt7__cxx117collateIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcEC1EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx118messagesIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcEC1Ej
  FUNC:_ZNSt7__cxx118messagesIcEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcEC2EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx118messagesIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcEC2Ej
  FUNC:_ZNSt7__cxx118messagesIcEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcED0Ev
  FUNC:_ZNSt7__cxx118messagesIcED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcED1Ev
  FUNC:_ZNSt7__cxx118messagesIcED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIcED2Ev
  FUNC:_ZNSt7__cxx118messagesIcED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwEC1EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx118messagesIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwEC1Ej
  FUNC:_ZNSt7__cxx118messagesIwEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwEC2EP15__locale_structPKcj
  FUNC:_ZNSt7__cxx118messagesIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwEC2Ej
  FUNC:_ZNSt7__cxx118messagesIwEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwED0Ev
  FUNC:_ZNSt7__cxx118messagesIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwED1Ev
  FUNC:_ZNSt7__cxx118messagesIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118messagesIwED2Ev
  FUNC:_ZNSt7__cxx118messagesIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcE22_M_initialize_numpunctEP15__locale_struct
  FUNC:_ZNSt7__cxx118numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcEC1EP15__locale_structj
  FUNC:_ZNSt7__cxx118numpunctIcEC1EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcEC1EPSt16__numpunct_cacheIcEj
  FUNC:_ZNSt7__cxx118numpunctIcEC1EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcEC1Ej
  FUNC:_ZNSt7__cxx118numpunctIcEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcEC2EP15__locale_structj
  FUNC:_ZNSt7__cxx118numpunctIcEC2EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcEC2EPSt16__numpunct_cacheIcEj
  FUNC:_ZNSt7__cxx118numpunctIcEC2EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcEC2Ej
  FUNC:_ZNSt7__cxx118numpunctIcEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcED0Ev
  FUNC:_ZNSt7__cxx118numpunctIcED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcED1Ev
  FUNC:_ZNSt7__cxx118numpunctIcED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIcED2Ev
  FUNC:_ZNSt7__cxx118numpunctIcED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwE22_M_initialize_numpunctEP15__locale_struct
  FUNC:_ZNSt7__cxx118numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwEC1EP15__locale_structj
  FUNC:_ZNSt7__cxx118numpunctIwEC1EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwEC1EPSt16__numpunct_cacheIwEj
  FUNC:_ZNSt7__cxx118numpunctIwEC1EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwEC1Ej
  FUNC:_ZNSt7__cxx118numpunctIwEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwEC2EP15__locale_structj
  FUNC:_ZNSt7__cxx118numpunctIwEC2EP15__locale_structj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwEC2EPSt16__numpunct_cacheIwEj
  FUNC:_ZNSt7__cxx118numpunctIwEC2EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwEC2Ej
  FUNC:_ZNSt7__cxx118numpunctIwEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwED0Ev
  FUNC:_ZNSt7__cxx118numpunctIwED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwED1Ev
  FUNC:_ZNSt7__cxx118numpunctIwED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118numpunctIwED2Ev
  FUNC:_ZNSt7__cxx118numpunctIwED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED0Ev
  FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED0Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED1Ev
  FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED2Ev
  FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7codecvtIDic11__mbstate_tED0Ev
  FUNC:_ZNSt7codecvtIDic11__mbstate_tED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIDic11__mbstate_tED1Ev
  FUNC:_ZNSt7codecvtIDic11__mbstate_tED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIDic11__mbstate_tED2Ev
  FUNC:_ZNSt7codecvtIDic11__mbstate_tED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED0Ev
  FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED0Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED1Ev
  FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED1Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED2Ev
  FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED2Ev@@GLIBCXX_3.4.26
- FUNC:_ZNSt7codecvtIDsc11__mbstate_tED0Ev
  FUNC:_ZNSt7codecvtIDsc11__mbstate_tED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIDsc11__mbstate_tED1Ev
  FUNC:_ZNSt7codecvtIDsc11__mbstate_tED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIDsc11__mbstate_tED2Ev
  FUNC:_ZNSt7codecvtIDsc11__mbstate_tED2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev
  FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev
  FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev
  FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev
  FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev
  FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev
  FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcEC1EP15__locale_structj
  FUNC:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcEC1Ej
  FUNC:_ZNSt7collateIcEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcEC2EP15__locale_structj
  FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcEC2Ej
  FUNC:_ZNSt7collateIcEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcED0Ev
  FUNC:_ZNSt7collateIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcED1Ev
  FUNC:_ZNSt7collateIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIcED2Ev
  FUNC:_ZNSt7collateIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwEC1EP15__locale_structj
  FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwEC1Ej
  FUNC:_ZNSt7collateIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwEC2EP15__locale_structj
  FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwEC2Ej
  FUNC:_ZNSt7collateIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwED0Ev
  FUNC:_ZNSt7collateIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwED1Ev
  FUNC:_ZNSt7collateIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7collateIwED2Ev
  FUNC:_ZNSt7collateIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
! FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
- FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
- FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
- FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
- FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
! FUNC:_ZNSt8bad_castD0Ev
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8bad_castD1Ev
  FUNC:_ZNSt8bad_castD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8bad_castD2Ev
  FUNC:_ZNSt8bad_castD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base13_M_grow_wordsEib
  FUNC:_ZNSt8ios_base13_M_grow_wordsEib@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base15sync_with_stdioEb
  FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE
  FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCXX_3.4.6
- FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi
  FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv
  FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCXX_3.4.6
- FUNC:_ZNSt8ios_base4InitC1Ev
  FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base4InitC2Ev
  FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base4InitD1Ev
  FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base4InitD2Ev
  FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base5imbueERKSt6locale
  FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base6xallocEv
  FUNC:_ZNSt8ios_base6xallocEv@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base7_M_initEv
  FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base7_M_moveERS_
  FUNC:_ZNSt8ios_base7_M_moveERS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7_M_swapERS_
  FUNC:_ZNSt8ios_base7_M_swapERS_@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code
  FUNC:_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code
  FUNC:_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11C2EPKcRKSt10error_code
  FUNC:_ZNSt8ios_base7failureB5cxx11C2EPKcRKSt10error_code@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code
  FUNC:_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11D0Ev
  FUNC:_ZNSt8ios_base7failureB5cxx11D0Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11D1Ev
  FUNC:_ZNSt8ios_base7failureB5cxx11D1Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureB5cxx11D2Ev
  FUNC:_ZNSt8ios_base7failureB5cxx11D2Ev@@GLIBCXX_3.4.21
- FUNC:_ZNSt8ios_base7failureC1ERKSs
  FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base7failureC2ERKSs
  FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base7failureD0Ev
  FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base7failureD1Ev
  FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_base7failureD2Ev
  FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_baseC1Ev
  FUNC:_ZNSt8ios_baseC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_baseC2Ev
  FUNC:_ZNSt8ios_baseC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_baseD0Ev
  FUNC:_ZNSt8ios_baseD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_baseD1Ev
  FUNC:_ZNSt8ios_baseD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8ios_baseD2Ev
  FUNC:_ZNSt8ios_baseD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj
  FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcEC1Ej
  FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj
  FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcEC2Ej
  FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcED0Ev
  FUNC:_ZNSt8messagesIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcED1Ev
  FUNC:_ZNSt8messagesIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIcED2Ev
  FUNC:_ZNSt8messagesIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj
  FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwEC1Ej
  FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj
  FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwEC2Ej
  FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwED0Ev
  FUNC:_ZNSt8messagesIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwED1Ev
  FUNC:_ZNSt8messagesIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8messagesIwED2Ev
  FUNC:_ZNSt8messagesIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct
  FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj
  FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj
  FUNC:_ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcEC1Ej
  FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj
  FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj
  FUNC:_ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcEC2Ej
  FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcED0Ev
  FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcED1Ev
  FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIcED2Ev
  FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct
  FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj
  FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj
  FUNC:_ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwEC1Ej
  FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj
  FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj
  FUNC:_ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwEC2Ej
  FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwED0Ev
  FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwED1Ev
  FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8numpunctIwED2Ev
  FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjEC1ERKS0_
  FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjEC1Ej
  FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjEC2ERKS0_
  FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjEC2Ej
  FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjED1Ev
  FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjED2Ev
  FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt8valarrayIjEixEj
  FUNC:_ZNSt8valarrayIjEixEj@@GLIBCXX_3.4
- FUNC:_ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order
  FUNC:_ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.14
- FUNC:_ZNSt9__atomic011atomic_flag5clearESt12memory_order
  FUNC:_ZNSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.14
- FUNC:_ZNSt9__cxx199815_List_node_base10_M_reverseEv
  FUNC:_ZNSt9__cxx199815_List_node_base10_M_reverseEv@@GLIBCXX_3.4.14
- FUNC:_ZNSt9__cxx199815_List_node_base11_M_transferEPS0_S1_
  FUNC:_ZNSt9__cxx199815_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.14
- FUNC:_ZNSt9__cxx199815_List_node_base4hookEPS0_
  FUNC:_ZNSt9__cxx199815_List_node_base4hookEPS0_@@GLIBCXX_3.4.10
- FUNC:_ZNSt9__cxx199815_List_node_base4swapERS0_S1_
  FUNC:_ZNSt9__cxx199815_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.10
- FUNC:_ZNSt9__cxx199815_List_node_base6unhookEv
  FUNC:_ZNSt9__cxx199815_List_node_base6unhookEv@@GLIBCXX_3.4.10
- FUNC:_ZNSt9__cxx199815_List_node_base7_M_hookEPS0_
  FUNC:_ZNSt9__cxx199815_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
- FUNC:_ZNSt9__cxx199815_List_node_base7reverseEv
  FUNC:_ZNSt9__cxx199815_List_node_base7reverseEv@@GLIBCXX_3.4.10
- FUNC:_ZNSt9__cxx199815_List_node_base8transferEPS0_S1_
  FUNC:_ZNSt9__cxx199815_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.10
- FUNC:_ZNSt9__cxx199815_List_node_base9_M_unhookEv
  FUNC:_ZNSt9__cxx199815_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
- FUNC:_ZNSt9bad_allocD0Ev
  FUNC:_ZNSt9bad_allocD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9bad_allocD1Ev
  FUNC:_ZNSt9bad_allocD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9bad_allocD2Ev
  FUNC:_ZNSt9bad_allocD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4moveEOS2_
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4moveEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4moveERS2_
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4moveERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4swapERS2_
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE9set_rdbufEPSt15basic_streambufIcS1_E
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE9set_rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4moveEOS2_
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4moveEOS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4moveERS2_
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4moveERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4swapERS2_
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE9set_rdbufEPSt15basic_streambufIwS1_E
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE9set_rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4.21
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9exceptionD0Ev
  FUNC:_ZNSt9exceptionD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9exceptionD1Ev
  FUNC:_ZNSt9exceptionD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9exceptionD2Ev
  FUNC:_ZNSt9exceptionD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9strstream3strEv
  FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
- FUNC:_ZNSt9strstream6freezeEb
  FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode
  FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamC1Ev
  FUNC:_ZNSt9strstreamC1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode
  FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamC2Ev
  FUNC:_ZNSt9strstreamC2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamD0Ev
  FUNC:_ZNSt9strstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamD1Ev
  FUNC:_ZNSt9strstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9strstreamD2Ev
  FUNC:_ZNSt9strstreamD2Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9type_infoD0Ev
  FUNC:_ZNSt9type_infoD0Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9type_infoD1Ev
  FUNC:_ZNSt9type_infoD1Ev@@GLIBCXX_3.4
- FUNC:_ZNSt9type_infoD2Ev
  FUNC:_ZNSt9type_infoD2Ev@@GLIBCXX_3.4
  FUNC:_ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.11
  FUNC:_ZNVSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.11
- FUNC:_ZSt10from_charsPKcS0_RdSt12chars_format
  FUNC:_ZSt10from_charsPKcS0_RdSt12chars_format@@GLIBCXX_3.4.29
- FUNC:_ZSt10from_charsPKcS0_ReSt12chars_format
  FUNC:_ZSt10from_charsPKcS0_ReSt12chars_format@@GLIBCXX_3.4.29
- FUNC:_ZSt10from_charsPKcS0_RfSt12chars_format
  FUNC:_ZSt10from_charsPKcS0_RfSt12chars_format@@GLIBCXX_3.4.29
- FUNC:_ZSt10unexpectedv
  FUNC:_ZSt10unexpectedv@@GLIBCXX_3.4
- FUNC:_ZSt11_Hash_bytesPKvjj
  FUNC:_ZSt11_Hash_bytesPKvjj@@CXXABI_1.3.5
- FUNC:_ZSt13get_terminatev
  FUNC:_ZSt13get_terminatev@@GLIBCXX_3.4.20
- FUNC:_ZSt13set_terminatePFvvE
  FUNC:_ZSt13set_terminatePFvvE@@GLIBCXX_3.4
- FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct
  FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct
  FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct
  FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
- FUNC:_ZSt14get_unexpectedv
  FUNC:_ZSt14get_unexpectedv@@GLIBCXX_3.4.20
- FUNC:_ZSt14set_unexpectedPFvvE
  FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCXX_3.4
- FUNC:_ZSt15_Fnv_hash_bytesPKvjj
  FUNC:_ZSt15_Fnv_hash_bytesPKvjj@@CXXABI_1.3.5
- FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb0EEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb0EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb1EEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb1EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb0EEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb0EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb1EEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb1EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIcEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIwEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIcEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIwEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIcEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIwEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb0EEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb0EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb1EEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb1EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb0EEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb0EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb1EEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb1EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt11__timepunctIcEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt11__timepunctIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt11__timepunctIwEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt11__timepunctIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt5ctypeIcEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt5ctypeIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt5ctypeIwEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt5ctypeIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7codecvtIcc11__mbstate_tEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7codecvtIcc11__mbstate_tEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7codecvtIwc11__mbstate_tEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7codecvtIwc11__mbstate_tEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7collateIcEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7collateIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7collateIwEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7collateIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8messagesIcEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8messagesIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8messagesIwEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8messagesIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8numpunctIcEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8numpunctIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8numpunctIwEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8numpunctIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15__try_use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale
  FUNC:_ZSt15__try_use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
- FUNC:_ZSt15future_categoryv
  FUNC:_ZSt15future_categoryv@@GLIBCXX_3.4.15
- FUNC:_ZSt15get_new_handlerv
  FUNC:_ZSt15get_new_handlerv@@GLIBCXX_3.4.20
- FUNC:_ZSt15set_new_handlerPFvvE
  FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCXX_3.4
- FUNC:_ZSt15system_categoryv
  FUNC:_ZSt15system_categoryv@@GLIBCXX_3.4.11
- FUNC:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i
  FUNC:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@@GLIBCXX_3.4.9
- FUNC:_ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i
  FUNC:_ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i@@GLIBCXX_3.4.9
- FUNC:_ZSt16__throw_bad_castv
  FUNC:_ZSt16__throw_bad_castv@@GLIBCXX_3.4
- FUNC:_ZSt16generic_categoryv
  FUNC:_ZSt16generic_categoryv@@GLIBCXX_3.4.11
- FUNC:_ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_
  FUNC:_ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_@@GLIBCXX_3.4.6
- FUNC:_ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_
  FUNC:_ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_@@GLIBCXX_3.4.6
- FUNC:_ZSt17__istream_extractIwSt11char_traitsIwEEvRSt13basic_istreamIT_T0_EPS3_i
  FUNC:_ZSt17__istream_extractIwSt11char_traitsIwEEvRSt13basic_istreamIT_T0_EPS3_i@@GLIBCXX_3.4.29
- FUNC:_ZSt17__istream_extractRSiPci
  FUNC:_ZSt17__istream_extractRSiPci@@GLIBCXX_3.4.29
- FUNC:_ZSt17__throw_bad_allocv
  FUNC:_ZSt17__throw_bad_allocv@@GLIBCXX_3.4
- FUNC:_ZSt17__verify_groupingPKcjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
  FUNC:_ZSt17__verify_groupingPKcjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- FUNC:_ZSt17__verify_groupingPKcjRKSs
  FUNC:_ZSt17__verify_groupingPKcjRKSs@@GLIBCXX_3.4.10
- FUNC:_ZSt17current_exceptionv
  FUNC:_ZSt17current_exceptionv@@CXXABI_1.3.3
- FUNC:_ZSt17iostream_categoryv
  FUNC:_ZSt17iostream_categoryv@@GLIBCXX_3.4.21
- FUNC:_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE
  FUNC:_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE@@CXXABI_1.3.3
- FUNC:_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base
  FUNC:_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
- FUNC:_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base
  FUNC:_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
- FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base
  FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
- FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
- FUNC:_ZSt18__throw_bad_typeidv
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
- FUNC:_ZSt18uncaught_exceptionv
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
- FUNC:_ZSt19__throw_ios_failurePKc
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
- FUNC:_ZSt19__throw_ios_failurePKci
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
- FUNC:_ZSt19__throw_logic_errorPKc
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt19__throw_range_errorPKc
  FUNC:_ZSt19__throw_range_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt19__throw_regex_errorNSt15regex_constants10error_typeE
  FUNC:_ZSt19__throw_regex_errorNSt15regex_constants10error_typeE@@GLIBCXX_3.4.15
- FUNC:_ZSt19uncaught_exceptionsv
  FUNC:_ZSt19uncaught_exceptionsv@@GLIBCXX_3.4.22
- FUNC:_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_
  FUNC:_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_@@GLIBCXX_3.4
- FUNC:_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_
  FUNC:_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
- FUNC:_ZSt20__throw_domain_errorPKc
  FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt20__throw_future_errori
  FUNC:_ZSt20__throw_future_errori@@GLIBCXX_3.4.14
- FUNC:_ZSt20__throw_length_errorPKc
  FUNC:_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt20__throw_out_of_rangePKc
  FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCXX_3.4
- FUNC:_ZSt20__throw_system_errori
  FUNC:_ZSt20__throw_system_errori@@GLIBCXX_3.4.11
- FUNC:_ZSt20__to_chars_float16_tPcS_fSt12chars_format
  FUNC:_ZSt20__to_chars_float16_tPcS_fSt12chars_format@@GLIBCXX_3.4.31
- FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_
  FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
- FUNC:_ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb
  FUNC:_ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@@GLIBCXX_3.4.9
- FUNC:_ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb
  FUNC:_ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@@GLIBCXX_3.4.9
- FUNC:_ZSt21__glibcxx_assert_failPKciS0_S0_
  FUNC:_ZSt21__glibcxx_assert_failPKciS0_S0_@@GLIBCXX_3.4.30
- FUNC:_ZSt21__throw_bad_exceptionv
  FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCXX_3.4
- FUNC:_ZSt21__throw_runtime_errorPKc
  FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format
  FUNC:_ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format@@GLIBCXX_3.4.31
- FUNC:_ZSt21ios_base_library_initv
  FUNC:_ZSt21ios_base_library_initv@@GLIBCXX_3.4.32
- FUNC:_ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format
  FUNC:_ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format@@GLIBCXX_3.4.31
- FUNC:_ZSt22__throw_overflow_errorPKc
  FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format
  FUNC:_ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format@@GLIBCXX_3.4.31
- FUNC:_ZSt23__throw_underflow_errorPKc
  FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCXX_3.4
- FUNC:_ZSt24__throw_invalid_argumentPKc
  FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCXX_3.4
- FUNC:_ZSt24__throw_out_of_range_fmtPKcz
  FUNC:_ZSt24__throw_out_of_range_fmtPKcz@@GLIBCXX_3.4.20
- FUNC:_ZSt25__throw_bad_function_callv
  FUNC:_ZSt25__throw_bad_function_callv@@GLIBCXX_3.4.14
- FUNC:_ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE
  FUNC:_ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE@@GLIBCXX_3.4.21
- FUNC:_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_
  FUNC:_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@@GLIBCXX_3.4
- FUNC:_ZSt28__throw_bad_array_new_lengthv
  FUNC:_ZSt28__throw_bad_array_new_lengthv@@GLIBCXX_3.4.29
- FUNC:_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_
  FUNC:_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@@GLIBCXX_3.4
- FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_
  FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_
  FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
  FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_
  FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
  FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_
  FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
  FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_
  FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
- FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
- FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@@GLIBCXX_3.4.21
- FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
- FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
- FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
- FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@@GLIBCXX_3.4.21
- FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
- FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
- FUNC:_ZSt8to_charsPcS_d
  FUNC:_ZSt8to_charsPcS_d@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_dSt12chars_format
  FUNC:_ZSt8to_charsPcS_dSt12chars_format@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_dSt12chars_formati
  FUNC:_ZSt8to_charsPcS_dSt12chars_formati@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_e
  FUNC:_ZSt8to_charsPcS_e@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_eSt12chars_format
  FUNC:_ZSt8to_charsPcS_eSt12chars_format@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_eSt12chars_formati
  FUNC:_ZSt8to_charsPcS_eSt12chars_formati@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_f
  FUNC:_ZSt8to_charsPcS_f@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_fSt12chars_format
  FUNC:_ZSt8to_charsPcS_fSt12chars_format@@GLIBCXX_3.4.29
- FUNC:_ZSt8to_charsPcS_fSt12chars_formati
  FUNC:_ZSt8to_charsPcS_fSt12chars_formati@@GLIBCXX_3.4.29
- FUNC:_ZSt9has_facetINSt7__cxx1110moneypunctIcLb0EEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx1110moneypunctIcLb0EEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx1110moneypunctIwLb0EEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx1110moneypunctIwLb0EEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx117collateIcEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx117collateIcEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx117collateIwEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx117collateIwEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx118messagesIcEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx118messagesIcEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx118messagesIwEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx118messagesIwEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx118numpunctIcEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx118numpunctIcEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx118numpunctIwEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx118numpunctIwEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale
  FUNC:_ZSt9has_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale
  FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale
  FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale
  FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale
  FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale
  FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale
  FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale
  FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9terminatev
  FUNC:_ZSt9terminatev@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIcLb0EEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIcLb0EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIcLb1EEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIcLb1EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIwLb0EEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIwLb0EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIwLb1EEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIwLb1EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx117collateIcEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx117collateIcEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx117collateIwEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx117collateIwEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx118messagesIcEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx118messagesIcEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx118messagesIwEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx118messagesIwEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx118numpunctIcEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx118numpunctIcEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx118numpunctIwEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx118numpunctIwEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
- FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale
  FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
- FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCXX_3.4
- FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
- FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCXX_3.4
- FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCXX_3.4
- FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
- FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
- FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE
  FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
- FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
  FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
- FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E
  FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E
  FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E
  FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E
  FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E
  FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E
  FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCXX_3.4
- FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE
  FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
- FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
  FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
- FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_
  FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_@@GLIBCXX_3.4.21
- FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_
  FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_@@GLIBCXX_3.4.21
- FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_
  FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_@@GLIBCXX_3.4.21
- FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
  FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
- FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_
  FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
- FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_
  FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
- FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_
  FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_@@GLIBCXX_3.4.21
- FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_
  FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_@@GLIBCXX_3.4.21
- FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_
  FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_@@GLIBCXX_3.4.21
- FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_
  FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
- FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_
  FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
- FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_
  FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
- FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCXX_3.4
- FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCXX_3.4
- FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCXX_3.4
- FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
- FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE
  FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
- FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E
  FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
- FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E
  FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E
  FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E
  FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E
  FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E
  FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E
  FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
- FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE
  FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
- FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E
  FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
- FUNC:_ZThn8_NSdD0Ev
  FUNC:_ZThn8_NSdD0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSdD1Ev
  FUNC:_ZThn8_NSdD1Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZThn8_NSt9strstreamD0Ev
  FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZThn8_NSt9strstreamD1Ev
  FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSdD0Ev
  FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSdD1Ev
  FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSiD0Ev
  FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSiD1Ev
  FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSoD0Ev
  FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSoD1Ev
  FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt10istrstreamD0Ev
  FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt10istrstreamD1Ev
  FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev
  FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev
  FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
- FUNC:_ZTv0_n12_NSt9strstreamD0Ev
  FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCXX_3.4
- FUNC:_ZTv0_n12_NSt9strstreamD1Ev
  FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCXX_3.4
- FUNC:_ZdaPv
  FUNC:_ZdaPv@@GLIBCXX_3.4
- FUNC:_ZdaPvRKSt9nothrow_t
  FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCXX_3.4
- FUNC:_ZdaPvSt11align_val_t
  FUNC:_ZdaPvSt11align_val_t@@CXXABI_1.3.11
- FUNC:_ZdaPvSt11align_val_tRKSt9nothrow_t
  FUNC:_ZdaPvSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
- FUNC:_ZdaPvj
  FUNC:_ZdaPvj@@CXXABI_1.3.9
- FUNC:_ZdaPvjSt11align_val_t
  FUNC:_ZdaPvjSt11align_val_t@@CXXABI_1.3.11
- FUNC:_ZdlPv
  FUNC:_ZdlPv@@GLIBCXX_3.4
- FUNC:_ZdlPvRKSt9nothrow_t
  FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCXX_3.4
- FUNC:_ZdlPvSt11align_val_t
  FUNC:_ZdlPvSt11align_val_t@@CXXABI_1.3.11
- FUNC:_ZdlPvSt11align_val_tRKSt9nothrow_t
  FUNC:_ZdlPvSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
- FUNC:_ZdlPvj
  FUNC:_ZdlPvj@@CXXABI_1.3.9
- FUNC:_ZdlPvjSt11align_val_t
  FUNC:_ZdlPvjSt11align_val_t@@CXXABI_1.3.11
- FUNC:_Znaj
  FUNC:_Znaj@@GLIBCXX_3.4
- FUNC:_ZnajRKSt9nothrow_t
  FUNC:_ZnajRKSt9nothrow_t@@GLIBCXX_3.4
- FUNC:_ZnajSt11align_val_t
  FUNC:_ZnajSt11align_val_t@@CXXABI_1.3.11
- FUNC:_ZnajSt11align_val_tRKSt9nothrow_t
  FUNC:_ZnajSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
- FUNC:_Znwj
  FUNC:_Znwj@@GLIBCXX_3.4
- FUNC:_ZnwjRKSt9nothrow_t
  FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4
- FUNC:_ZnwjSt11align_val_t
  FUNC:_ZnwjSt11align_val_t@@CXXABI_1.3.11
- FUNC:_ZnwjSt11align_val_tRKSt9nothrow_t
  FUNC:_ZnwjSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
- FUNC:__atomic_flag_for_address
  FUNC:__atomic_flag_for_address@@GLIBCXX_3.4.11
- FUNC:__atomic_flag_wait_explicit
  FUNC:__atomic_flag_wait_explicit@@GLIBCXX_3.4.11
- FUNC:__cxa_allocate_dependent_exception
  FUNC:__cxa_allocate_dependent_exception@@CXXABI_1.3.6
- FUNC:__cxa_allocate_exception
  FUNC:__cxa_allocate_exception@@CXXABI_1.3
- FUNC:__cxa_bad_cast
  FUNC:__cxa_bad_cast@@CXXABI_1.3
- FUNC:__cxa_bad_typeid
  FUNC:__cxa_bad_typeid@@CXXABI_1.3
- FUNC:__cxa_begin_catch
  FUNC:__cxa_begin_catch@@CXXABI_1.3
- FUNC:__cxa_call_terminate
  FUNC:__cxa_call_terminate@@CXXABI_1.3.15
- FUNC:__cxa_call_unexpected
  FUNC:__cxa_call_unexpected@@CXXABI_1.3
- FUNC:__cxa_current_exception_type
  FUNC:__cxa_current_exception_type@@CXXABI_1.3
- FUNC:__cxa_deleted_virtual
  FUNC:__cxa_deleted_virtual@@CXXABI_1.3.6
- FUNC:__cxa_demangle
  FUNC:__cxa_demangle@@CXXABI_1.3
- FUNC:__cxa_end_catch
  FUNC:__cxa_end_catch@@CXXABI_1.3
- FUNC:__cxa_free_dependent_exception
  FUNC:__cxa_free_dependent_exception@@CXXABI_1.3.6
- FUNC:__cxa_free_exception
  FUNC:__cxa_free_exception@@CXXABI_1.3
- FUNC:__cxa_get_exception_ptr
  FUNC:__cxa_get_exception_ptr@@CXXABI_1.3.1
- FUNC:__cxa_get_globals
  FUNC:__cxa_get_globals@@CXXABI_1.3
- FUNC:__cxa_get_globals_fast
  FUNC:__cxa_get_globals_fast@@CXXABI_1.3
- FUNC:__cxa_guard_abort
  FUNC:__cxa_guard_abort@@CXXABI_1.3
- FUNC:__cxa_guard_acquire
  FUNC:__cxa_guard_acquire@@CXXABI_1.3
- FUNC:__cxa_guard_release
  FUNC:__cxa_guard_release@@CXXABI_1.3
- FUNC:__cxa_init_primary_exception
  FUNC:__cxa_init_primary_exception@@CXXABI_1.3.11
- FUNC:__cxa_pure_virtual
  FUNC:__cxa_pure_virtual@@CXXABI_1.3
- FUNC:__cxa_rethrow
  FUNC:__cxa_rethrow@@CXXABI_1.3
- FUNC:__cxa_thread_atexit
  FUNC:__cxa_thread_atexit@@CXXABI_1.3.7
- FUNC:__cxa_throw
  FUNC:__cxa_throw@@CXXABI_1.3
- FUNC:__cxa_throw_bad_array_length
  FUNC:__cxa_throw_bad_array_length@@CXXABI_1.3.8
- FUNC:__cxa_throw_bad_array_new_length
  FUNC:__cxa_throw_bad_array_new_length@@CXXABI_1.3.8
- FUNC:__cxa_tm_cleanup
  FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
- FUNC:__cxa_vec_cctor
  FUNC:__cxa_vec_cctor@@CXXABI_1.3
- FUNC:__cxa_vec_cleanup
  FUNC:__cxa_vec_cleanup@@CXXABI_1.3
- FUNC:__cxa_vec_ctor
  FUNC:__cxa_vec_ctor@@CXXABI_1.3
- FUNC:__cxa_vec_delete
- FUNC:__cxa_vec_delete2
  FUNC:__cxa_vec_delete2@@CXXABI_1.3
- FUNC:__cxa_vec_delete3
  FUNC:__cxa_vec_delete3@@CXXABI_1.3
  FUNC:__cxa_vec_delete@@CXXABI_1.3
- FUNC:__cxa_vec_dtor
  FUNC:__cxa_vec_dtor@@CXXABI_1.3
- FUNC:__cxa_vec_new
- FUNC:__cxa_vec_new2
  FUNC:__cxa_vec_new2@@CXXABI_1.3
- FUNC:__cxa_vec_new3
  FUNC:__cxa_vec_new3@@CXXABI_1.3
  FUNC:__cxa_vec_new@@CXXABI_1.3
- FUNC:__dynamic_cast
  FUNC:__dynamic_cast@@CXXABI_1.3
- FUNC:__gxx_personality_v0
  FUNC:__gxx_personality_v0@@CXXABI_1.3
- FUNC:__once_proxy
  FUNC:__once_proxy@@GLIBCXX_3.4.11
  FUNC:acosl@GLIBCXX_3.4.3
  FUNC:asinl@GLIBCXX_3.4.3
  FUNC:atan2l@GLIBCXX_3.4
  FUNC:atanl@GLIBCXX_3.4.3
- FUNC:atomic_flag_clear_explicit
  FUNC:atomic_flag_clear_explicit@@GLIBCXX_3.4.11
- FUNC:atomic_flag_test_and_set_explicit
  FUNC:atomic_flag_test_and_set_explicit@@GLIBCXX_3.4.11
  FUNC:ceill@GLIBCXX_3.4.3
  FUNC:coshl@GLIBCXX_3.4
--- 1,4589 ----
  FUNC:_ZGTtNKSt11logic_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt13bad_exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13bad_exceptionD1Ev@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt13runtime_error4whatEv@@GLIBCXX_3.4.22
  FUNC:_ZGTtNKSt9exception4whatEv@@CXXABI_1.3.10
  FUNC:_ZGTtNKSt9exceptionD1Ev@@CXXABI_1.3.10
  FUNC:_ZGTtNSt11logic_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11logic_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11logic_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11logic_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11logic_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt11range_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12domain_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12length_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt12out_of_rangeD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt13runtime_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt14overflow_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt15underflow_errorD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentC1EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentC2EPKc@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZGTtNSt16invalid_argumentD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZN10__cxxabiv116__enum_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv116__enum_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv116__enum_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__array_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__array_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__array_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__class_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__class_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__class_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__pbase_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__pbase_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv117__pbase_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv119__pointer_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv119__pointer_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv119__pointer_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv120__function_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv120__function_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv120__function_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv120__si_class_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv120__si_class_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv120__si_class_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv121__vmi_class_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv123__fundamental_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv123__fundamental_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv123__fundamental_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@@CXXABI_1.3
  FUNC:_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@@CXXABI_1.3
  FUNC:_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@@GLIBCXX_3.4.9
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.26
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
  FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_@@GLIBCXX_3.4.17
  FUNC:_ZN14__gnu_parallel9_Settings3getEv@@GLIBCXX_3.4.10
  FUNC:_ZN14__gnu_parallel9_Settings3setERS0_@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
  FUNC:_ZN9__gnu_cxx17__pool_alloc_base12_M_get_mutexEv@@GLIBCXX_3.4.2
  FUNC:_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj@@GLIBCXX_3.4.2
  FUNC:_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEj@@GLIBCXX_3.4.2
  FUNC:_ZN9__gnu_cxx18__exchange_and_addEPVii@@GLIBCXX_3.4
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4fileEv@@GLIBCXX_3.4.2
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EP8_IO_FILE@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EP8_IO_FILE@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4fileEv@@GLIBCXX_3.4.2
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EP8_IO_FILE@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EP8_IO_FILE@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4.10
  FUNC:_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.3
  FUNC:_ZN9__gnu_cxx6__poolILb0EE10_M_destroyEv@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb0EE13_M_initializeEv@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcj@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEjj@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb1EE10_M_destroyEv@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEPFvPvE@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv@@GLIBCXX_3.4.6
  FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_get_thread_idEv@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcj@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEjj@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx6__poolILb1EE21_M_destroy_thread_keyEPv@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx9__freeresEv@@CXXABI_1.3.10
  FUNC:_ZN9__gnu_cxx9free_list6_M_getEj@@GLIBCXX_3.4.4
  FUNC:_ZN9__gnu_cxx9free_list8_M_clearEv@@GLIBCXX_3.4.4
  FUNC:_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv120__function_type_info15__is_function_pEv@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@@CXXABI_1.3
  FUNC:_ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@@CXXABI_1.3
  FUNC:_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv@@GLIBCXX_3.4.10
  FUNC:_ZNK11__gnu_debug16_Error_formatter8_M_errorEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@@GLIBCXX_3.4
  FUNC:_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@@GLIBCXX_3.4
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKRSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.15
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4cendEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5crendEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.15
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6cbeginEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7crbeginEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCXX_3.4
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNKSi6gcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSi6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSo6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCXX_3.4
  FUNC:_ZNKSs12find_last_ofEcj@@GLIBCXX_3.4
  FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCXX_3.4
  FUNC:_ZNKSs13find_first_ofEcj@@GLIBCXX_3.4
  FUNC:_ZNKSs13get_allocatorEv@@GLIBCXX_3.4
  FUNC:_ZNKSs15_M_check_lengthEjjPKc@@GLIBCXX_3.4.5
  FUNC:_ZNKSs15_M_check_lengthEjjPKc@GLIBCXX_3.4
  FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCXX_3.4
  FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCXX_3.4
  FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCXX_3.4
  FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCXX_3.4
  FUNC:_ZNKSs2atEj@@GLIBCXX_3.4
  FUNC:_ZNKSs3endEv@@GLIBCXX_3.4
  FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCXX_3.4
  FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCXX_3.4
  FUNC:_ZNKSs4backEv@@GLIBCXX_3.4.15
  FUNC:_ZNKSs4cendEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSs4copyEPcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs4dataEv@@GLIBCXX_3.4
  FUNC:_ZNKSs4findEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs4findEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs4findERKSsj@@GLIBCXX_3.4
  FUNC:_ZNKSs4findEcj@@GLIBCXX_3.4
  FUNC:_ZNKSs4rendEv@@GLIBCXX_3.4
  FUNC:_ZNKSs4sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs5beginEv@@GLIBCXX_3.4
  FUNC:_ZNKSs5c_strEv@@GLIBCXX_3.4
  FUNC:_ZNKSs5crendEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSs5emptyEv@@GLIBCXX_3.4
  FUNC:_ZNKSs5frontEv@@GLIBCXX_3.4.15
  FUNC:_ZNKSs5rfindEPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs5rfindEPKcjj@@GLIBCXX_3.4
  FUNC:_ZNKSs5rfindERKSsj@@GLIBCXX_3.4
  FUNC:_ZNKSs5rfindEcj@@GLIBCXX_3.4
  FUNC:_ZNKSs6_M_repEv@@GLIBCXX_3.4
  FUNC:_ZNKSs6cbeginEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSs6lengthEv@@GLIBCXX_3.4
  FUNC:_ZNKSs6rbeginEv@@GLIBCXX_3.4
  FUNC:_ZNKSs6substrEjj@@GLIBCXX_3.4
  FUNC:_ZNKSs7_M_dataEv@@GLIBCXX_3.4
  FUNC:_ZNKSs7_M_iendEv@@GLIBCXX_3.4
  FUNC:_ZNKSs7compareEPKc@@GLIBCXX_3.4
  FUNC:_ZNKSs7compareERKSs@@GLIBCXX_3.4
  FUNC:_ZNKSs7compareEjjPKc@@GLIBCXX_3.4
  FUNC:_ZNKSs7compareEjjPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSs7compareEjjRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCXX_3.4
  FUNC:_ZNKSs7crbeginEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSs8_M_checkEjPKc@@GLIBCXX_3.4
  FUNC:_ZNKSs8_M_limitEjj@@GLIBCXX_3.4
  FUNC:_ZNKSs8capacityEv@@GLIBCXX_3.4
  FUNC:_ZNKSs8max_sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSs9_M_ibeginEv@@GLIBCXX_3.4
  FUNC:_ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSsixEj@@GLIBCXX_3.4
  FUNC:_ZNKSt10bad_typeid4whatEv@@GLIBCXX_3.4.9
  FUNC:_ZNKSt10error_code23default_error_conditionEv@@GLIBCXX_3.4.11
  FUNC:_ZNKSt10filesystem16filesystem_error4whatEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem16filesystem_error5path1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem16filesystem_error5path2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem18directory_iteratordeEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem28recursive_directory_iterator17recursion_pendingEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem28recursive_directory_iterator5depthEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem28recursive_directory_iterator7optionsEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem28recursive_directory_iteratordeEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path11parent_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path12has_filenameEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path13has_root_nameEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path13has_root_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path13relative_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path14root_directoryEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path15has_parent_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path16lexically_normalEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path17_M_find_extensionEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path17has_relative_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path18has_root_directoryEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path18lexically_relativeERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path19lexically_proximateERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path5_List13_Impl_deleterclEPNS1_5_ImplE@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path5_List3endEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path5_List5beginEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path7compareERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path7compareESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path9root_nameEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem4path9root_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error4whatEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error5path1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1116filesystem_error5path2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1118directory_iteratordeEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator17recursion_pendingEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator5depthEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iterator7optionsEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx1128recursive_directory_iteratordeEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path11parent_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path12has_filenameEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path13has_root_nameEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path13has_root_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path13relative_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path14root_directoryEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path15has_parent_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path16lexically_normalEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path17_M_find_extensionEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path17has_relative_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path18has_root_directoryEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path18lexically_relativeERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path19lexically_proximateERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path5_List13_Impl_deleterclEPNS2_5_ImplE@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path5_List3endEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path5_List5beginEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path7compareERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path7compareESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path9root_nameEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10filesystem7__cxx114path9root_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10lock_error4whatEv@@GLIBCXX_3.4.11
  FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE15_M_am_pm_formatEPPKc@@GLIBCXX_3.4.30
  FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE8_M_am_pmEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE15_M_am_pm_formatEPPKw@@GLIBCXX_3.4.30
  FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE8_M_am_pmEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt11logic_error4whatEv@@GLIBCXX_3.4
! FUNC:_ZNKSt12__basic_fileIcE13native_handleEv@@GLIBCXX_3.4.33
  FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt12bad_weak_ptr4whatEv@@GLIBCXX_3.4.15
  FUNC:_ZNKSt12future_error4whatEv@@GLIBCXX_3.4.14
  FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13bad_exception4whatEv@@GLIBCXX_3.4.9
  FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
  FUNC:_ZNKSt13random_device13_M_getentropyEv@@GLIBCXX_3.4.25
  FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
  FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
  FUNC:_ZNKSt14error_category10equivalentERKSt10error_codei@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.11
  FUNC:_ZNKSt14error_category23default_error_conditionEi@@GLIBCXX_3.4.11
  FUNC:_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15__exception_ptr13exception_ptrntEv@@CXXABI_1.3.3
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt16bad_array_length4whatEv@@CXXABI_1.3.8
  FUNC:_ZNKSt17bad_function_call4whatEv@@GLIBCXX_3.4.18
  FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19__codecvt_utf8_baseIwE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
  FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20__codecvt_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt20bad_array_new_length4whatEv@@CXXABI_1.3.8
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt25__codecvt_utf8_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3_V214error_category10_M_messageB5cxx11Ei@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3_V214error_category10_M_messageEi@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3_V214error_category10equivalentERKSt10error_codei@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3_V214error_category10equivalentEiRKSt15error_condition@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3_V214error_category23default_error_conditionEi@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3tr14hashINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclES6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3tr14hashINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEclES6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt3tr14hashIRKSbIwSt11char_traitsIwESaIwEEEclES6_@@GLIBCXX_3.4.10
  FUNC:_ZNKSt3tr14hashIRKSsEclES2_@@GLIBCXX_3.4.10
  FUNC:_ZNKSt3tr14hashISbIwSt11char_traitsIwESaIwEEEclES4_@@GLIBCXX_3.4.10
  FUNC:_ZNKSt3tr14hashISsEclESs@@GLIBCXX_3.4.10
  FUNC:_ZNKSt3tr14hashIeEclEe@@GLIBCXX_3.4.10
  FUNC:_ZNKSt4hashIRKSbIwSt11char_traitsIwESaIwEEEclES5_@@GLIBCXX_3.4.10
  FUNC:_ZNKSt4hashIRKSsEclES1_@@GLIBCXX_3.4.10
  FUNC:_ZNKSt4hashISbIwSt11char_traitsIwESaIwEEEclES3_@@GLIBCXX_3.4.10
  FUNC:_ZNKSt4hashISsEclESs@@GLIBCXX_3.4.10
  FUNC:_ZNKSt4hashISt10error_codeEclES0_@@GLIBCXX_3.4.11
  FUNC:_ZNKSt4hashIeEclEe@@GLIBCXX_3.4.10
  FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE13_M_widen_initEv@@GLIBCXX_3.4.11
  FUNC:_ZNKSt5ctypeIcE14_M_narrow_initEv@@GLIBCXX_3.4.11
  FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4
  FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4
  FUNC:_ZNKSt6chrono4tzdb11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6chrono4tzdb12current_zoneEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6chrono9time_zone15_M_get_sys_infoENS_10time_pointINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1EEEEEE@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6chrono9time_zone17_M_get_local_infoENS_10time_pointINS_7local_tENS_8durationIxSt5ratioILx1ELx1EEEEEE@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6chrono9tzdb_list14const_iteratordeEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6chrono9tzdb_list5beginEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6chrono9tzdb_list5frontEv@@GLIBCXX_3.4.31
  FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCXX_3.4
  FUNC:_ZNKSt6locale4nameB5cxx11Ev@@GLIBCXX_3.4.21
  FUNC:_ZNKSt6locale4nameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt6localeeqERKS_@@GLIBCXX_3.4
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE10neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE10pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11do_groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE11frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13do_neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13do_pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE13thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb0EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE10neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE10pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11do_groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE11frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13do_neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13do_pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE13thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIcLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE10neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE10pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11do_groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE11frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13do_neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13do_pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE13thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb0EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE10neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE10pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11do_groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE11frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13do_neg_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13do_pos_formatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE13thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_negative_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_positive_signEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEjjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4cendEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4copyEPcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5crendEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6cbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7crbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_checkEjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4cendEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5crendEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindERKS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6cbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7crbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE13get_allocatorEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4viewEv@@GLIBCXX_3.4.29
  FUNC:_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE10_M_compareEPKcS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE10do_compareEPKcS3_S3_S3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE12_M_transformEPcPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE12do_transformEPKcS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE4hashEPKcS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE7compareEPKcS3_S3_S3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE7do_hashEPKcS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIcE9transformEPKcS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE10_M_compareEPKwS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE10do_compareEPKwS3_S3_S3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE12_M_transformEPwPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE12do_transformEPKwS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE4hashEPKwS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE7compareEPKwS3_S3_S3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE7do_hashEPKwS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx117collateIwE9transformEPKwS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE18_M_convert_to_charERKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE3getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE5closeEi@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE6do_getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIcE8do_closeEi@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE18_M_convert_to_charERKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE3getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE5closeEi@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE6do_getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118messagesIwE8do_closeEi@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE11do_groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE11do_truenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE12do_falsenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE13decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE13thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE8truenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIcE9falsenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE11do_groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE11do_truenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE12do_falsenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE13decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE13thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE8groupingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE8truenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118numpunctIwE9falsenameEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSD_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSD_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basece@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basece@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewe@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewe@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE10do_unshiftERS0_PDuS3_RS3_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE5do_inERS0_PKDuS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE6do_outERS0_PKDiS4_RS4_PDuS6_RS6_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDiDu11__mbstate_tE9do_lengthERS0_PKDuS4_j@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE5do_inERS0_PKcS4_RS4_PDiS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE6do_outERS0_PKDiS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDic11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE10do_unshiftERS0_PDuS3_RS3_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE5do_inERS0_PKDuS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE6do_outERS0_PKDsS4_RS4_PDuS6_RS6_@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsDu11__mbstate_tE9do_lengthERS0_PKDuS4_j@@GLIBCXX_3.4.26
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE5do_inERS0_PKcS4_RS4_PDsS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE6do_outERS0_PKDsS4_RS4_PcS6_RS6_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIDsc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4.21
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4
  FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
  FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
  FUNC:_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEj@@GLIBCXX_3.4.18
  FUNC:_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEjjj@@GLIBCXX_3.4.18
  FUNC:_ZNKSt8bad_cast4whatEv@@GLIBCXX_3.4.9
  FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8ios_base7failureB5cxx114whatEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.14
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSC_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.26
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwRSt16__time_get_state@@GLIBCXX_3.4.30
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@@GLIBCXX_3.4.14
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSC_@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.26
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@@GLIBCXX_3.4.21
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
  FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCXX_3.4
  FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9bad_alloc4whatEv@@GLIBCXX_3.4.9
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvbEv@@GLIBCXX_3.4.21
  FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9exception4whatEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCXX_3.4
  FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9strstream6pcountEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCXX_3.4
  FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCXX_3.4
  FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCXX_3.4
  FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCXX_3.4
  FUNC:_ZNOSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNOSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4.29
  FUNC:_ZNSaIcEC1ERKS_@@GLIBCXX_3.4
  FUNC:_ZNSaIcEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIcEC2ERKS_@@GLIBCXX_3.4
  FUNC:_ZNSaIcEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIwEC1ERKS_@@GLIBCXX_3.4
  FUNC:_ZNSaIwEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIwEC2ERKS_@@GLIBCXX_3.4
  FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.16
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIN9__gnu_cxx17__normal_iteratorIPwS2_EEEES6_T_S8_RKS1_St20forward_iterator_tag@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPKwEEPwT_S7_RKS1_St20forward_iterator_tag@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS0_E@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EjwRKS1_@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.15
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.15
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEOS2_@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EESt16initializer_listIwE@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_St16initializer_listIwE@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEv@@GLIBCXX_3.4.29
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.17
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@@GLIBCXX_3.4.5
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ENS2_12__sv_wrapperERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_RKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_RKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ENS2_12__sv_wrapperERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_RKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_RKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEOS2_@@GLIBCXX_3.4.14
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE@@GLIBCXX_3.4.11
  FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4
  FUNC:_ZNSd4swapERSd@@GLIBCXX_3.4.21
  FUNC:_ZNSdC1EOSd@@GLIBCXX_3.4.21
  FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSdC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSdC2EOSd@@GLIBCXX_3.4.21
  FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSdC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSdD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSdD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSdD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSdaSEOSd@@GLIBCXX_3.4.21
  FUNC:_ZNSi10_M_extractIPvEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIbEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIdEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIeEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIfEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIjEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIlEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractImEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractItEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIxEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi10_M_extractIyEERSiRT_@@GLIBCXX_3.4.9
  FUNC:_ZNSi3getEPci@@GLIBCXX_3.4
  FUNC:_ZNSi3getEPcic@@GLIBCXX_3.4
  FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCXX_3.4
  FUNC:_ZNSi3getERc@@GLIBCXX_3.4
  FUNC:_ZNSi3getEv@@GLIBCXX_3.4
  FUNC:_ZNSi4peekEv@@GLIBCXX_3.4
  FUNC:_ZNSi4readEPci@@GLIBCXX_3.4
  FUNC:_ZNSi4swapERSi@@GLIBCXX_3.4.21
  FUNC:_ZNSi4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
  FUNC:_ZNSi5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
  FUNC:_ZNSi5tellgEv@@GLIBCXX_3.4
  FUNC:_ZNSi5ungetEv@@GLIBCXX_3.4
  FUNC:_ZNSi6ignoreEi@@GLIBCXX_3.4.5
  FUNC:_ZNSi6ignoreEi@GLIBCXX_3.4
  FUNC:_ZNSi6ignoreEii@@GLIBCXX_3.4
  FUNC:_ZNSi6ignoreEv@@GLIBCXX_3.4.5
  FUNC:_ZNSi6ignoreEv@GLIBCXX_3.4
  FUNC:_ZNSi6sentryC1ERSib@@GLIBCXX_3.4
  FUNC:_ZNSi6sentryC2ERSib@@GLIBCXX_3.4
  FUNC:_ZNSi7getlineEPci@@GLIBCXX_3.4
  FUNC:_ZNSi7getlineEPcic@@GLIBCXX_3.4
  FUNC:_ZNSi7putbackEc@@GLIBCXX_3.4
  FUNC:_ZNSi8readsomeEPci@@GLIBCXX_3.4
  FUNC:_ZNSiC1EOSi@@GLIBCXX_3.4.21
  FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSiC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSiC2EOSi@@GLIBCXX_3.4.21
  FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSiC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSiD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSiD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSiD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSiaSEOSi@@GLIBCXX_3.4.21
  FUNC:_ZNSirsEPFRSiS_E@@GLIBCXX_3.4
  FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
  FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
  FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSirsERPv@@GLIBCXX_3.4
  FUNC:_ZNSirsERb@@GLIBCXX_3.4
  FUNC:_ZNSirsERd@@GLIBCXX_3.4
  FUNC:_ZNSirsERe@@GLIBCXX_3.4
  FUNC:_ZNSirsERf@@GLIBCXX_3.4
  FUNC:_ZNSirsERi@@GLIBCXX_3.4
  FUNC:_ZNSirsERj@@GLIBCXX_3.4
  FUNC:_ZNSirsERl@@GLIBCXX_3.4
  FUNC:_ZNSirsERm@@GLIBCXX_3.4
  FUNC:_ZNSirsERs@@GLIBCXX_3.4
  FUNC:_ZNSirsERt@@GLIBCXX_3.4
  FUNC:_ZNSirsERx@@GLIBCXX_3.4
  FUNC:_ZNSirsERy@@GLIBCXX_3.4
  FUNC:_ZNSo3putEc@@GLIBCXX_3.4
  FUNC:_ZNSo4swapERSo@@GLIBCXX_3.4.21
  FUNC:_ZNSo5flushEv@@GLIBCXX_3.4
  FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
  FUNC:_ZNSo5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
  FUNC:_ZNSo5tellpEv@@GLIBCXX_3.4
  FUNC:_ZNSo5writeEPKci@@GLIBCXX_3.4
  FUNC:_ZNSo6sentryC1ERSo@@GLIBCXX_3.4
  FUNC:_ZNSo6sentryC2ERSo@@GLIBCXX_3.4
  FUNC:_ZNSo6sentryD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSo6sentryD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSo8_M_writeEPKci@@GLIBCXX_3.4
  FUNC:_ZNSo9_M_insertIPKvEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertIbEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertIdEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertIeEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertIlEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertImEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertIxEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSo9_M_insertIyEERSoT_@@GLIBCXX_3.4.9
  FUNC:_ZNSoC1EOSo@@GLIBCXX_3.4.21
  FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSoC1ERSd@@GLIBCXX_3.4.21
  FUNC:_ZNSoC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSoC2EOSo@@GLIBCXX_3.4.21
  FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSoC2ERSd@@GLIBCXX_3.4.21
  FUNC:_ZNSoC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSoD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSoD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSoD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSoaSEOSo@@GLIBCXX_3.4.21
  FUNC:_ZNSolsEDn@@GLIBCXX_3.4.26
  FUNC:_ZNSolsEPFRSoS_E@@GLIBCXX_3.4
  FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCXX_3.4
  FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCXX_3.4
  FUNC:_ZNSolsEPKv@@GLIBCXX_3.4
  FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  FUNC:_ZNSolsEb@@GLIBCXX_3.4
  FUNC:_ZNSolsEd@@GLIBCXX_3.4
  FUNC:_ZNSolsEe@@GLIBCXX_3.4
  FUNC:_ZNSolsEf@@GLIBCXX_3.4
  FUNC:_ZNSolsEi@@GLIBCXX_3.4
  FUNC:_ZNSolsEj@@GLIBCXX_3.4
  FUNC:_ZNSolsEl@@GLIBCXX_3.4
  FUNC:_ZNSolsEm@@GLIBCXX_3.4
  FUNC:_ZNSolsEs@@GLIBCXX_3.4
  FUNC:_ZNSolsEt@@GLIBCXX_3.4
  FUNC:_ZNSolsEx@@GLIBCXX_3.4
  FUNC:_ZNSolsEy@@GLIBCXX_3.4
  FUNC:_ZNSs10_S_compareEjj@@GLIBCXX_3.4.16
  FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
  FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag@@GLIBCXX_3.4.14
  FUNC:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag@@GLIBCXX_3.4.14
  FUNC:_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag@@GLIBCXX_3.4.14
  FUNC:_ZNSs12_S_empty_repEv@@GLIBCXX_3.4
  FUNC:_ZNSs12__sv_wrapperC1ESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSs12__sv_wrapperC2ESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCXX_3.4
  FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCXX_3.4
  FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCXX_3.4
  FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCXX_3.4
  FUNC:_ZNSs13shrink_to_fitEv@@GLIBCXX_3.4.14
  FUNC:_ZNSs14_M_replace_auxEjjjc@@GLIBCXX_3.4
  FUNC:_ZNSs15_M_replace_safeEjjPKcj@@GLIBCXX_3.4
  FUNC:_ZNSs17_S_to_string_viewESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSs18_S_construct_aux_2EjcRKSaIcE@@GLIBCXX_3.4.14
  FUNC:_ZNSs2atEj@@GLIBCXX_3.4
  FUNC:_ZNSs3endEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep12_S_empty_repEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep26_M_set_length_and_sharableEj@@GLIBCXX_3.4.5
  FUNC:_ZNSs4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCXX_3.4
  FUNC:_ZNSs4_Rep9_S_createEjjRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSs4backEv@@GLIBCXX_3.4.15
  FUNC:_ZNSs4dataEv@@GLIBCXX_3.4.26
  FUNC:_ZNSs4rendEv@@GLIBCXX_3.4
  FUNC:_ZNSs4swapERSs@@GLIBCXX_3.4
  FUNC:_ZNSs5beginEv@@GLIBCXX_3.4
  FUNC:_ZNSs5clearEv@@GLIBCXX_3.4
  FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCXX_3.4
  FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCXX_3.4
  FUNC:_ZNSs5eraseEjj@@GLIBCXX_3.4
  FUNC:_ZNSs5frontEv@@GLIBCXX_3.4.15
  FUNC:_ZNSs6appendEPKc@@GLIBCXX_3.4
  FUNC:_ZNSs6appendEPKcj@@GLIBCXX_3.4
  FUNC:_ZNSs6appendERKSs@@GLIBCXX_3.4
  FUNC:_ZNSs6appendERKSsjj@@GLIBCXX_3.4
  FUNC:_ZNSs6appendESt16initializer_listIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSs6appendEjc@@GLIBCXX_3.4
  FUNC:_ZNSs6assignEOSs@@GLIBCXX_3.4.14
  FUNC:_ZNSs6assignEPKc@@GLIBCXX_3.4
  FUNC:_ZNSs6assignEPKcj@@GLIBCXX_3.4
  FUNC:_ZNSs6assignERKSs@@GLIBCXX_3.4
  FUNC:_ZNSs6assignERKSsjj@@GLIBCXX_3.4
  FUNC:_ZNSs6assignESt16initializer_listIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSs6assignEjc@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEESt16initializer_listIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEjPKc@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEjPKcj@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEjRKSs@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEjRKSsjj@@GLIBCXX_3.4
  FUNC:_ZNSs6insertEjjc@@GLIBCXX_3.4
  FUNC:_ZNSs6rbeginEv@@GLIBCXX_3.4
  FUNC:_ZNSs6resizeEj@@GLIBCXX_3.4
  FUNC:_ZNSs6resizeEjc@@GLIBCXX_3.4
  FUNC:_ZNSs7_M_copyEPcPKcj@@GLIBCXX_3.4.5
  FUNC:_ZNSs7_M_copyEPcPKcj@GLIBCXX_3.4
  FUNC:_ZNSs7_M_dataEPc@@GLIBCXX_3.4
  FUNC:_ZNSs7_M_leakEv@@GLIBCXX_3.4
  FUNC:_ZNSs7_M_moveEPcPKcj@@GLIBCXX_3.4.5
  FUNC:_ZNSs7_M_moveEPcPKcj@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_St16initializer_listIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEjjPKc@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEjjPKcj@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEjjRKSs@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4
  FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4
  FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4
  FUNC:_ZNSs7reserveEv@@GLIBCXX_3.4.29
  FUNC:_ZNSs8pop_backEv@@GLIBCXX_3.4.17
  FUNC:_ZNSs9_M_assignEPcjc@@GLIBCXX_3.4.5
  FUNC:_ZNSs9_M_assignEPcjc@GLIBCXX_3.4
  FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4
  FUNC:_ZNSs9push_backEc@@GLIBCXX_3.4
  FUNC:_ZNSsC1ENSs12__sv_wrapperERKSaIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSsC1EOSs@@GLIBCXX_3.4.14
  FUNC:_ZNSsC1EOSsRKSaIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1ERKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSsC1ERKSsRKSaIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSsC1ERKSsjRKSaIcE@@GLIBCXX_3.4.23
  FUNC:_ZNSsC1ERKSsjj@@GLIBCXX_3.4
  FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2ENSs12__sv_wrapperERKSaIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
  FUNC:_ZNSsC2EOSsRKSaIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSsC2ERKSsRKSaIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSsC2ERKSsjRKSaIcE@@GLIBCXX_3.4.23
  FUNC:_ZNSsC2ERKSsjj@@GLIBCXX_3.4
  FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
  FUNC:_ZNSsD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSsD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSsaSEOSs@@GLIBCXX_3.4.14
  FUNC:_ZNSsaSEPKc@@GLIBCXX_3.4
  FUNC:_ZNSsaSERKSs@@GLIBCXX_3.4
  FUNC:_ZNSsaSESt16initializer_listIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSsaSEc@@GLIBCXX_3.4
  FUNC:_ZNSsixEj@@GLIBCXX_3.4
  FUNC:_ZNSspLEPKc@@GLIBCXX_3.4
  FUNC:_ZNSspLERKSs@@GLIBCXX_3.4
  FUNC:_ZNSspLESt16initializer_listIcE@@GLIBCXX_3.4.11
  FUNC:_ZNSspLEc@@GLIBCXX_3.4
  FUNC:_ZNSt10_Sp_lockerC1EPKv@@GLIBCXX_3.4.21
  FUNC:_ZNSt10_Sp_lockerC1EPKvS1_@@GLIBCXX_3.4.21
  FUNC:_ZNSt10_Sp_lockerC2EPKv@@GLIBCXX_3.4.21
  FUNC:_ZNSt10_Sp_lockerC2EPKvS1_@@GLIBCXX_3.4.21
  FUNC:_ZNSt10_Sp_lockerD1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt10_Sp_lockerD2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc@@GLIBCXX_3.4
  FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10filesystem10equivalentERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10equivalentERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10equivalentERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10equivalentERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10hash_valueERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10remove_allERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10remove_allERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10remove_allERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem10remove_allERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11permissionsERKNS_4pathENS_5permsENS_12perm_optionsE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11permissionsERKNS_4pathENS_5permsENS_12perm_optionsERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11permissionsERKNS_7__cxx114pathENS_5permsENS_12perm_optionsE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11permissionsERKNS_7__cxx114pathENS_5permsENS_12perm_optionsERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11resize_fileERKNS_4pathEy@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11resize_fileERKNS_4pathEyRSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11resize_fileERKNS_7__cxx114pathEy@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem11resize_fileERKNS_7__cxx114pathEyRSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12copy_symlinkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathB5cxx11ERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathB5cxx11Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12current_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem12read_symlinkERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14create_symlinkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem14symlink_statusERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15hard_link_countERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathENSt6chrono10time_pointINS_12__file_clockENS3_8durationIxSt5ratioILx1ELx1000000000EEEEEE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathENSt6chrono10time_pointINS_12__file_clockENS3_8durationIxSt5ratioILx1ELx1000000000EEEEEERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathENSt6chrono10time_pointINS_12__file_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathENSt6chrono10time_pointINS_12__file_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem15last_write_timeERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_directoryERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16create_hard_linkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsRKNS_4pathES5_St10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsRKNS_4pathESt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorC1ERKSsSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsRKNS_4pathES5_St10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsRKNS_4pathESt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorC2ERKSsSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorD0Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorD1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16filesystem_errorD2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem16weakly_canonicalERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18create_directoriesERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18directory_iteratorC1ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18directory_iteratorC2ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem18directory_iteratorppEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem19temp_directory_pathB5cxx11ERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem19temp_directory_pathB5cxx11Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem19temp_directory_pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem19temp_directory_pathEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem24create_directory_symlinkERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iterator25disable_recursion_pendingEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iterator3popERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iterator3popEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorC1ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorC2ERKNS_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorD1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorD2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iteratoraSEOS0_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem28recursive_directory_iteratoraSERKS0_@@GLIBCXX_3.4.27
  FUNC:_ZNSt10filesystem28recursive_directory_iteratorppEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4copyERKNS_4pathES2_NS_12copy_optionsE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4copyERKNS_4pathES2_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4copyERKNS_7__cxx114pathES3_NS_12copy_optionsE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4copyERKNS_7__cxx114pathES3_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path14_M_split_cmptsEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path14_S_convert_locEPKcS2_RKSt6locale@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path15remove_filenameEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path16replace_filenameERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path17replace_extensionERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path5_ListC1ERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path5_ListC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path9_M_appendESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4path9_M_concatESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4pathaSERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4pathdVERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem4pathpLERKS0_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem5spaceERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem5spaceERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem5spaceERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem5spaceERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6removeERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6removeERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6removeERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6removeERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6renameERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6renameERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6renameERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6renameERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6statusERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6statusERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6statusERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem6statusERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1110hash_valueERKNS0_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_St10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESC_St10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD0Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1116filesystem_errorD2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1118directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorC1ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1118directory_iteratorppEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator25disable_recursion_pendingEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iterator9incrementERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC1ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathENS_17directory_optionsEPSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSEOS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratoraSERKS1_@@GLIBCXX_3.4.27
  FUNC:_ZNSt10filesystem7__cxx1128recursive_directory_iteratorppEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path14_M_split_cmptsEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path14_S_convert_locEPKcS3_RKSt6locale@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path15remove_filenameEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path16replace_filenameERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path17replace_extensionERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path5_ListC1ERKS2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path5_ListC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path9_M_appendESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114path9_M_concatESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114pathaSERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114pathdVERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem7__cxx114pathpLERKS1_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8absoluteERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8absoluteERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8absoluteERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8absoluteERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8is_emptyERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8is_emptyERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8is_emptyERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8is_emptyERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8relativeERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8relativeERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8relativeERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem8relativeERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9canonicalERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9canonicalERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9canonicalERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9copy_fileERKNS_4pathES2_NS_12copy_optionsE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9copy_fileERKNS_4pathES2_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9copy_fileERKNS_7__cxx114pathES3_NS_12copy_optionsE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9copy_fileERKNS_7__cxx114pathES3_NS_12copy_optionsERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9file_sizeERKNS_4pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9file_sizeERKNS_4pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9file_sizeERKNS_7__cxx114pathE@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9file_sizeERKNS_7__cxx114pathERSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9proximateERKNS_4pathES2_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9proximateERKNS_4pathES2_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9proximateERKNS_7__cxx114pathES3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt10filesystem9proximateERKNS_7__cxx114pathES3_RSt10error_code@@GLIBCXX_3.4.26
  FUNC:_ZNSt10istrstream3strEv@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC1EPc@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC1EPci@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC2EPc@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamC2EPci@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10istrstreamD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstream3strEv@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11char_traitsIcE2eqERKcS2_@@GLIBCXX_3.4.5
  FUNC:_ZNSt11char_traitsIcE2eqERKcS2_@GLIBCXX_3.4
  FUNC:_ZNSt11char_traitsIwE2eqERKwS2_@@GLIBCXX_3.4.5
  FUNC:_ZNSt11char_traitsIwE2eqERKwS2_@GLIBCXX_3.4
  FUNC:_ZNSt11logic_errorC1EOS_@@GLIBCXX_3.4.26
  FUNC:_ZNSt11logic_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt11logic_errorC1ERKS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt11logic_errorC2EOS_@@GLIBCXX_3.4.26
  FUNC:_ZNSt11logic_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt11logic_errorC2ERKS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt11logic_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11logic_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11logic_errorD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11logic_erroraSEOS_@@GLIBCXX_3.4.26
  FUNC:_ZNSt11logic_erroraSERKS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt11range_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt11range_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt11range_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11range_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt11range_errorD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt11regex_errorC1ENSt15regex_constants10error_typeE@@GLIBCXX_3.4.20
  FUNC:_ZNSt11regex_errorC2ENSt15regex_constants10error_typeE@@GLIBCXX_3.4.21
  FUNC:_ZNSt11regex_errorD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt11regex_errorD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt11regex_errorD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt11this_thread11__sleep_forENSt6chrono8durationIxSt5ratioILx1ELx1EEEENS1_IxS2_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.18
  FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE4fileEv@@GLIBCXX_3.4.1
  FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcE9showmanycEv@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
  FUNC:_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS4_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS4_@@GLIBCXX_3.4.28
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
  FUNC:_ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS4_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EOS6_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EOS6_@@GLIBCXX_3.4.28
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_@@GLIBCXX_3.4.28
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2Ev@@GLIBCXX_3.4.27
  FUNC:_ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEaSEOS5_@@GLIBCXX_3.4.26
! FUNC:_ZNSt12__sso_stringC1Ev@@GLIBCXX_3.4.34
! FUNC:_ZNSt12__sso_stringC2Ev@@GLIBCXX_3.4.34
! FUNC:_ZNSt12__sso_stringD1Ev@@GLIBCXX_3.4.34
! FUNC:_ZNSt12__sso_stringD2Ev@@GLIBCXX_3.4.34
  FUNC:_ZNSt12bad_weak_ptrD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12bad_weak_ptrD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12bad_weak_ptrD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIcEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIcEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIcEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIwEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIwEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIwEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIwEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12domain_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt12domain_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt12domain_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12domain_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12domain_errorD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12future_errorD0Ev@@GLIBCXX_3.4.14
  FUNC:_ZNSt12future_errorD1Ev@@GLIBCXX_3.4.14
  FUNC:_ZNSt12future_errorD2Ev@@GLIBCXX_3.4.14
  FUNC:_ZNSt12length_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt12length_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt12length_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12length_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12length_errorD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12out_of_rangeC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt12out_of_rangeC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12out_of_rangeD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt12strstreambuf3strEv@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC1Ei@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufC2Ei@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12strstreambufD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt12system_errorD0Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt12system_errorD1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt12system_errorD2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt13__future_base11_State_baseD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base11_State_baseD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base11_State_baseD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base12_Result_baseC1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base12_Result_baseC2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base12_Result_baseD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base12_Result_baseD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base12_Result_baseD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt13__future_base13_State_baseV211_Make_ready6_M_setEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt13__future_base19_Async_state_commonD0Ev@@GLIBCXX_3.4.17
  FUNC:_ZNSt13__future_base19_Async_state_commonD1Ev@@GLIBCXX_3.4.17
  FUNC:_ZNSt13__future_base19_Async_state_commonD2Ev@@GLIBCXX_3.4.17
  FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE14_M_get_ext_posER11__mbstate_t@@GLIBCXX_3.4.15
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE14_M_get_ext_posER11__mbstate_t@@GLIBCXX_3.4.15
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIPvEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIbEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIdEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIfEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIjEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIlEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractImEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractItEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIxEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIyEERS2_RT_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@@GLIBCXX_3.4.5
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@@GLIBCXX_3.4.5
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIPKvEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIxEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_@@GLIBCXX_3.4.9
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1ERSt14basic_iostreamIwS1_E@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2ERSt14basic_iostreamIwS1_E@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEDn@@GLIBCXX_3.4.26
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
  FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
  FUNC:_ZNSt13random_device14_M_init_pretr1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt13random_device14_M_init_pretr1ERKSs@@GLIBCXX_3.4.18
  FUNC:_ZNSt13random_device16_M_getval_pretr1Ev@@GLIBCXX_3.4.18
  FUNC:_ZNSt13random_device7_M_finiEv@@GLIBCXX_3.4.18
  FUNC:_ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt13random_device7_M_initERKSs@@GLIBCXX_3.4.18
  FUNC:_ZNSt13random_device9_M_getvalEv@@GLIBCXX_3.4.18
  FUNC:_ZNSt13runtime_errorC1EOS_@@GLIBCXX_3.4.26
  FUNC:_ZNSt13runtime_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt13runtime_errorC1ERKS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt13runtime_errorC2EOS_@@GLIBCXX_3.4.26
  FUNC:_ZNSt13runtime_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt13runtime_errorC2ERKS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt13runtime_erroraSEOS_@@GLIBCXX_3.4.26
  FUNC:_ZNSt13runtime_erroraSERKS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4.13
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEaSEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIcEC1ERKSsj@@GLIBCXX_3.4.26
  FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIcEC2ERKSsj@@GLIBCXX_3.4.26
  FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIwEC1ERKSsj@@GLIBCXX_3.4.26
  FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIwEC2ERKSsj@@GLIBCXX_3.4.26
  FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14error_categoryC1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt14error_categoryC2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt14error_categoryD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt14error_categoryD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt14error_categoryD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt14overflow_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt14overflow_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt14overflow_errorD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.14
  FUNC:_ZNSt15_List_node_base11_M_transferEPS_S0_@@GLIBCXX_3.4.14
  FUNC:_ZNSt15_List_node_base4hookEPS_@@GLIBCXX_3.4
  FUNC:_ZNSt15_List_node_base4swapERS_S0_@@GLIBCXX_3.4
  FUNC:_ZNSt15_List_node_base6unhookEv@@GLIBCXX_3.4
  FUNC:_ZNSt15_List_node_base7_M_hookEPS_@@GLIBCXX_3.4.14
  FUNC:_ZNSt15_List_node_base7reverseEv@@GLIBCXX_3.4
  FUNC:_ZNSt15_List_node_base8transferEPS_S0_@@GLIBCXX_3.4
  FUNC:_ZNSt15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
  FUNC:_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv@@CXXABI_1.3.13
  FUNC:_ZNSt15__exception_ptr13exception_ptr4swapERS0_@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv@@CXXABI_1.3.13
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1EPv@@CXXABI_1.3.11
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1ERKS0_@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrC1Ev@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrC2ERKS0_@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrC2Ev@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrD1Ev@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptrD2Ev@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptr13exception_ptraSERKS0_@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptreqERKNS_13exception_ptrES2_@@CXXABI_1.3.3
  FUNC:_ZNSt15__exception_ptrneERKNS_13exception_ptrES2_@@CXXABI_1.3.3
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@@GLIBCXX_3.4.16
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@@GLIBCXX_3.4.16
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6stosscEv@@GLIBCXX_3.4.10
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@@GLIBCXX_3.4.16
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@@GLIBCXX_3.4.16
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6stosscEv@@GLIBCXX_3.4.10
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@@GLIBCXX_3.4.16
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.6
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@@GLIBCXX_3.4.16
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.6
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIcEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIcEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIwEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIwEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIcEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIcEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIwEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIwEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15underflow_errorC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt15underflow_errorC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt15underflow_errorD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIcEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIcEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__numpunct_cacheIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16__time_get_state17_M_finalize_stateEP2tm@@GLIBCXX_3.4.30
  FUNC:_ZNSt16bad_array_lengthD0Ev@@CXXABI_1.3.8
  FUNC:_ZNSt16bad_array_lengthD1Ev@@CXXABI_1.3.8
  FUNC:_ZNSt16bad_array_lengthD2Ev@@CXXABI_1.3.8
  FUNC:_ZNSt16invalid_argumentC1EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt16invalid_argumentC2EPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt16invalid_argumentD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt16nested_exceptionD0Ev@@CXXABI_1.3.5
  FUNC:_ZNSt16nested_exceptionD1Ev@@CXXABI_1.3.5
  FUNC:_ZNSt16nested_exceptionD2Ev@@CXXABI_1.3.5
  FUNC:_ZNSt17__timepunct_cacheIcEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIcEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17__timepunct_cacheIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17bad_function_callD0Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt17bad_function_callD1Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt17bad_function_callD2Ev@@GLIBCXX_3.4.15
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2ERKSsj@@GLIBCXX_3.4.21
  FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb0EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIcLb1EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb0EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18__moneypunct_cacheIwLb1EED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt18condition_variable10notify_allEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variable10notify_oneEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@@GLIBCXX_3.4.30
  FUNC:_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableC1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableC2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableD1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt18condition_variableD2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt19_Sp_make_shared_tag5_S_eqERKSt9type_info@@GLIBCXX_3.4.26
  FUNC:_ZNSt19__codecvt_utf8_baseIDiED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIDiED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIDiED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIDsED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIDsED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIDsED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19__codecvt_utf8_baseIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@@GLIBCXX_3.4.5
  FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4
  FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@@GLIBCXX_3.4.5
  FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@GLIBCXX_3.4
  FUNC:_ZNSt20__codecvt_utf16_baseIDiED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIDiED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIDiED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIDsED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIDsED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIDsED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20__codecvt_utf16_baseIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt20bad_array_new_lengthD0Ev@@CXXABI_1.3.8
  FUNC:_ZNSt20bad_array_new_lengthD1Ev@@CXXABI_1.3.8
  FUNC:_ZNSt20bad_array_new_lengthD2Ev@@CXXABI_1.3.8
  FUNC:_ZNSt22condition_variable_anyC1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt22condition_variable_anyC2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt22condition_variable_anyD1Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt22condition_variable_anyD2Ev@@GLIBCXX_3.4.11
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDiED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIDsED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt25__codecvt_utf8_utf16_baseIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt28__atomic_futex_unsigned_base19_M_futex_notify_allEPj@@GLIBCXX_3.4.21
  FUNC:_ZNSt28__atomic_futex_unsigned_base19_M_futex_wait_untilEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt28__atomic_futex_unsigned_base26_M_futex_wait_until_steadyEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.29
  FUNC:_ZNSt3_V214error_categoryD0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt3_V214error_categoryD1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt3_V214error_categoryD2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt3_V215system_categoryEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt3_V216generic_categoryEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt3pmr15memory_resourceD0Ev@@GLIBCXX_3.4.28
  FUNC:_ZNSt3pmr15memory_resourceD1Ev@@GLIBCXX_3.4.28
  FUNC:_ZNSt3pmr15memory_resourceD2Ev@@GLIBCXX_3.4.28
  FUNC:_ZNSt3pmr19new_delete_resourceEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr20get_default_resourceEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr20null_memory_resourceEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr20set_default_resourceEPNS_15memory_resourceE@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr25monotonic_buffer_resource13_M_new_bufferEjj@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr25monotonic_buffer_resource18_M_release_buffersEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr25monotonic_buffer_resourceD0Ev@@GLIBCXX_3.4.28
  FUNC:_ZNSt3pmr25monotonic_buffer_resourceD1Ev@@GLIBCXX_3.4.28
  FUNC:_ZNSt3pmr25monotonic_buffer_resourceD2Ev@@GLIBCXX_3.4.28
  FUNC:_ZNSt3pmr26synchronized_pool_resource11do_allocateEjj@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr26synchronized_pool_resource13do_deallocateEPvjj@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr26synchronized_pool_resource7releaseEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr26synchronized_pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr26synchronized_pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr26synchronized_pool_resourceD1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr26synchronized_pool_resourceD2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resource11do_allocateEjj@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resource13do_deallocateEPvjj@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resource7releaseEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceD1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt3pmr28unsynchronized_pool_resourceD2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcEC1EPKtbj@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcEC2EPKtbj@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwE19_M_initialize_ctypeEv@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6__norm15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.14
  FUNC:_ZNSt6__norm15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.14
  FUNC:_ZNSt6__norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base6unhookEv@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
  FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
  FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
  FUNC:_ZNSt6chrono11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono11reload_tzdbEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono12current_zoneEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt6chrono13get_tzdb_listEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono14remote_versionB5cxx11Ev@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
  FUNC:_ZNSt6chrono8get_tzdbEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEi@@GLIBCXX_3.4.31
  FUNC:_ZNSt6chrono9tzdb_list14const_iteratorppEv@@GLIBCXX_3.4.31
  FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
  FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
  FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
  FUNC:_ZNSt6locale21_S_normalize_categoryEi@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj@@GLIBCXX_3.4.7
  FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facet13_S_get_c_nameEv@@GLIBCXX_3.4.6
  FUNC:_ZNSt6locale5facet15_S_get_c_localeEv@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facetD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facetD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6locale5facetD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6locale6globalERKS_@@GLIBCXX_3.4
  FUNC:_ZNSt6locale7classicEv@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC1EPKc@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC1ERKS_@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC1ERKS_PKci@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC1ERKS_S1_i@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC2EPKc@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC2ERKS_@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC2ERKS_PKci@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC2ERKS_S1_i@@GLIBCXX_3.4
  FUNC:_ZNSt6localeC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6localeD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
  FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE@@GLIBCXX_3.4.11
  FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEEPFvvE@@GLIBCXX_3.4.21
  FUNC:_ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE@@GLIBCXX_3.4.22
  FUNC:_ZNSt6thread20hardware_concurrencyEv@@GLIBCXX_3.4.17
  FUNC:_ZNSt6thread4joinEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt6thread6_StateD0Ev@@GLIBCXX_3.4.22
  FUNC:_ZNSt6thread6_StateD1Ev@@GLIBCXX_3.4.22
  FUNC:_ZNSt6thread6_StateD2Ev@@GLIBCXX_3.4.22
  FUNC:_ZNSt6thread6detachEv@@GLIBCXX_3.4.11
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb0EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIcLb1EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb0EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1110moneypunctIwLb1EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_destroyEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_S_compareEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_S_allocateERS3_j@@GLIBCXX_3.4.32
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEjc@@GLIBCXX_3.4.21
! FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb0EEEvPKcj@@GLIBCXX_3.4.34
! FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb1EEEvPKcj@@GLIBCXX_3.4.34
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvT_SA_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC2ESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcS4_EESA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcS5_S5_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13shrink_to_fitEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEjjjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcjPKcjj@@GLIBCXX_3.4.31
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE18_M_construct_aux_2Ejc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendESt16initializer_listIcE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignESt16initializer_listIcE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EESt16initializer_listIcE@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EESt16initializer_listIcE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvS9_T_SA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEPc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_moveEPcPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_NS6_IPcS4_EESB_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_PcSA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_RKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_S8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_j@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S9_S9_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_St16initializer_listIcE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_jc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_NS6_IPKcS4_EESB_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcSA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_RKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S7_S7_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S8_S8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_jc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEv@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_lengthEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_S_assignEPcjc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jRKS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jRKS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSESt16initializer_listIcE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLESt16initializer_listIcE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_destroyEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_disposeEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_replaceEjjPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_capacityEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_S_allocateERS3_j@@GLIBCXX_3.4.32
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwOS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructEjw@@GLIBCXX_3.4.21
! FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructILb0EEEvPKwj@@GLIBCXX_3.4.34
! FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructILb1EEEvPKwj@@GLIBCXX_3.4.34
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKwS4_EEEEvT_SB_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvT_SA_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPKwEEvT_S8_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPwEEvT_S7_St20forward_iterator_tag@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS4_EESA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS7_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS5_S5_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_replace_coldEPwjPKwjj@@GLIBCXX_3.4.31
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS2_E@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE18_M_construct_aux_2Ejw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EESt16initializer_listIwE@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EESt16initializer_listIwE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvS9_T_SA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_moveEPwPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_NS6_IPwS4_EESB_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_PwSA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_RKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_S8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_j@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S9_S9_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_St16initializer_listIwE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_jw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_NS6_IPKwS4_EESB_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwSA_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_RKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S7_S7_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S8_S8_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_jw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEv@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_lengthEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_S_assignEPwjw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jRKS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ENS4_12__sv_wrapperERKS3_@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jRKS3_@@GLIBCXX_3.4.23
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jjRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEw@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIcED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1114collate_bynameIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC1ERKS4_PS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC2ERKS4_PS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS5_x@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC1ERKS4_PS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC2ERKS4_PS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS5_x@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_ONS4_14__xfer_bufptrsE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIcED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115messages_bynameIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIcED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115numpunct_bynameIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNS_12basic_stringIcS3_SaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNS_12basic_stringIcS3_SaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNS_12basic_stringIcS2_IcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNS_12basic_stringIcS2_IcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb0EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIcLb1EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb0EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1117moneypunct_bynameIwLb1EED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEONS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EONS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEONS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EONS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_OpenmodeRKS3_@@GLIBCXX_3.4.29
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcEC1EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcEC2EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIcED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwEC1EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwEC2EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx117collateIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIcED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118messagesIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcEC1EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcEC1EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcEC2EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcEC2EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIcED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwEC1EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwEC1EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwEC2EP15__locale_structj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwEC2EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118numpunctIwED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED0Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7codecvtIDiDu11__mbstate_tED2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7codecvtIDic11__mbstate_tED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIDic11__mbstate_tED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIDic11__mbstate_tED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED0Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED1Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7codecvtIDsDu11__mbstate_tED2Ev@@GLIBCXX_3.4.26
  FUNC:_ZNSt7codecvtIDsc11__mbstate_tED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIDsc11__mbstate_tED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIDsc11__mbstate_tED2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7collateIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
! FUNC:_ZNSt8__detail11__wait_args22_M_load_proxy_wait_valEPKv@@GLIBCXX_3.4.35
! FUNC:_ZNSt8__detail11__wait_implEPKvRNS_16__wait_args_baseE@@GLIBCXX_3.4.35
! FUNC:_ZNSt8__detail13__notify_implEPKvbRKNS_16__wait_args_baseE@@GLIBCXX_3.4.35
  FUNC:_ZNSt8__detail15_List_node_base10_M_reverseEv@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.15
  FUNC:_ZNSt8__detail15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.15
! FUNC:_ZNSt8__detail17__wait_until_implEPKvRNS_16__wait_args_baseERKNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE@@GLIBCXX_3.4.35
! FUNC:_ZNSt8__format25__locale_encoding_to_utf8ERKSt6localeSt17basic_string_viewIcSt11char_traitsIcEEPv@@GLIBCXX_3.4.34
! FUNC:_ZNSt8__format26__with_encoding_conversionERKSt6locale@@GLIBCXX_3.4.34
  FUNC:_ZNSt8bad_castD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8bad_castD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8bad_castD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base13_M_grow_wordsEib@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCXX_3.4.6
  FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCXX_3.4.6
  FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base6xallocEv@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base7_M_moveERS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7_M_swapERS_@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11C2EPKcRKSt10error_code@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11D0Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11D1Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureB5cxx11D2Ev@@GLIBCXX_3.4.21
  FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_baseC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_baseC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_baseD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_baseD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8ios_baseD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8messagesIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt8valarrayIjEixEj@@GLIBCXX_3.4
  FUNC:_ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.14
  FUNC:_ZNSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.14
  FUNC:_ZNSt9__cxx199815_List_node_base10_M_reverseEv@@GLIBCXX_3.4.14
  FUNC:_ZNSt9__cxx199815_List_node_base11_M_transferEPS0_S1_@@GLIBCXX_3.4.14
  FUNC:_ZNSt9__cxx199815_List_node_base4hookEPS0_@@GLIBCXX_3.4.10
  FUNC:_ZNSt9__cxx199815_List_node_base4swapERS0_S1_@@GLIBCXX_3.4.10
  FUNC:_ZNSt9__cxx199815_List_node_base6unhookEv@@GLIBCXX_3.4.10
  FUNC:_ZNSt9__cxx199815_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
  FUNC:_ZNSt9__cxx199815_List_node_base7reverseEv@@GLIBCXX_3.4.10
  FUNC:_ZNSt9__cxx199815_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.10
  FUNC:_ZNSt9__cxx199815_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
  FUNC:_ZNSt9bad_allocD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9bad_allocD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9bad_allocD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4moveEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4moveERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE9set_rdbufEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4moveEOS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4moveERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4swapERS2_@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE9set_rdbufEPSt15basic_streambufIwS1_E@@GLIBCXX_3.4.21
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9exceptionD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9exceptionD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9exceptionD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9strstream3strEv@@GLIBCXX_3.4
  FUNC:_ZNSt9strstream6freezeEb@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamC1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamC2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9strstreamD2Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9type_infoD0Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9type_infoD1Ev@@GLIBCXX_3.4
  FUNC:_ZNSt9type_infoD2Ev@@GLIBCXX_3.4
  FUNC:_ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.11
  FUNC:_ZNVSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.11
  FUNC:_ZSt10from_charsPKcS0_RdSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt10from_charsPKcS0_ReSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt10from_charsPKcS0_RfSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt10unexpectedv@@GLIBCXX_3.4
  FUNC:_ZSt11_Hash_bytesPKvjj@@CXXABI_1.3.5
  FUNC:_ZSt13get_terminatev@@GLIBCXX_3.4.20
  FUNC:_ZSt13set_terminatePFvvE@@GLIBCXX_3.4
  FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@@GLIBCXX_3.4
  FUNC:_ZSt14get_unexpectedv@@GLIBCXX_3.4.20
  FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCXX_3.4
  FUNC:_ZSt15_Fnv_hash_bytesPKvjj@@CXXABI_1.3.5
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb0EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIcLb1EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb0EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx1110moneypunctIwLb1EEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx117collateIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx118messagesIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIcEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx118numpunctIwEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb0EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt10moneypunctIcLb1EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb0EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt10moneypunctIwLb1EEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt11__timepunctIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt11__timepunctIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt5ctypeIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt5ctypeIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7codecvtIcc11__mbstate_tEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7codecvtIwc11__mbstate_tEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7collateIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7collateIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8messagesIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8messagesIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8numpunctIcEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8numpunctIwEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15__try_use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEPKT_RKSt6locale@@GLIBCXX_3.4.31
  FUNC:_ZSt15future_categoryv@@GLIBCXX_3.4.15
  FUNC:_ZSt15get_new_handlerv@@GLIBCXX_3.4.20
  FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCXX_3.4
  FUNC:_ZSt15system_categoryv@@GLIBCXX_3.4.11
  FUNC:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@@GLIBCXX_3.4.9
  FUNC:_ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i@@GLIBCXX_3.4.9
  FUNC:_ZSt16__throw_bad_castv@@GLIBCXX_3.4
  FUNC:_ZSt16generic_categoryv@@GLIBCXX_3.4.11
  FUNC:_ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_@@GLIBCXX_3.4.6
  FUNC:_ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_@@GLIBCXX_3.4.6
  FUNC:_ZSt17__istream_extractIwSt11char_traitsIwEEvRSt13basic_istreamIT_T0_EPS3_i@@GLIBCXX_3.4.29
  FUNC:_ZSt17__istream_extractRSiPci@@GLIBCXX_3.4.29
  FUNC:_ZSt17__throw_bad_allocv@@GLIBCXX_3.4
  FUNC:_ZSt17__verify_groupingPKcjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  FUNC:_ZSt17__verify_groupingPKcjRKSs@@GLIBCXX_3.4.10
  FUNC:_ZSt17current_exceptionv@@CXXABI_1.3.3
  FUNC:_ZSt17iostream_categoryv@@GLIBCXX_3.4.21
  FUNC:_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE@@CXXABI_1.3.3
  FUNC:_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
  FUNC:_ZSt18__throw_bad_typeidv@@GLIBCXX_3.4
  FUNC:_ZSt18uncaught_exceptionv@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_ios_failurePKci@@GLIBCXX_3.4.26
  FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_range_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt19__throw_regex_errorNSt15regex_constants10error_typeE@@GLIBCXX_3.4.15
  FUNC:_ZSt19uncaught_exceptionsv@@GLIBCXX_3.4.22
  FUNC:_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_@@GLIBCXX_3.4
  FUNC:_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
  FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt20__throw_future_errori@@GLIBCXX_3.4.14
  FUNC:_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCXX_3.4
  FUNC:_ZSt20__throw_system_errori@@GLIBCXX_3.4.11
  FUNC:_ZSt20__to_chars_float16_tPcS_fSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@@GLIBCXX_3.4
  FUNC:_ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@@GLIBCXX_3.4.9
  FUNC:_ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@@GLIBCXX_3.4.9
  FUNC:_ZSt21__glibcxx_assert_failPKciS0_S0_@@GLIBCXX_3.4.30
  FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCXX_3.4
  FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt21ios_base_library_initv@@GLIBCXX_3.4.32
  FUNC:_ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format@@GLIBCXX_3.4.31
  FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCXX_3.4
  FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCXX_3.4
  FUNC:_ZSt24__throw_out_of_range_fmtPKcz@@GLIBCXX_3.4.20
  FUNC:_ZSt25__throw_bad_function_callv@@GLIBCXX_3.4.14
  FUNC:_ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE@@GLIBCXX_3.4.21
  FUNC:_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@@GLIBCXX_3.4
  FUNC:_ZSt28__throw_bad_array_new_lengthv@@GLIBCXX_3.4.29
  FUNC:_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@@GLIBCXX_3.4
  FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCXX_3.4
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@@GLIBCXX_3.4.21
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@@GLIBCXX_3.4.21
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCXX_3.4
  FUNC:_ZSt8to_charsPcS_d@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_dSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_dSt12chars_formati@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_e@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_eSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_eSt12chars_formati@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_f@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_fSt12chars_format@@GLIBCXX_3.4.29
  FUNC:_ZSt8to_charsPcS_fSt12chars_formati@@GLIBCXX_3.4.29
  FUNC:_ZSt9has_facetINSt7__cxx1110moneypunctIcLb0EEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx1110moneypunctIwLb0EEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx117collateIcEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx117collateIwEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx118messagesIcEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx118messagesIwEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx118numpunctIcEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx118numpunctIwEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9terminatev@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIcLb0EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIcLb1EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIwLb0EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx1110moneypunctIwLb1EEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx117collateIcEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx117collateIwEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx118messagesIcEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx118messagesIwEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx118numpunctIcEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx118numpunctIwEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@@GLIBCXX_3.4.21
  FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCXX_3.4
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCXX_3.4
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCXX_3.4
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCXX_3.4
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCXX_3.4
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
  FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
  FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
  FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCXX_3.4
  FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
  FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_@@GLIBCXX_3.4.21
  FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_@@GLIBCXX_3.4.21
  FUNC:_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_@@GLIBCXX_3.4.21
  FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
  FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
  FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
  FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_@@GLIBCXX_3.4.21
  FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_@@GLIBCXX_3.4.21
  FUNC:_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_@@GLIBCXX_3.4.21
  FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCXX_3.4
  FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@@GLIBCXX_3.4
  FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCXX_3.4
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCXX_3.4
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCXX_3.4
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCXX_3.4
  FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
  FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
  FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCXX_3.4
  FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@@GLIBCXX_3.4.21
  FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCXX_3.4
  FUNC:_ZThn8_NSdD0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSdD1Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCXX_3.4.21
  FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCXX_3.4
  FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCXX_3.4
  FUNC:_ZdaPv@@GLIBCXX_3.4
  FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCXX_3.4
  FUNC:_ZdaPvSt11align_val_t@@CXXABI_1.3.11
  FUNC:_ZdaPvSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
  FUNC:_ZdaPvj@@CXXABI_1.3.9
  FUNC:_ZdaPvjSt11align_val_t@@CXXABI_1.3.11
  FUNC:_ZdlPv@@GLIBCXX_3.4
  FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCXX_3.4
  FUNC:_ZdlPvSt11align_val_t@@CXXABI_1.3.11
  FUNC:_ZdlPvSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
  FUNC:_ZdlPvj@@CXXABI_1.3.9
  FUNC:_ZdlPvjSt11align_val_t@@CXXABI_1.3.11
  FUNC:_Znaj@@GLIBCXX_3.4
  FUNC:_ZnajRKSt9nothrow_t@@GLIBCXX_3.4
  FUNC:_ZnajSt11align_val_t@@CXXABI_1.3.11
  FUNC:_ZnajSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
  FUNC:_Znwj@@GLIBCXX_3.4
  FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4
  FUNC:_ZnwjSt11align_val_t@@CXXABI_1.3.11
  FUNC:_ZnwjSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11
  FUNC:__atomic_flag_for_address@@GLIBCXX_3.4.11
  FUNC:__atomic_flag_wait_explicit@@GLIBCXX_3.4.11
  FUNC:__cxa_allocate_dependent_exception@@CXXABI_1.3.6
  FUNC:__cxa_allocate_exception@@CXXABI_1.3
  FUNC:__cxa_bad_cast@@CXXABI_1.3
  FUNC:__cxa_bad_typeid@@CXXABI_1.3
  FUNC:__cxa_begin_catch@@CXXABI_1.3
  FUNC:__cxa_call_terminate@@CXXABI_1.3.15
  FUNC:__cxa_call_unexpected@@CXXABI_1.3
  FUNC:__cxa_current_exception_type@@CXXABI_1.3
  FUNC:__cxa_deleted_virtual@@CXXABI_1.3.6
  FUNC:__cxa_demangle@@CXXABI_1.3
  FUNC:__cxa_end_catch@@CXXABI_1.3
  FUNC:__cxa_free_dependent_exception@@CXXABI_1.3.6
  FUNC:__cxa_free_exception@@CXXABI_1.3
  FUNC:__cxa_get_exception_ptr@@CXXABI_1.3.1
  FUNC:__cxa_get_globals@@CXXABI_1.3
  FUNC:__cxa_get_globals_fast@@CXXABI_1.3
  FUNC:__cxa_guard_abort@@CXXABI_1.3
  FUNC:__cxa_guard_acquire@@CXXABI_1.3
  FUNC:__cxa_guard_release@@CXXABI_1.3
  FUNC:__cxa_init_primary_exception@@CXXABI_1.3.11
  FUNC:__cxa_pure_virtual@@CXXABI_1.3
  FUNC:__cxa_rethrow@@CXXABI_1.3
  FUNC:__cxa_thread_atexit@@CXXABI_1.3.7
  FUNC:__cxa_throw@@CXXABI_1.3
  FUNC:__cxa_throw_bad_array_length@@CXXABI_1.3.8
  FUNC:__cxa_throw_bad_array_new_length@@CXXABI_1.3.8
  FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
  FUNC:__cxa_vec_cctor@@CXXABI_1.3
  FUNC:__cxa_vec_cleanup@@CXXABI_1.3
  FUNC:__cxa_vec_ctor@@CXXABI_1.3
  FUNC:__cxa_vec_delete2@@CXXABI_1.3
  FUNC:__cxa_vec_delete3@@CXXABI_1.3
  FUNC:__cxa_vec_delete@@CXXABI_1.3
  FUNC:__cxa_vec_dtor@@CXXABI_1.3
  FUNC:__cxa_vec_new2@@CXXABI_1.3
  FUNC:__cxa_vec_new3@@CXXABI_1.3
  FUNC:__cxa_vec_new@@CXXABI_1.3
  FUNC:__dynamic_cast@@CXXABI_1.3
  FUNC:__gxx_personality_v0@@CXXABI_1.3
  FUNC:__once_proxy@@GLIBCXX_3.4.11
  FUNC:acosl@GLIBCXX_3.4.3
  FUNC:asinl@GLIBCXX_3.4.3
  FUNC:atan2l@GLIBCXX_3.4
  FUNC:atanl@GLIBCXX_3.4.3
  FUNC:atomic_flag_clear_explicit@@GLIBCXX_3.4.11
  FUNC:atomic_flag_test_and_set_explicit@@GLIBCXX_3.4.11
  FUNC:ceill@GLIBCXX_3.4.3
  FUNC:coshl@GLIBCXX_3.4
*************** OBJECT:0:GLIBCXX_3.4.3
*** 9142,11912 ****
  OBJECT:0:GLIBCXX_3.4.30
  OBJECT:0:GLIBCXX_3.4.31
  OBJECT:0:GLIBCXX_3.4.32
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
  OBJECT:0:GLIBCXX_3.4.7
  OBJECT:0:GLIBCXX_3.4.8
  OBJECT:0:GLIBCXX_3.4.9
- OBJECT:1028:_ZNSt3tr18__detail12__prime_listE
  OBJECT:1028:_ZNSt3tr18__detail12__prime_listE@@GLIBCXX_3.4.10
- OBJECT:1028:_ZNSt8__detail12__prime_listE
  OBJECT:1028:_ZNSt8__detail12__prime_listE@@GLIBCXX_3.4.10
- OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE
  OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
- OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE
  OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE
  OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE
  OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE
  OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTINSt10filesystem16filesystem_errorE
  OBJECT:12:_ZTINSt10filesystem16filesystem_errorE@@GLIBCXX_3.4.26
- OBJECT:12:_ZTINSt10filesystem7__cxx1116filesystem_errorE
  OBJECT:12:_ZTINSt10filesystem7__cxx1116filesystem_errorE@@GLIBCXX_3.4.26
- OBJECT:12:_ZTINSt13__future_base19_Async_state_commonE
  OBJECT:12:_ZTINSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
- OBJECT:12:_ZTINSt3pmr25monotonic_buffer_resourceE
  OBJECT:12:_ZTINSt3pmr25monotonic_buffer_resourceE@@GLIBCXX_3.4.28
- OBJECT:12:_ZTINSt3pmr26synchronized_pool_resourceE
  OBJECT:12:_ZTINSt3pmr26synchronized_pool_resourceE@@GLIBCXX_3.4.26
- OBJECT:12:_ZTINSt3pmr28unsynchronized_pool_resourceE
  OBJECT:12:_ZTINSt3pmr28unsynchronized_pool_resourceE@@GLIBCXX_3.4.26
- OBJECT:12:_ZTINSt7__cxx1114collate_bynameIcEE
  OBJECT:12:_ZTINSt7__cxx1114collate_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1114collate_bynameIwEE
  OBJECT:12:_ZTINSt7__cxx1114collate_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE
  OBJECT:12:_ZTINSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE
  OBJECT:12:_ZTINSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115messages_bynameIcEE
  OBJECT:12:_ZTINSt7__cxx1115messages_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115messages_bynameIwEE
  OBJECT:12:_ZTINSt7__cxx1115messages_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115numpunct_bynameIcEE
  OBJECT:12:_ZTINSt7__cxx1115numpunct_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115numpunct_bynameIwEE
  OBJECT:12:_ZTINSt7__cxx1115numpunct_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:12:_ZTINSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:12:_ZTINSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIcLb0EEE
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIcLb0EEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIcLb1EEE
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIcLb1EEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIwLb0EEE
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIwLb0EEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIwLb1EEE
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIwLb1EEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:12:_ZTINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:12:_ZTINSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:12:_ZTINSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:12:_ZTINSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:12:_ZTINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:12:_ZTINSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx117collateIcEE
  OBJECT:12:_ZTINSt7__cxx117collateIcEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx117collateIwEE
  OBJECT:12:_ZTINSt7__cxx117collateIwEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx118numpunctIcEE
  OBJECT:12:_ZTINSt7__cxx118numpunctIcEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx118numpunctIwEE
  OBJECT:12:_ZTINSt7__cxx118numpunctIwEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:12:_ZTINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:12:_ZTINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:12:_ZTINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:12:_ZTINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt8ios_base7failureB5cxx11E
  OBJECT:12:_ZTINSt8ios_base7failureB5cxx11E@@GLIBCXX_3.4.21
- OBJECT:12:_ZTINSt8ios_base7failureE
  OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt10bad_typeid
  OBJECT:12:_ZTISt10bad_typeid@@GLIBCXX_3.4
- OBJECT:12:_ZTISt10istrstream
  OBJECT:12:_ZTISt10istrstream@@GLIBCXX_3.4
- OBJECT:12:_ZTISt10lock_error
  OBJECT:12:_ZTISt10lock_error@@GLIBCXX_3.4.11
- OBJECT:12:_ZTISt10ostrstream
  OBJECT:12:_ZTISt10ostrstream@@GLIBCXX_3.4
- OBJECT:12:_ZTISt11__timepunctIcE
  OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt11__timepunctIwE
  OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt11logic_error
  OBJECT:12:_ZTISt11logic_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt11range_error
  OBJECT:12:_ZTISt11range_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt11regex_error
  OBJECT:12:_ZTISt11regex_error@@GLIBCXX_3.4.15
- OBJECT:12:_ZTISt12bad_weak_ptr
  OBJECT:12:_ZTISt12bad_weak_ptr@@GLIBCXX_3.4.15
- OBJECT:12:_ZTISt12ctype_bynameIcE
  OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt12ctype_bynameIwE
  OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt12domain_error
  OBJECT:12:_ZTISt12domain_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt12future_error
  OBJECT:12:_ZTISt12future_error@@GLIBCXX_3.4.14
- OBJECT:12:_ZTISt12length_error
  OBJECT:12:_ZTISt12length_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt12out_of_range
  OBJECT:12:_ZTISt12out_of_range@@GLIBCXX_3.4
- OBJECT:12:_ZTISt12strstreambuf
  OBJECT:12:_ZTISt12strstreambuf@@GLIBCXX_3.4
- OBJECT:12:_ZTISt12system_error
  OBJECT:12:_ZTISt12system_error@@GLIBCXX_3.4.11
- OBJECT:12:_ZTISt13bad_exception
  OBJECT:12:_ZTISt13bad_exception@@GLIBCXX_3.4
- OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE
  OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE
  OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE
  OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE
  OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt13runtime_error
  OBJECT:12:_ZTISt13runtime_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE
  OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE
  OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE
  OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE
  OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE
  OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE
  OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14collate_bynameIcE
  OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14collate_bynameIwE
  OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt14overflow_error
  OBJECT:12:_ZTISt14overflow_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE
  OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE
  OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15messages_bynameIcE
  OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15messages_bynameIwE
  OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15numpunct_bynameIcE
  OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15numpunct_bynameIwE
  OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt15underflow_error
  OBJECT:12:_ZTISt15underflow_error@@GLIBCXX_3.4
- OBJECT:12:_ZTISt16bad_array_length
  OBJECT:12:_ZTISt16bad_array_length@@CXXABI_1.3.8
- OBJECT:12:_ZTISt16invalid_argument
  OBJECT:12:_ZTISt16invalid_argument@@GLIBCXX_3.4
- OBJECT:12:_ZTISt17bad_function_call
  OBJECT:12:_ZTISt17bad_function_call@@GLIBCXX_3.4.15
- OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE
  OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE
  OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE
  OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE
  OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt19__codecvt_utf8_baseIDiE
  OBJECT:12:_ZTISt19__codecvt_utf8_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt19__codecvt_utf8_baseIDsE
  OBJECT:12:_ZTISt19__codecvt_utf8_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt19__codecvt_utf8_baseIwE
  OBJECT:12:_ZTISt19__codecvt_utf8_baseIwE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt20__codecvt_utf16_baseIDiE
  OBJECT:12:_ZTISt20__codecvt_utf16_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt20__codecvt_utf16_baseIDsE
  OBJECT:12:_ZTISt20__codecvt_utf16_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt20__codecvt_utf16_baseIwE
  OBJECT:12:_ZTISt20__codecvt_utf16_baseIwE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt20bad_array_new_length
  OBJECT:12:_ZTISt20bad_array_new_length@@CXXABI_1.3.8
- OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIDiE
  OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIDsE
  OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIwE
  OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIwE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt5ctypeIwE
  OBJECT:12:_ZTISt5ctypeIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7codecvtIDiDu11__mbstate_tE
  OBJECT:12:_ZTISt7codecvtIDiDu11__mbstate_tE@@GLIBCXX_3.4.26
- OBJECT:12:_ZTISt7codecvtIDic11__mbstate_tE
  OBJECT:12:_ZTISt7codecvtIDic11__mbstate_tE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt7codecvtIDsDu11__mbstate_tE
  OBJECT:12:_ZTISt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
- OBJECT:12:_ZTISt7codecvtIDsc11__mbstate_tE
  OBJECT:12:_ZTISt7codecvtIDsc11__mbstate_tE@@GLIBCXX_3.4.21
- OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE
  OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE
  OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7collateIcE
  OBJECT:12:_ZTISt7collateIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7collateIwE
  OBJECT:12:_ZTISt7collateIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt8bad_cast
  OBJECT:12:_ZTISt8bad_cast@@GLIBCXX_3.4
- OBJECT:12:_ZTISt8numpunctIcE
  OBJECT:12:_ZTISt8numpunctIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt8numpunctIwE
  OBJECT:12:_ZTISt8numpunctIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9bad_alloc
  OBJECT:12:_ZTISt9bad_alloc@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9basic_iosIcSt11char_traitsIcEE
  OBJECT:12:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9basic_iosIwSt11char_traitsIwEE
  OBJECT:12:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:12:_ZTISt9strstream
  OBJECT:12:_ZTISt9strstream@@GLIBCXX_3.4
- OBJECT:12:_ZTSSt5ctypeIcE
  OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCXX_3.4
- OBJECT:12:_ZTSSt5ctypeIwE
  OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCXX_3.4
- OBJECT:12:_ZTSSt8bad_cast
  OBJECT:12:_ZTSSt8bad_cast@@GLIBCXX_3.4
- OBJECT:12:_ZTSSt8ios_base
  OBJECT:12:_ZTSSt8ios_base@@GLIBCXX_3.4
- OBJECT:13:_ZTSSt9bad_alloc
  OBJECT:13:_ZTSSt9bad_alloc@@GLIBCXX_3.4
- OBJECT:13:_ZTSSt9exception
  OBJECT:13:_ZTSSt9exception@@GLIBCXX_3.4
- OBJECT:13:_ZTSSt9strstream
  OBJECT:13:_ZTSSt9strstream@@GLIBCXX_3.4
- OBJECT:13:_ZTSSt9time_base
  OBJECT:13:_ZTSSt9time_base@@GLIBCXX_3.4
- OBJECT:13:_ZTSSt9type_info
  OBJECT:13:_ZTSSt9type_info@@GLIBCXX_3.4
- OBJECT:140:_ZSt4cerr
  OBJECT:140:_ZSt4cerr@@GLIBCXX_3.4
- OBJECT:140:_ZSt4clog
  OBJECT:140:_ZSt4clog@@GLIBCXX_3.4
- OBJECT:140:_ZSt4cout
  OBJECT:140:_ZSt4cout@@GLIBCXX_3.4
- OBJECT:144:_ZSt3cin
  OBJECT:144:_ZSt3cin@@GLIBCXX_3.4
- OBJECT:144:_ZSt5wcerr
  OBJECT:144:_ZSt5wcerr@@GLIBCXX_3.4
- OBJECT:144:_ZSt5wclog
  OBJECT:144:_ZSt5wclog@@GLIBCXX_3.4
- OBJECT:144:_ZSt5wcout
  OBJECT:144:_ZSt5wcout@@GLIBCXX_3.4
- OBJECT:148:_ZSt4wcin
  OBJECT:148:_ZSt4wcin@@GLIBCXX_3.4
- OBJECT:14:_ZTSSt7collateIcE
  OBJECT:14:_ZTSSt7collateIcE@@GLIBCXX_3.4
- OBJECT:14:_ZTSSt7collateIwE
  OBJECT:14:_ZTSSt7collateIwE@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt10bad_typeid
  OBJECT:15:_ZTSSt10bad_typeid@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt10ctype_base
  OBJECT:15:_ZTSSt10ctype_base@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt10istrstream
  OBJECT:15:_ZTSSt10istrstream@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt10lock_error
  OBJECT:15:_ZTSSt10lock_error@@GLIBCXX_3.4.11
- OBJECT:15:_ZTSSt10money_base
  OBJECT:15:_ZTSSt10money_base@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt10ostrstream
  OBJECT:15:_ZTSSt10ostrstream@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt8messagesIcE
  OBJECT:15:_ZTSSt8messagesIcE@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt8messagesIwE
  OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt8numpunctIcE
  OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
- OBJECT:15:_ZTSSt8numpunctIwE
  OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
- OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE
  OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
- OBJECT:16:_ZNSs4_Rep20_S_empty_rep_storageE
  OBJECT:16:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
- OBJECT:16:_ZTIPDF32_
  OBJECT:16:_ZTIPDF32_@@CXXABI_1.3.14
- OBJECT:16:_ZTIPDF32x
  OBJECT:16:_ZTIPDF32x@@CXXABI_1.3.14
- OBJECT:16:_ZTIPDF64_
  OBJECT:16:_ZTIPDF64_@@CXXABI_1.3.14
- OBJECT:16:_ZTIPDd
  OBJECT:16:_ZTIPDd@@CXXABI_1.3.4
- OBJECT:16:_ZTIPDe
  OBJECT:16:_ZTIPDe@@CXXABI_1.3.4
- OBJECT:16:_ZTIPDf
  OBJECT:16:_ZTIPDf@@CXXABI_1.3.4
- OBJECT:16:_ZTIPDi
  OBJECT:16:_ZTIPDi@@CXXABI_1.3.3
- OBJECT:16:_ZTIPDn
  OBJECT:16:_ZTIPDn@@CXXABI_1.3.5
- OBJECT:16:_ZTIPDs
  OBJECT:16:_ZTIPDs@@CXXABI_1.3.3
- OBJECT:16:_ZTIPDu
  OBJECT:16:_ZTIPDu@@CXXABI_1.3.12
- OBJECT:16:_ZTIPKDF32_
  OBJECT:16:_ZTIPKDF32_@@CXXABI_1.3.14
- OBJECT:16:_ZTIPKDF32x
  OBJECT:16:_ZTIPKDF32x@@CXXABI_1.3.14
- OBJECT:16:_ZTIPKDF64_
  OBJECT:16:_ZTIPKDF64_@@CXXABI_1.3.14
- OBJECT:16:_ZTIPKDd
  OBJECT:16:_ZTIPKDd@@CXXABI_1.3.4
- OBJECT:16:_ZTIPKDe
  OBJECT:16:_ZTIPKDe@@CXXABI_1.3.4
- OBJECT:16:_ZTIPKDf
  OBJECT:16:_ZTIPKDf@@CXXABI_1.3.4
- OBJECT:16:_ZTIPKDi
  OBJECT:16:_ZTIPKDi@@CXXABI_1.3.3
- OBJECT:16:_ZTIPKDn
  OBJECT:16:_ZTIPKDn@@CXXABI_1.3.5
- OBJECT:16:_ZTIPKDs
  OBJECT:16:_ZTIPKDs@@CXXABI_1.3.3
- OBJECT:16:_ZTIPKDu
  OBJECT:16:_ZTIPKDu@@CXXABI_1.3.12
- OBJECT:16:_ZTIPKa
  OBJECT:16:_ZTIPKa@@CXXABI_1.3
- OBJECT:16:_ZTIPKb
  OBJECT:16:_ZTIPKb@@CXXABI_1.3
- OBJECT:16:_ZTIPKc
  OBJECT:16:_ZTIPKc@@CXXABI_1.3
- OBJECT:16:_ZTIPKd
  OBJECT:16:_ZTIPKd@@CXXABI_1.3
- OBJECT:16:_ZTIPKe
  OBJECT:16:_ZTIPKe@@CXXABI_1.3
- OBJECT:16:_ZTIPKf
  OBJECT:16:_ZTIPKf@@CXXABI_1.3
- OBJECT:16:_ZTIPKh
  OBJECT:16:_ZTIPKh@@CXXABI_1.3
- OBJECT:16:_ZTIPKi
  OBJECT:16:_ZTIPKi@@CXXABI_1.3
- OBJECT:16:_ZTIPKj
  OBJECT:16:_ZTIPKj@@CXXABI_1.3
- OBJECT:16:_ZTIPKl
  OBJECT:16:_ZTIPKl@@CXXABI_1.3
- OBJECT:16:_ZTIPKm
  OBJECT:16:_ZTIPKm@@CXXABI_1.3
- OBJECT:16:_ZTIPKs
  OBJECT:16:_ZTIPKs@@CXXABI_1.3
- OBJECT:16:_ZTIPKt
  OBJECT:16:_ZTIPKt@@CXXABI_1.3
- OBJECT:16:_ZTIPKv
  OBJECT:16:_ZTIPKv@@CXXABI_1.3
- OBJECT:16:_ZTIPKw
  OBJECT:16:_ZTIPKw@@CXXABI_1.3
- OBJECT:16:_ZTIPKx
  OBJECT:16:_ZTIPKx@@CXXABI_1.3
- OBJECT:16:_ZTIPKy
  OBJECT:16:_ZTIPKy@@CXXABI_1.3
- OBJECT:16:_ZTIPa
  OBJECT:16:_ZTIPa@@CXXABI_1.3
- OBJECT:16:_ZTIPb
  OBJECT:16:_ZTIPb@@CXXABI_1.3
- OBJECT:16:_ZTIPc
  OBJECT:16:_ZTIPc@@CXXABI_1.3
- OBJECT:16:_ZTIPd
  OBJECT:16:_ZTIPd@@CXXABI_1.3
- OBJECT:16:_ZTIPe
  OBJECT:16:_ZTIPe@@CXXABI_1.3
- OBJECT:16:_ZTIPf
  OBJECT:16:_ZTIPf@@CXXABI_1.3
- OBJECT:16:_ZTIPh
  OBJECT:16:_ZTIPh@@CXXABI_1.3
- OBJECT:16:_ZTIPi
  OBJECT:16:_ZTIPi@@CXXABI_1.3
- OBJECT:16:_ZTIPj
  OBJECT:16:_ZTIPj@@CXXABI_1.3
- OBJECT:16:_ZTIPl
  OBJECT:16:_ZTIPl@@CXXABI_1.3
- OBJECT:16:_ZTIPm
  OBJECT:16:_ZTIPm@@CXXABI_1.3
- OBJECT:16:_ZTIPs
  OBJECT:16:_ZTIPs@@CXXABI_1.3
- OBJECT:16:_ZTIPt
  OBJECT:16:_ZTIPt@@CXXABI_1.3
- OBJECT:16:_ZTIPv
  OBJECT:16:_ZTIPv@@CXXABI_1.3
- OBJECT:16:_ZTIPw
  OBJECT:16:_ZTIPw@@CXXABI_1.3
- OBJECT:16:_ZTIPx
  OBJECT:16:_ZTIPx@@CXXABI_1.3
- OBJECT:16:_ZTIPy
  OBJECT:16:_ZTIPy@@CXXABI_1.3
- OBJECT:16:_ZTSSt11logic_error
  OBJECT:16:_ZTSSt11logic_error@@GLIBCXX_3.4
- OBJECT:16:_ZTSSt11range_error
  OBJECT:16:_ZTSSt11range_error@@GLIBCXX_3.4
- OBJECT:16:_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:16:_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:16:_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:16:_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:16:_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:16:_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:16:_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:16:_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:16:_ZTTSt10istrstream
  OBJECT:16:_ZTTSt10istrstream@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt10ostrstream
  OBJECT:16:_ZTTSt10ostrstream@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE
  OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE
  OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE
  OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE
  OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:16:_ZTVNSt6locale5facetE
  OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCXX_3.4
- OBJECT:16:_ZTVSt11__timepunctIcE
  OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCXX_3.4
- OBJECT:16:_ZTVSt11__timepunctIwE
  OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCXX_3.4
- OBJECT:16:_ZTVSt16nested_exception
  OBJECT:16:_ZTVSt16nested_exception@@CXXABI_1.3.5
- OBJECT:16:_ZTVSt8ios_base
  OBJECT:16:_ZTVSt8ios_base@@GLIBCXX_3.4
- OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE
  OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE
  OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:17:_ZTSSt12codecvt_base
  OBJECT:17:_ZTSSt12codecvt_base@@GLIBCXX_3.4
- OBJECT:17:_ZTSSt12domain_error
  OBJECT:17:_ZTSSt12domain_error@@GLIBCXX_3.4
- OBJECT:17:_ZTSSt12future_error
  OBJECT:17:_ZTSSt12future_error@@GLIBCXX_3.4.14
- OBJECT:17:_ZTSSt12length_error
  OBJECT:17:_ZTSSt12length_error@@GLIBCXX_3.4
- OBJECT:17:_ZTSSt12out_of_range
  OBJECT:17:_ZTSSt12out_of_range@@GLIBCXX_3.4
- OBJECT:17:_ZTSSt12strstreambuf
  OBJECT:17:_ZTSSt12strstreambuf@@GLIBCXX_3.4
- OBJECT:17:_ZTSSt12system_error
  OBJECT:17:_ZTSSt12system_error@@GLIBCXX_3.4.11
- OBJECT:18:_ZTSNSt6locale5facetE
  OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCXX_3.4
- OBJECT:18:_ZTSSt13bad_exception
  OBJECT:18:_ZTSSt13bad_exception@@GLIBCXX_3.4
- OBJECT:18:_ZTSSt13messages_base
  OBJECT:18:_ZTSSt13messages_base@@GLIBCXX_3.4
- OBJECT:18:_ZTSSt13runtime_error
  OBJECT:18:_ZTSSt13runtime_error@@GLIBCXX_3.4
- OBJECT:19:_ZTSNSt6thread6_StateE
  OBJECT:19:_ZTSNSt6thread6_StateE@@GLIBCXX_3.4.22
- OBJECT:19:_ZTSSt11__timepunctIcE
  OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCXX_3.4
- OBJECT:19:_ZTSSt11__timepunctIwE
  OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCXX_3.4
- OBJECT:19:_ZTSSt14error_category
  OBJECT:19:_ZTSSt14error_category@@GLIBCXX_3.4.11
- OBJECT:19:_ZTSSt14overflow_error
  OBJECT:19:_ZTSSt14overflow_error@@GLIBCXX_3.4
- OBJECT:1:_ZNSs4_Rep11_S_terminalE
  OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE
  OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE
  OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE
  OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE
  OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt12placeholders2_1E
  OBJECT:1:_ZNSt12placeholders2_1E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_2E
  OBJECT:1:_ZNSt12placeholders2_2E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_3E
  OBJECT:1:_ZNSt12placeholders2_3E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_4E
  OBJECT:1:_ZNSt12placeholders2_4E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_5E
  OBJECT:1:_ZNSt12placeholders2_5E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_6E
  OBJECT:1:_ZNSt12placeholders2_6E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_7E
  OBJECT:1:_ZNSt12placeholders2_7E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_8E
  OBJECT:1:_ZNSt12placeholders2_8E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders2_9E
  OBJECT:1:_ZNSt12placeholders2_9E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_10E
  OBJECT:1:_ZNSt12placeholders3_10E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_11E
  OBJECT:1:_ZNSt12placeholders3_11E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_12E
  OBJECT:1:_ZNSt12placeholders3_12E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_13E
  OBJECT:1:_ZNSt12placeholders3_13E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_14E
  OBJECT:1:_ZNSt12placeholders3_14E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_15E
  OBJECT:1:_ZNSt12placeholders3_15E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_16E
  OBJECT:1:_ZNSt12placeholders3_16E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_17E
  OBJECT:1:_ZNSt12placeholders3_17E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_18E
  OBJECT:1:_ZNSt12placeholders3_18E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_19E
  OBJECT:1:_ZNSt12placeholders3_19E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_20E
  OBJECT:1:_ZNSt12placeholders3_20E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_21E
  OBJECT:1:_ZNSt12placeholders3_21E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_22E
  OBJECT:1:_ZNSt12placeholders3_22E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_23E
  OBJECT:1:_ZNSt12placeholders3_23E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_24E
  OBJECT:1:_ZNSt12placeholders3_24E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_25E
  OBJECT:1:_ZNSt12placeholders3_25E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_26E
  OBJECT:1:_ZNSt12placeholders3_26E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_27E
  OBJECT:1:_ZNSt12placeholders3_27E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_28E
  OBJECT:1:_ZNSt12placeholders3_28E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt12placeholders3_29E
  OBJECT:1:_ZNSt12placeholders3_29E@@GLIBCXX_3.4.15
- OBJECT:1:_ZNSt14numeric_limitsIDiE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIDiE10is_boundedE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIDiE10is_integerE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIDiE12has_infinityE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIDiE13has_quiet_NaNE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIDiE14is_specializedE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIDiE15has_denorm_lossE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIDiE15tinyness_beforeE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIDiE17has_signaling_NaNE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIDiE5trapsE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIDiE8is_exactE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIDiE9is_iec559E@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIDiE9is_moduloE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDiE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIDiE9is_signedE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIDsE10is_boundedE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIDsE10is_integerE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIDsE12has_infinityE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIDsE13has_quiet_NaNE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIDsE14is_specializedE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIDsE15has_denorm_lossE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIDsE15tinyness_beforeE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIDsE17has_signaling_NaNE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIDsE5trapsE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIDsE8is_exactE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIDsE9is_iec559E@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIDsE9is_moduloE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDsE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIDsE9is_signedE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt14numeric_limitsIDuE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIDuE10is_boundedE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIDuE10is_integerE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIDuE12has_infinityE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIDuE13has_quiet_NaNE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIDuE14is_specializedE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIDuE15has_denorm_lossE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIDuE15tinyness_beforeE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIDuE17has_signaling_NaNE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIDuE5trapsE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIDuE8is_exactE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIDuE9is_iec559E@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIDuE9is_moduloE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIDuE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIDuE9is_signedE@@GLIBCXX_3.4.26
- OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE
  OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE
  OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE
  OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE
  OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE
  OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE
  OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE
  OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE
  OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE
  OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E
  OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE
  OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE
  OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE
  OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE
  OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE
  OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE
  OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE
  OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE
  OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE
  OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE
  OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE
  OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE
  OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE
  OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE
  OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base5trapsE
  OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE
  OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E
  OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE
  OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE
  OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
- OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE
  OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
- OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE
  OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
- OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE
  OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
- OBJECT:1:_ZNSt7__cxx1110moneypunctIcLb0EE4intlE
  OBJECT:1:_ZNSt7__cxx1110moneypunctIcLb0EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1110moneypunctIcLb1EE4intlE
  OBJECT:1:_ZNSt7__cxx1110moneypunctIcLb1EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1110moneypunctIwLb0EE4intlE
  OBJECT:1:_ZNSt7__cxx1110moneypunctIwLb0EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1110moneypunctIwLb1EE4intlE
  OBJECT:1:_ZNSt7__cxx1110moneypunctIwLb1EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIcLb0EE4intlE
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIcLb1EE4intlE
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIwLb0EE4intlE
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4.21
- OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIwLb1EE4intlE
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
  OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
  OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
- OBJECT:1:_ZSt7nothrow
  OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
- OBJECT:20:_ZTSSt12ctype_bynameIcE
  OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
- OBJECT:20:_ZTSSt12ctype_bynameIwE
  OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
- OBJECT:20:_ZTSSt15underflow_error
  OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVNSt10filesystem16filesystem_errorE
  OBJECT:20:_ZTVNSt10filesystem16filesystem_errorE@@GLIBCXX_3.4.26
- OBJECT:20:_ZTVNSt10filesystem7__cxx1116filesystem_errorE
  OBJECT:20:_ZTVNSt10filesystem7__cxx1116filesystem_errorE@@GLIBCXX_3.4.26
- OBJECT:20:_ZTVNSt13__future_base11_State_baseE
  OBJECT:20:_ZTVNSt13__future_base11_State_baseE@@GLIBCXX_3.4.15
- OBJECT:20:_ZTVNSt13__future_base12_Result_baseE
  OBJECT:20:_ZTVNSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15
- OBJECT:20:_ZTVNSt13__future_base19_Async_state_commonE
  OBJECT:20:_ZTVNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
- OBJECT:20:_ZTVNSt6thread6_StateE
  OBJECT:20:_ZTVNSt6thread6_StateE@@GLIBCXX_3.4.22
- OBJECT:20:_ZTVNSt8ios_base7failureB5cxx11E
  OBJECT:20:_ZTVNSt8ios_base7failureB5cxx11E@@GLIBCXX_3.4.21
- OBJECT:20:_ZTVNSt8ios_base7failureE
  OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt10bad_typeid
  OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt10lock_error
  OBJECT:20:_ZTVSt10lock_error@@GLIBCXX_3.4.11
- OBJECT:20:_ZTVSt11logic_error
  OBJECT:20:_ZTVSt11logic_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt11range_error
  OBJECT:20:_ZTVSt11range_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt11regex_error
  OBJECT:20:_ZTVSt11regex_error@@GLIBCXX_3.4.15
- OBJECT:20:_ZTVSt12bad_weak_ptr
  OBJECT:20:_ZTVSt12bad_weak_ptr@@GLIBCXX_3.4.15
- OBJECT:20:_ZTVSt12domain_error
  OBJECT:20:_ZTVSt12domain_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt12future_error
  OBJECT:20:_ZTVSt12future_error@@GLIBCXX_3.4.14
- OBJECT:20:_ZTVSt12length_error
  OBJECT:20:_ZTVSt12length_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt12out_of_range
  OBJECT:20:_ZTVSt12out_of_range@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt12system_error
  OBJECT:20:_ZTVSt12system_error@@GLIBCXX_3.4.11
- OBJECT:20:_ZTVSt13bad_exception
  OBJECT:20:_ZTVSt13bad_exception@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt13runtime_error
  OBJECT:20:_ZTVSt13runtime_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt14overflow_error
  OBJECT:20:_ZTVSt14overflow_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt15underflow_error
  OBJECT:20:_ZTVSt15underflow_error@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt16bad_array_length
  OBJECT:20:_ZTVSt16bad_array_length@@CXXABI_1.3.8
- OBJECT:20:_ZTVSt16invalid_argument
  OBJECT:20:_ZTVSt16invalid_argument@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt17bad_function_call
  OBJECT:20:_ZTVSt17bad_function_call@@GLIBCXX_3.4.15
- OBJECT:20:_ZTVSt20bad_array_new_length
  OBJECT:20:_ZTVSt20bad_array_new_length@@CXXABI_1.3.8
- OBJECT:20:_ZTVSt8bad_cast
  OBJECT:20:_ZTVSt8bad_cast@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt9bad_alloc
  OBJECT:20:_ZTVSt9bad_alloc@@GLIBCXX_3.4
- OBJECT:20:_ZTVSt9exception
  OBJECT:20:_ZTVSt9exception@@GLIBCXX_3.4
- OBJECT:21:_ZTSSt16bad_array_length
  OBJECT:21:_ZTSSt16bad_array_length@@CXXABI_1.3.8
- OBJECT:21:_ZTSSt16invalid_argument
  OBJECT:21:_ZTSSt16invalid_argument@@GLIBCXX_3.4
- OBJECT:22:_ZTSNSt8ios_base7failureE
  OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCXX_3.4
- OBJECT:22:_ZTSSt10moneypunctIcLb0EE
  OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCXX_3.4
- OBJECT:22:_ZTSSt10moneypunctIcLb1EE
  OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCXX_3.4
- OBJECT:22:_ZTSSt10moneypunctIwLb0EE
  OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCXX_3.4
- OBJECT:22:_ZTSSt10moneypunctIwLb1EE
  OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCXX_3.4
- OBJECT:22:_ZTSSt14collate_bynameIcE
  OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCXX_3.4
- OBJECT:22:_ZTSSt14collate_bynameIwE
  OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCXX_3.4
- OBJECT:23:_ZTSSt15messages_bynameIcE
  OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCXX_3.4
- OBJECT:23:_ZTSSt15messages_bynameIwE
  OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCXX_3.4
- OBJECT:23:_ZTSSt15numpunct_bynameIcE
  OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCXX_3.4
- OBJECT:23:_ZTSSt15numpunct_bynameIwE
  OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCXX_3.4
- OBJECT:24:_ZTISi
  OBJECT:24:_ZTISi@@GLIBCXX_3.4
- OBJECT:24:_ZTISo
  OBJECT:24:_ZTISo@@GLIBCXX_3.4
- OBJECT:24:_ZTISt13basic_istreamIwSt11char_traitsIwEE
  OBJECT:24:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:24:_ZTISt13basic_ostreamIwSt11char_traitsIwEE
  OBJECT:24:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:24:_ZTSNSt7__cxx117collateIcEE
  OBJECT:24:_ZTSNSt7__cxx117collateIcEE@@GLIBCXX_3.4.21
- OBJECT:24:_ZTSNSt7__cxx117collateIwEE
  OBJECT:24:_ZTSNSt7__cxx117collateIwEE@@GLIBCXX_3.4.21
- OBJECT:24:_ZTVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:24:_ZTVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:24:_ZTVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:24:_ZTVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:24:_ZTVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:24:_ZTVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:24:_ZTVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:24:_ZTVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:25:_ZTSNSt7__cxx118messagesIcEE
  OBJECT:25:_ZTSNSt7__cxx118messagesIcEE@@GLIBCXX_3.4.21
- OBJECT:25:_ZTSNSt7__cxx118messagesIwEE
  OBJECT:25:_ZTSNSt7__cxx118messagesIwEE@@GLIBCXX_3.4.21
- OBJECT:25:_ZTSNSt7__cxx118numpunctIcEE
  OBJECT:25:_ZTSNSt7__cxx118numpunctIcEE@@GLIBCXX_3.4.21
- OBJECT:25:_ZTSNSt7__cxx118numpunctIwEE
  OBJECT:25:_ZTSNSt7__cxx118numpunctIwEE@@GLIBCXX_3.4.21
- OBJECT:25:_ZTSSt20bad_array_new_length
  OBJECT:25:_ZTSSt20bad_array_new_length@@CXXABI_1.3.8
- OBJECT:26:_ZTSNSt3pmr15memory_resourceE
  OBJECT:26:_ZTSNSt3pmr15memory_resourceE@@GLIBCXX_3.4.28
- OBJECT:27:_ZTSSt19__codecvt_utf8_baseIwE
  OBJECT:27:_ZTSSt19__codecvt_utf8_baseIwE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTSSt19__codecvt_utf8_baseIDiE
  OBJECT:28:_ZTSSt19__codecvt_utf8_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTSSt19__codecvt_utf8_baseIDsE
  OBJECT:28:_ZTSSt19__codecvt_utf8_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTSSt20__codecvt_utf16_baseIwE
  OBJECT:28:_ZTSSt20__codecvt_utf16_baseIwE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE
  OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE
  OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:28:_ZTTSd
  OBJECT:28:_ZTTSd@@GLIBCXX_3.4
- OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE
  OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:28:_ZTVNSt3pmr15memory_resourceE
  OBJECT:28:_ZTVNSt3pmr15memory_resourceE@@GLIBCXX_3.4.28
- OBJECT:28:_ZTVNSt3pmr25monotonic_buffer_resourceE
  OBJECT:28:_ZTVNSt3pmr25monotonic_buffer_resourceE@@GLIBCXX_3.4.28
- OBJECT:28:_ZTVNSt7__cxx1114collate_bynameIcEE
  OBJECT:28:_ZTVNSt7__cxx1114collate_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx1114collate_bynameIwEE
  OBJECT:28:_ZTVNSt7__cxx1114collate_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx1115messages_bynameIcEE
  OBJECT:28:_ZTVNSt7__cxx1115messages_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx1115messages_bynameIwEE
  OBJECT:28:_ZTVNSt7__cxx1115messages_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx117collateIcEE
  OBJECT:28:_ZTVNSt7__cxx117collateIcEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx117collateIwEE
  OBJECT:28:_ZTVNSt7__cxx117collateIwEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx118messagesIcEE
  OBJECT:28:_ZTVNSt7__cxx118messagesIcEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVNSt7__cxx118messagesIwEE
  OBJECT:28:_ZTVNSt7__cxx118messagesIwEE@@GLIBCXX_3.4.21
- OBJECT:28:_ZTVSt14collate_bynameIcE
  OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt14collate_bynameIwE
  OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt15messages_bynameIcE
  OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt15messages_bynameIwE
  OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt7collateIcE
  OBJECT:28:_ZTVSt7collateIcE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt7collateIwE
  OBJECT:28:_ZTVSt7collateIwE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt8messagesIcE
  OBJECT:28:_ZTVSt8messagesIcE@@GLIBCXX_3.4
- OBJECT:28:_ZTVSt8messagesIwE
  OBJECT:28:_ZTVSt8messagesIwE@@GLIBCXX_3.4
- OBJECT:29:_ZTSNSt8ios_base7failureB5cxx11E
  OBJECT:29:_ZTSNSt8ios_base7failureB5cxx11E@@GLIBCXX_3.4.21
- OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE
  OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
- OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE
  OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
- OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE
  OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
- OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE
  OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
- OBJECT:29:_ZTSSt20__codecvt_utf16_baseIDiE
  OBJECT:29:_ZTSSt20__codecvt_utf16_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:29:_ZTSSt20__codecvt_utf16_baseIDsE
  OBJECT:29:_ZTSSt20__codecvt_utf16_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE
  OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
- OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE
  OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
- OBJECT:29:_ZTSSt7codecvtIDic11__mbstate_tE
  OBJECT:29:_ZTSSt7codecvtIDic11__mbstate_tE@@GLIBCXX_3.4.21
- OBJECT:29:_ZTSSt7codecvtIDsc11__mbstate_tE
  OBJECT:29:_ZTSSt7codecvtIDsc11__mbstate_tE@@GLIBCXX_3.4.21
- OBJECT:2:_ZNSt10ctype_base5alnumE
  OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5alphaE
  OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5blankE
  OBJECT:2:_ZNSt10ctype_base5blankE@@GLIBCXX_3.4.21
- OBJECT:2:_ZNSt10ctype_base5cntrlE
  OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5digitE
  OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5graphE
  OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5lowerE
  OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5printE
  OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5punctE
  OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5spaceE
  OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base5upperE
  OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCXX_3.4
- OBJECT:2:_ZNSt10ctype_base6xdigitE
  OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCXX_3.4
- OBJECT:2:_ZTSa
  OBJECT:2:_ZTSa@@CXXABI_1.3
- OBJECT:2:_ZTSb
  OBJECT:2:_ZTSb@@CXXABI_1.3
- OBJECT:2:_ZTSc
  OBJECT:2:_ZTSc@@CXXABI_1.3
- OBJECT:2:_ZTSd
  OBJECT:2:_ZTSd@@CXXABI_1.3
- OBJECT:2:_ZTSe
  OBJECT:2:_ZTSe@@CXXABI_1.3
- OBJECT:2:_ZTSf
  OBJECT:2:_ZTSf@@CXXABI_1.3
- OBJECT:2:_ZTSh
  OBJECT:2:_ZTSh@@CXXABI_1.3
- OBJECT:2:_ZTSi
  OBJECT:2:_ZTSi@@CXXABI_1.3
- OBJECT:2:_ZTSj
  OBJECT:2:_ZTSj@@CXXABI_1.3
- OBJECT:2:_ZTSl
  OBJECT:2:_ZTSl@@CXXABI_1.3
- OBJECT:2:_ZTSm
  OBJECT:2:_ZTSm@@CXXABI_1.3
- OBJECT:2:_ZTSs
  OBJECT:2:_ZTSs@@CXXABI_1.3
- OBJECT:2:_ZTSt
  OBJECT:2:_ZTSt@@CXXABI_1.3
- OBJECT:2:_ZTSv
  OBJECT:2:_ZTSv@@CXXABI_1.3
- OBJECT:2:_ZTSw
  OBJECT:2:_ZTSw@@CXXABI_1.3
- OBJECT:2:_ZTSx
  OBJECT:2:_ZTSx@@CXXABI_1.3
- OBJECT:2:_ZTSy
  OBJECT:2:_ZTSy@@CXXABI_1.3
- OBJECT:30:_ZTSSt7codecvtIDiDu11__mbstate_tE
  OBJECT:30:_ZTSSt7codecvtIDiDu11__mbstate_tE@@GLIBCXX_3.4.26
- OBJECT:30:_ZTSSt7codecvtIDsDu11__mbstate_tE
  OBJECT:30:_ZTSSt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
- OBJECT:32:_ZTINSt7__cxx1110moneypunctIcLb0EEE
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIcLb0EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx1110moneypunctIcLb1EEE
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIcLb1EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx1110moneypunctIwLb0EEE
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIwLb0EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx1110moneypunctIwLb1EEE
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIwLb1EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx118messagesIcEE
  OBJECT:32:_ZTINSt7__cxx118messagesIcEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx118messagesIwEE
  OBJECT:32:_ZTINSt7__cxx118messagesIwEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:32:_ZTINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:32:_ZTINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTISd
  OBJECT:32:_ZTISd@@GLIBCXX_3.4
- OBJECT:32:_ZTISt10moneypunctIcLb0EE
  OBJECT:32:_ZTISt10moneypunctIcLb0EE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt10moneypunctIcLb1EE
  OBJECT:32:_ZTISt10moneypunctIcLb1EE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt10moneypunctIwLb0EE
  OBJECT:32:_ZTISt10moneypunctIwLb0EE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt10moneypunctIwLb1EE
  OBJECT:32:_ZTISt10moneypunctIwLb1EE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt14basic_iostreamIwSt11char_traitsIwEE
  OBJECT:32:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt21__ctype_abstract_baseIcE
  OBJECT:32:_ZTISt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt21__ctype_abstract_baseIwE
  OBJECT:32:_ZTISt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE
  OBJECT:32:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE
  OBJECT:32:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt5ctypeIcE
  OBJECT:32:_ZTISt5ctypeIcE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt8messagesIcE
  OBJECT:32:_ZTISt8messagesIcE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt8messagesIwE
  OBJECT:32:_ZTISt8messagesIwE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:32:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:32:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:32:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:32:_ZTSNSt7__cxx1110moneypunctIcLb0EEE
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIcLb0EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTSNSt7__cxx1110moneypunctIcLb1EEE
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIcLb1EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTSNSt7__cxx1110moneypunctIwLb0EEE
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIwLb0EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTSNSt7__cxx1110moneypunctIwLb1EEE
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIwLb1EEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTSNSt7__cxx1114collate_bynameIcEE
  OBJECT:32:_ZTSNSt7__cxx1114collate_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTSNSt7__cxx1114collate_bynameIwEE
  OBJECT:32:_ZTSNSt7__cxx1114collate_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE
  OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
- OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE
  OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
- OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE
  OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
- OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE
  OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
- OBJECT:32:_ZTVSt9type_info
  OBJECT:32:_ZTVSt9type_info@@GLIBCXX_3.4
- OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE
  OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
- OBJECT:33:_ZTSNSt7__cxx1115messages_bynameIcEE
  OBJECT:33:_ZTSNSt7__cxx1115messages_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:33:_ZTSNSt7__cxx1115messages_bynameIwEE
  OBJECT:33:_ZTSNSt7__cxx1115messages_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:33:_ZTSNSt7__cxx1115numpunct_bynameIcEE
  OBJECT:33:_ZTSNSt7__cxx1115numpunct_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:33:_ZTSNSt7__cxx1115numpunct_bynameIwEE
  OBJECT:33:_ZTSNSt7__cxx1115numpunct_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:33:_ZTSSt25__codecvt_utf8_utf16_baseIwE
  OBJECT:33:_ZTSSt25__codecvt_utf8_utf16_baseIwE@@GLIBCXX_3.4.21
- OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE
  OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
- OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE
  OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
- OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE
  OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
- OBJECT:34:_ZTSSt25__codecvt_utf8_utf16_baseIDiE
  OBJECT:34:_ZTSSt25__codecvt_utf8_utf16_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:34:_ZTSSt25__codecvt_utf8_utf16_baseIDsE
  OBJECT:34:_ZTSSt25__codecvt_utf8_utf16_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE
  OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE
  OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE
  OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
- OBJECT:36:_ZTSNSt3pmr25monotonic_buffer_resourceE
  OBJECT:36:_ZTSNSt3pmr25monotonic_buffer_resourceE@@GLIBCXX_3.4.28
- OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE
  OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE
  OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE
  OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
- OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE
  OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
- OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE
  OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
- OBJECT:36:_ZTVNSt7__cxx1115numpunct_bynameIcEE
  OBJECT:36:_ZTVNSt7__cxx1115numpunct_bynameIcEE@@GLIBCXX_3.4.21
- OBJECT:36:_ZTVNSt7__cxx1115numpunct_bynameIwEE
  OBJECT:36:_ZTVNSt7__cxx1115numpunct_bynameIwEE@@GLIBCXX_3.4.21
- OBJECT:36:_ZTVNSt7__cxx118numpunctIcEE
  OBJECT:36:_ZTVNSt7__cxx118numpunctIcEE@@GLIBCXX_3.4.21
- OBJECT:36:_ZTVNSt7__cxx118numpunctIwEE
  OBJECT:36:_ZTVNSt7__cxx118numpunctIwEE@@GLIBCXX_3.4.21
- OBJECT:36:_ZTVSt14error_category
  OBJECT:36:_ZTVSt14error_category@@GLIBCXX_3.4.11
- OBJECT:36:_ZTVSt15numpunct_bynameIcE
  OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCXX_3.4
- OBJECT:36:_ZTVSt15numpunct_bynameIwE
  OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCXX_3.4
- OBJECT:36:_ZTVSt8numpunctIcE
  OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCXX_3.4
- OBJECT:36:_ZTVSt8numpunctIwE
  OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCXX_3.4
- OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE
  OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
- OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE
  OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
- OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE
  OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
- OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIcLb0EEE
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIcLb0EEE@@GLIBCXX_3.4.21
- OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIcLb1EEE
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIcLb1EEE@@GLIBCXX_3.4.21
- OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIwLb0EEE
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIwLb0EEE@@GLIBCXX_3.4.21
- OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIwLb1EEE
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIwLb1EEE@@GLIBCXX_3.4.21
- OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE
  OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE
  OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE
  OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE
  OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE
  OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE
  OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:3:_ZTSPa
  OBJECT:3:_ZTSPa@@CXXABI_1.3
- OBJECT:3:_ZTSPb
  OBJECT:3:_ZTSPb@@CXXABI_1.3
- OBJECT:3:_ZTSPc
  OBJECT:3:_ZTSPc@@CXXABI_1.3
- OBJECT:3:_ZTSPd
  OBJECT:3:_ZTSPd@@CXXABI_1.3
- OBJECT:3:_ZTSPe
  OBJECT:3:_ZTSPe@@CXXABI_1.3
- OBJECT:3:_ZTSPf
  OBJECT:3:_ZTSPf@@CXXABI_1.3
- OBJECT:3:_ZTSPh
  OBJECT:3:_ZTSPh@@CXXABI_1.3
- OBJECT:3:_ZTSPi
  OBJECT:3:_ZTSPi@@CXXABI_1.3
- OBJECT:3:_ZTSPj
  OBJECT:3:_ZTSPj@@CXXABI_1.3
- OBJECT:3:_ZTSPl
  OBJECT:3:_ZTSPl@@CXXABI_1.3
- OBJECT:3:_ZTSPm
  OBJECT:3:_ZTSPm@@CXXABI_1.3
- OBJECT:3:_ZTSPs
  OBJECT:3:_ZTSPs@@CXXABI_1.3
- OBJECT:3:_ZTSPt
  OBJECT:3:_ZTSPt@@CXXABI_1.3
- OBJECT:3:_ZTSPv
  OBJECT:3:_ZTSPv@@CXXABI_1.3
- OBJECT:3:_ZTSPw
  OBJECT:3:_ZTSPw@@CXXABI_1.3
- OBJECT:3:_ZTSPx
  OBJECT:3:_ZTSPx@@CXXABI_1.3
- OBJECT:3:_ZTSPy
  OBJECT:3:_ZTSPy@@CXXABI_1.3
- OBJECT:3:_ZTSSd
  OBJECT:3:_ZTSSd@@GLIBCXX_3.4
- OBJECT:3:_ZTSSi
  OBJECT:3:_ZTSSi@@GLIBCXX_3.4
- OBJECT:3:_ZTSSo
  OBJECT:3:_ZTSSo@@GLIBCXX_3.4
- OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE
  OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
- OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE
  OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE
  OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:40:_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:40:_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE
  OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTTSt9strstream
  OBJECT:40:_ZTTSt9strstream@@GLIBCXX_3.4
- OBJECT:40:_ZTVNSt3_V214error_categoryE
  OBJECT:40:_ZTVNSt3_V214error_categoryE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:40:_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:40:_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:40:_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:40:_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:40:_ZTVSi
  OBJECT:40:_ZTVSi@@GLIBCXX_3.4
- OBJECT:40:_ZTVSo
  OBJECT:40:_ZTVSo@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt10istrstream
  OBJECT:40:_ZTVSt10istrstream@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt10ostrstream
  OBJECT:40:_ZTVSt10ostrstream@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE
  OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE
  OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE
  OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:41:_ZTSNSt13__future_base19_Async_state_commonE
  OBJECT:41:_ZTSNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
- OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE
  OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE
  OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE
  OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
- OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE
  OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
- OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE
  OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
- OBJECT:44:_ZTVNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:44:_ZTVNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:44:_ZTVNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:44:_ZTVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:44:_ZTVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE
  OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE
  OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:44:_ZTVSt19__codecvt_utf8_baseIDiE
  OBJECT:44:_ZTVSt19__codecvt_utf8_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt19__codecvt_utf8_baseIDsE
  OBJECT:44:_ZTVSt19__codecvt_utf8_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt19__codecvt_utf8_baseIwE
  OBJECT:44:_ZTVSt19__codecvt_utf8_baseIwE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt20__codecvt_utf16_baseIDiE
  OBJECT:44:_ZTVSt20__codecvt_utf16_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt20__codecvt_utf16_baseIDsE
  OBJECT:44:_ZTVSt20__codecvt_utf16_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt20__codecvt_utf16_baseIwE
  OBJECT:44:_ZTVSt20__codecvt_utf16_baseIwE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE
  OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE
  OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIDiE
  OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIDiE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIDsE
  OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIDsE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIwE
  OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIwE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt7codecvtIDiDu11__mbstate_tE
  OBJECT:44:_ZTVSt7codecvtIDiDu11__mbstate_tE@@GLIBCXX_3.4.26
- OBJECT:44:_ZTVSt7codecvtIDic11__mbstate_tE
  OBJECT:44:_ZTVSt7codecvtIDic11__mbstate_tE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt7codecvtIDsDu11__mbstate_tE
  OBJECT:44:_ZTVSt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
- OBJECT:44:_ZTVSt7codecvtIDsc11__mbstate_tE
  OBJECT:44:_ZTVSt7codecvtIDsc11__mbstate_tE@@GLIBCXX_3.4.21
- OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE
  OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE
  OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE
  OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE
  OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
- OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE
  OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
- OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE
  OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE
  OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:48:_ZTVSt12ctype_bynameIcE
  OBJECT:48:_ZTVSt12ctype_bynameIcE@@GLIBCXX_3.4
- OBJECT:48:_ZTVSt5ctypeIcE
  OBJECT:48:_ZTVSt5ctypeIcE@@GLIBCXX_3.4
- OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE
  OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE
  OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE
  OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCXX_3.4
- OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE
  OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCXX_3.4
- OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE
  OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4
- OBJECT:4:_ZNSs4_Rep11_S_max_sizeE
  OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCXX_3.4
- OBJECT:4:_ZNSs4nposE
  OBJECT:4:_ZNSs4nposE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10__num_base11_S_atoms_inE
  OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10__num_base12_S_atoms_outE
  OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10money_base18_S_default_patternE
  OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10money_base8_S_atomsE
  OBJECT:4:_ZNSt10money_base8_S_atomsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE
  OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE
  OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE
  OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE
  OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt11__timepunctIcE2idE
  OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt11__timepunctIwE2idE
  OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIDiE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIDiE10has_denormE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIDiE11round_styleE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIDiE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIDiE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIDiE12max_exponentE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIDiE12min_exponentE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIDiE14max_exponent10E@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIDiE14min_exponent10E@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIDiE5radixE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIDiE6digitsE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDiE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIDiE8digits10E@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIDsE10has_denormE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIDsE11round_styleE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIDsE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIDsE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIDsE12max_exponentE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIDsE12min_exponentE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIDsE14max_exponent10E@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIDsE14min_exponent10E@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIDsE5radixE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIDsE6digitsE@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDsE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIDsE8digits10E@@GLIBCXX_3.4.11
- OBJECT:4:_ZNSt14numeric_limitsIDuE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIDuE10has_denormE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIDuE11round_styleE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIDuE12max_exponentE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIDuE12min_exponentE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIDuE14max_exponent10E@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIDuE14min_exponent10E@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIDuE5radixE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIDuE6digitsE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIDuE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIDuE8digits10E@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIaE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIbE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIcE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIdE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIeE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIfE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIhE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIiE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIjE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIlE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsImE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE5radixE
  OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsImE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIsE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsItE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE5radixE
  OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsItE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIwE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIxE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE
  OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE
  OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE12max_digits10E
  OBJECT:4:_ZNSt14numeric_limitsIyE12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE
  OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E
  OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE5radixE
  OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE
  OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E
  OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE
  OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE
  OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base12max_digits10E
  OBJECT:4:_ZNSt21__numeric_limits_base12max_digits10E@@GLIBCXX_3.4.14
- OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE
  OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE
  OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E
  OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E
  OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base5radixE
  OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base6digitsE
  OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt21__numeric_limits_base8digits10E
  OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCXX_3.4
- OBJECT:4:_ZNSt5ctypeIcE10table_sizeE
  OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt5ctypeIcE2idE
  OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt5ctypeIwE2idE
  OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale3allE
  OBJECT:4:_ZNSt6locale3allE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale4noneE
  OBJECT:4:_ZNSt6locale4noneE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale4timeE
  OBJECT:4:_ZNSt6locale4timeE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale5ctypeE
  OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale7collateE
  OBJECT:4:_ZNSt6locale7collateE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale7numericE
  OBJECT:4:_ZNSt6locale7numericE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale8messagesE
  OBJECT:4:_ZNSt6locale8messagesE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt6locale8monetaryE
  OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7__cxx1110moneypunctIcLb0EE2idE
  OBJECT:4:_ZNSt7__cxx1110moneypunctIcLb0EE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx1110moneypunctIcLb1EE2idE
  OBJECT:4:_ZNSt7__cxx1110moneypunctIcLb1EE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx1110moneypunctIwLb0EE2idE
  OBJECT:4:_ZNSt7__cxx1110moneypunctIwLb0EE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx1110moneypunctIwLb1EE2idE
  OBJECT:4:_ZNSt7__cxx1110moneypunctIwLb1EE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4nposE
  OBJECT:4:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4nposE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4nposE
  OBJECT:4:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx117collateIcE2idE
  OBJECT:4:_ZNSt7__cxx117collateIcE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx117collateIwE2idE
  OBJECT:4:_ZNSt7__cxx117collateIwE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx118messagesIcE2idE
  OBJECT:4:_ZNSt7__cxx118messagesIcE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx118messagesIwE2idE
  OBJECT:4:_ZNSt7__cxx118messagesIwE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx118numpunctIcE2idE
  OBJECT:4:_ZNSt7__cxx118numpunctIcE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx118numpunctIwE2idE
  OBJECT:4:_ZNSt7__cxx118numpunctIwE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7codecvtIDiDu11__mbstate_tE2idE
  OBJECT:4:_ZNSt7codecvtIDiDu11__mbstate_tE2idE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt7codecvtIDic11__mbstate_tE2idE
  OBJECT:4:_ZNSt7codecvtIDic11__mbstate_tE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7codecvtIDsDu11__mbstate_tE2idE
  OBJECT:4:_ZNSt7codecvtIDsDu11__mbstate_tE2idE@@GLIBCXX_3.4.26
- OBJECT:4:_ZNSt7codecvtIDsc11__mbstate_tE2idE
  OBJECT:4:_ZNSt7codecvtIDsc11__mbstate_tE2idE@@GLIBCXX_3.4.21
- OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE
  OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE
  OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7collateIcE2idE
  OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7collateIwE2idE
  OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base10floatfieldE
  OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base10scientificE
  OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base11adjustfieldE
  OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base2inE
  OBJECT:4:_ZNSt8ios_base2inE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3appE
  OBJECT:4:_ZNSt8ios_base3appE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3ateE
  OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3begE
  OBJECT:4:_ZNSt8ios_base3begE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3curE
  OBJECT:4:_ZNSt8ios_base3curE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3decE
  OBJECT:4:_ZNSt8ios_base3decE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3endE
  OBJECT:4:_ZNSt8ios_base3endE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3hexE
  OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3octE
  OBJECT:4:_ZNSt8ios_base3octE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base3outE
  OBJECT:4:_ZNSt8ios_base3outE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base4leftE
  OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base5fixedE
  OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base5rightE
  OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base5truncE
  OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base6badbitE
  OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base6binaryE
  OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base6eofbitE
  OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base6skipwsE
  OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base7failbitE
  OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base7goodbitE
  OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base7showposE
  OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base7unitbufE
  OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base8internalE
  OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base8showbaseE
  OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base9basefieldE
  OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base9boolalphaE
  OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base9showpointE
  OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8ios_base9uppercaseE
  OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8messagesIcE2idE
  OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8messagesIwE2idE
  OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8numpunctIcE2idE
  OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8numpunctIwE2idE
  OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZSt15future_category@@GLIBCXX_3.4.14
- OBJECT:4:_ZTSPKa
  OBJECT:4:_ZTSPKa@@CXXABI_1.3
- OBJECT:4:_ZTSPKb
  OBJECT:4:_ZTSPKb@@CXXABI_1.3
- OBJECT:4:_ZTSPKc
  OBJECT:4:_ZTSPKc@@CXXABI_1.3
- OBJECT:4:_ZTSPKd
  OBJECT:4:_ZTSPKd@@CXXABI_1.3
- OBJECT:4:_ZTSPKe
  OBJECT:4:_ZTSPKe@@CXXABI_1.3
- OBJECT:4:_ZTSPKf
  OBJECT:4:_ZTSPKf@@CXXABI_1.3
- OBJECT:4:_ZTSPKh
  OBJECT:4:_ZTSPKh@@CXXABI_1.3
- OBJECT:4:_ZTSPKi
  OBJECT:4:_ZTSPKi@@CXXABI_1.3
- OBJECT:4:_ZTSPKj
  OBJECT:4:_ZTSPKj@@CXXABI_1.3
- OBJECT:4:_ZTSPKl
  OBJECT:4:_ZTSPKl@@CXXABI_1.3
- OBJECT:4:_ZTSPKm
  OBJECT:4:_ZTSPKm@@CXXABI_1.3
- OBJECT:4:_ZTSPKs
  OBJECT:4:_ZTSPKs@@CXXABI_1.3
- OBJECT:4:_ZTSPKt
  OBJECT:4:_ZTSPKt@@CXXABI_1.3
- OBJECT:4:_ZTSPKv
  OBJECT:4:_ZTSPKv@@CXXABI_1.3
- OBJECT:4:_ZTSPKw
  OBJECT:4:_ZTSPKw@@CXXABI_1.3
- OBJECT:4:_ZTSPKx
  OBJECT:4:_ZTSPKx@@CXXABI_1.3
- OBJECT:4:_ZTSPKy
  OBJECT:4:_ZTSPKy@@CXXABI_1.3
- OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:52:_ZTVNSt7__cxx1110moneypunctIcLb0EEE
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIcLb0EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1110moneypunctIcLb1EEE
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIcLb1EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1110moneypunctIwLb0EEE
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIwLb0EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1110moneypunctIwLb1EEE
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIwLb1EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIcLb0EEE
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIcLb0EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIcLb1EEE
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIcLb1EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIwLb0EEE
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIwLb0EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIwLb1EEE
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIwLb1EEE@@GLIBCXX_3.4.21
- OBJECT:52:_ZTVSt10moneypunctIcLb0EE
  OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt10moneypunctIcLb1EE
  OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt10moneypunctIwLb0EE
  OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt10moneypunctIwLb1EE
  OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE
  OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE
  OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE
  OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
- OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE
  OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
- OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE
  OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE
  OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:56:_ZNSt17__timepunct_cacheIcE12_S_timezonesE
  OBJECT:56:_ZNSt17__timepunct_cacheIcE12_S_timezonesE@@GLIBCXX_3.4
- OBJECT:56:_ZNSt17__timepunct_cacheIwE12_S_timezonesE
  OBJECT:56:_ZNSt17__timepunct_cacheIwE12_S_timezonesE@@GLIBCXX_3.4
- OBJECT:56:_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE
  OBJECT:56:_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:56:_ZTSNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE
  OBJECT:56:_ZTSNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:59:_ZTSNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:59:_ZTSNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:59:_ZTSNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:59:_ZTSNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTSNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:60:_ZTSNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:60:_ZTSNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:60:_ZTSNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:60:_ZTSNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:60:_ZTSNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:60:_ZTSNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:60:_ZTSNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
  OBJECT:60:_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:60:_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE
  OBJECT:60:_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:60:_ZTVSd
  OBJECT:60:_ZTVSd@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE
  OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE
  OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE
  OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE
  OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE
  OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:60:_ZTVSt9strstream
  OBJECT:60:_ZTVSt9strstream@@GLIBCXX_3.4
- OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE
  OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE
  OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE
  OBJECT:64:_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
- OBJECT:64:_ZTVNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE
  OBJECT:64:_ZTVNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
- OBJECT:64:_ZTVSt12ctype_bynameIwE
  OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt12strstreambuf
  OBJECT:64:_ZTVSt12strstreambuf@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE
  OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE
  OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE
  OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE
  OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE
  OBJECT:64:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE
  OBJECT:64:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE
  OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE
  OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
- OBJECT:64:_ZTVSt5ctypeIwE
  OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCXX_3.4
- OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
  OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
- OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
  OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
- OBJECT:69:_ZTSNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:69:_ZTSNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:69:_ZTSNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:69:_ZTSNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:70:_ZTSNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:70:_ZTSNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:70:_ZTSNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:70:_ZTSNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:70:_ZTSNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:70:_ZTSNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:70:_ZTSNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:70:_ZTSNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:77:_ZTSNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE
  OBJECT:77:_ZTSNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
- OBJECT:77:_ZTSNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE
  OBJECT:77:_ZTSNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE
  OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE
  OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE
  OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE
  OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt11__timepunctIcE2idE
  OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt11__timepunctIwE2idE
  OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt7__cxx1110moneypunctIcLb0EE2idE
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIcLb0EE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx1110moneypunctIcLb1EE2idE
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIcLb1EE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx1110moneypunctIwLb0EE2idE
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIwLb0EE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx1110moneypunctIwLb1EE2idE
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIwLb1EE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx117collateIcE2idE
  OBJECT:8:_ZGVNSt7__cxx117collateIcE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx117collateIwE2idE
  OBJECT:8:_ZGVNSt7__cxx117collateIwE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx118messagesIcE2idE
  OBJECT:8:_ZGVNSt7__cxx118messagesIcE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx118messagesIwE2idE
  OBJECT:8:_ZGVNSt7__cxx118messagesIwE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx118numpunctIcE2idE
  OBJECT:8:_ZGVNSt7__cxx118numpunctIcE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx118numpunctIwE2idE
  OBJECT:8:_ZGVNSt7__cxx118numpunctIwE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
- OBJECT:8:_ZGVNSt7collateIcE2idE
  OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt7collateIwE2idE
  OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8messagesIcE2idE
  OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8messagesIwE2idE
  OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8numpunctIcE2idE
  OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8numpunctIwE2idE
  OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE
  OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE
  OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
- OBJECT:8:_ZTIDF32_
  OBJECT:8:_ZTIDF32_@@CXXABI_1.3.14
- OBJECT:8:_ZTIDF32x
  OBJECT:8:_ZTIDF32x@@CXXABI_1.3.14
- OBJECT:8:_ZTIDF64_
  OBJECT:8:_ZTIDF64_@@CXXABI_1.3.14
- OBJECT:8:_ZTIDd
  OBJECT:8:_ZTIDd@@CXXABI_1.3.4
- OBJECT:8:_ZTIDe
  OBJECT:8:_ZTIDe@@CXXABI_1.3.4
- OBJECT:8:_ZTIDf
  OBJECT:8:_ZTIDf@@CXXABI_1.3.4
- OBJECT:8:_ZTIDi
  OBJECT:8:_ZTIDi@@CXXABI_1.3.3
- OBJECT:8:_ZTIDn
  OBJECT:8:_ZTIDn@@CXXABI_1.3.5
- OBJECT:8:_ZTIDs
  OBJECT:8:_ZTIDs@@CXXABI_1.3.3
- OBJECT:8:_ZTIDu
  OBJECT:8:_ZTIDu@@CXXABI_1.3.12
- OBJECT:8:_ZTIN10__cxxabiv115__forced_unwindE
  OBJECT:8:_ZTIN10__cxxabiv115__forced_unwindE@@CXXABI_1.3.2
- OBJECT:8:_ZTIN10__cxxabiv119__foreign_exceptionE
  OBJECT:8:_ZTIN10__cxxabiv119__foreign_exceptionE@@CXXABI_1.3.2
- OBJECT:8:_ZTINSt13__future_base11_State_baseE
  OBJECT:8:_ZTINSt13__future_base11_State_baseE@@GLIBCXX_3.4.15
- OBJECT:8:_ZTINSt13__future_base12_Result_baseE
  OBJECT:8:_ZTINSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15
- OBJECT:8:_ZTINSt3_V214error_categoryE
  OBJECT:8:_ZTINSt3_V214error_categoryE@@GLIBCXX_3.4.21
- OBJECT:8:_ZTINSt3pmr15memory_resourceE
  OBJECT:8:_ZTINSt3pmr15memory_resourceE@@GLIBCXX_3.4.28
- OBJECT:8:_ZTINSt6locale5facetE
  OBJECT:8:_ZTINSt6locale5facetE@@GLIBCXX_3.4
- OBJECT:8:_ZTINSt6thread6_StateE
  OBJECT:8:_ZTINSt6thread6_StateE@@GLIBCXX_3.4.22
- OBJECT:8:_ZTISt10ctype_base
  OBJECT:8:_ZTISt10ctype_base@@GLIBCXX_3.4
- OBJECT:8:_ZTISt10money_base
  OBJECT:8:_ZTISt10money_base@@GLIBCXX_3.4
- OBJECT:8:_ZTISt12codecvt_base
  OBJECT:8:_ZTISt12codecvt_base@@GLIBCXX_3.4
- OBJECT:8:_ZTISt13messages_base
  OBJECT:8:_ZTISt13messages_base@@GLIBCXX_3.4
- OBJECT:8:_ZTISt14error_category
  OBJECT:8:_ZTISt14error_category@@GLIBCXX_3.4.11
- OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE
  OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
- OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE
  OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:8:_ZTISt16nested_exception
  OBJECT:8:_ZTISt16nested_exception@@CXXABI_1.3.5
- OBJECT:8:_ZTISt8ios_base
  OBJECT:8:_ZTISt8ios_base@@GLIBCXX_3.4
- OBJECT:8:_ZTISt9exception
  OBJECT:8:_ZTISt9exception@@GLIBCXX_3.4
- OBJECT:8:_ZTISt9time_base
  OBJECT:8:_ZTISt9time_base@@GLIBCXX_3.4
- OBJECT:8:_ZTISt9type_info
  OBJECT:8:_ZTISt9type_info@@GLIBCXX_3.4
- OBJECT:8:_ZTIa
  OBJECT:8:_ZTIa@@CXXABI_1.3
- OBJECT:8:_ZTIb
  OBJECT:8:_ZTIb@@CXXABI_1.3
- OBJECT:8:_ZTIc
  OBJECT:8:_ZTIc@@CXXABI_1.3
- OBJECT:8:_ZTId
  OBJECT:8:_ZTId@@CXXABI_1.3
- OBJECT:8:_ZTIe
  OBJECT:8:_ZTIe@@CXXABI_1.3
- OBJECT:8:_ZTIf
  OBJECT:8:_ZTIf@@CXXABI_1.3
- OBJECT:8:_ZTIh
  OBJECT:8:_ZTIh@@CXXABI_1.3
- OBJECT:8:_ZTIi
  OBJECT:8:_ZTIi@@CXXABI_1.3
- OBJECT:8:_ZTIj
  OBJECT:8:_ZTIj@@CXXABI_1.3
- OBJECT:8:_ZTIl
  OBJECT:8:_ZTIl@@CXXABI_1.3
- OBJECT:8:_ZTIm
  OBJECT:8:_ZTIm@@CXXABI_1.3
- OBJECT:8:_ZTIs
  OBJECT:8:_ZTIs@@CXXABI_1.3
- OBJECT:8:_ZTIt
  OBJECT:8:_ZTIt@@CXXABI_1.3
- OBJECT:8:_ZTIv
  OBJECT:8:_ZTIv@@CXXABI_1.3
- OBJECT:8:_ZTIw
  OBJECT:8:_ZTIw@@CXXABI_1.3
- OBJECT:8:_ZTIx
  OBJECT:8:_ZTIx@@CXXABI_1.3
- OBJECT:8:_ZTIy
  OBJECT:8:_ZTIy@@CXXABI_1.3
- OBJECT:8:_ZTTSi
  OBJECT:8:_ZTTSi@@GLIBCXX_3.4
- OBJECT:8:_ZTTSo
  OBJECT:8:_ZTTSo@@GLIBCXX_3.4
- OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE
  OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
- OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE
  OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
--- 4647,6041 ----
  OBJECT:0:GLIBCXX_3.4.30
  OBJECT:0:GLIBCXX_3.4.31
  OBJECT:0:GLIBCXX_3.4.32
+ OBJECT:0:GLIBCXX_3.4.33
+ OBJECT:0:GLIBCXX_3.4.34
+ OBJECT:0:GLIBCXX_3.4.35
  OBJECT:0:GLIBCXX_3.4.4
  OBJECT:0:GLIBCXX_3.4.5
  OBJECT:0:GLIBCXX_3.4.6
  OBJECT:0:GLIBCXX_3.4.7
  OBJECT:0:GLIBCXX_3.4.8
  OBJECT:0:GLIBCXX_3.4.9
  OBJECT:1028:_ZNSt3tr18__detail12__prime_listE@@GLIBCXX_3.4.10
  OBJECT:1028:_ZNSt8__detail12__prime_listE@@GLIBCXX_3.4.10
  OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
  OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTINSt10filesystem16filesystem_errorE@@GLIBCXX_3.4.26
  OBJECT:12:_ZTINSt10filesystem7__cxx1116filesystem_errorE@@GLIBCXX_3.4.26
  OBJECT:12:_ZTINSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
  OBJECT:12:_ZTINSt3pmr25monotonic_buffer_resourceE@@GLIBCXX_3.4.28
  OBJECT:12:_ZTINSt3pmr26synchronized_pool_resourceE@@GLIBCXX_3.4.26
  OBJECT:12:_ZTINSt3pmr28unsynchronized_pool_resourceE@@GLIBCXX_3.4.26
  OBJECT:12:_ZTINSt7__cxx1114collate_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1114collate_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115messages_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115messages_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115numpunct_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115numpunct_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIcLb0EEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIcLb1EEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIwLb0EEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1117moneypunct_bynameIwLb1EEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx117collateIcEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx117collateIwEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx118numpunctIcEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx118numpunctIwEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt8ios_base7failureB5cxx11E@@GLIBCXX_3.4.21
  OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt10bad_typeid@@GLIBCXX_3.4
  OBJECT:12:_ZTISt10istrstream@@GLIBCXX_3.4
  OBJECT:12:_ZTISt10lock_error@@GLIBCXX_3.4.11
  OBJECT:12:_ZTISt10ostrstream@@GLIBCXX_3.4
  OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt11logic_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt11range_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt11regex_error@@GLIBCXX_3.4.15
  OBJECT:12:_ZTISt12bad_weak_ptr@@GLIBCXX_3.4.15
  OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt12domain_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt12future_error@@GLIBCXX_3.4.14
  OBJECT:12:_ZTISt12length_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt12out_of_range@@GLIBCXX_3.4
  OBJECT:12:_ZTISt12strstreambuf@@GLIBCXX_3.4
  OBJECT:12:_ZTISt12system_error@@GLIBCXX_3.4.11
  OBJECT:12:_ZTISt13bad_exception@@GLIBCXX_3.4
  OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt13runtime_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt14overflow_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt15underflow_error@@GLIBCXX_3.4
  OBJECT:12:_ZTISt16bad_array_length@@CXXABI_1.3.8
  OBJECT:12:_ZTISt16invalid_argument@@GLIBCXX_3.4
  OBJECT:12:_ZTISt17bad_function_call@@GLIBCXX_3.4.15
  OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt19__codecvt_utf8_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt19__codecvt_utf8_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt19__codecvt_utf8_baseIwE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt20__codecvt_utf16_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt20__codecvt_utf16_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt20__codecvt_utf16_baseIwE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt20bad_array_new_length@@CXXABI_1.3.8
  OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt25__codecvt_utf8_utf16_baseIwE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt5ctypeIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7codecvtIDiDu11__mbstate_tE@@GLIBCXX_3.4.26
  OBJECT:12:_ZTISt7codecvtIDic11__mbstate_tE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
  OBJECT:12:_ZTISt7codecvtIDsc11__mbstate_tE@@GLIBCXX_3.4.21
  OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7collateIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7collateIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt8bad_cast@@GLIBCXX_3.4
  OBJECT:12:_ZTISt8numpunctIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt8numpunctIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9bad_alloc@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:12:_ZTISt9strstream@@GLIBCXX_3.4
  OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCXX_3.4
  OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCXX_3.4
  OBJECT:12:_ZTSSt8bad_cast@@GLIBCXX_3.4
  OBJECT:12:_ZTSSt8ios_base@@GLIBCXX_3.4
  OBJECT:13:_ZTSSt9bad_alloc@@GLIBCXX_3.4
  OBJECT:13:_ZTSSt9exception@@GLIBCXX_3.4
  OBJECT:13:_ZTSSt9strstream@@GLIBCXX_3.4
  OBJECT:13:_ZTSSt9time_base@@GLIBCXX_3.4
  OBJECT:13:_ZTSSt9type_info@@GLIBCXX_3.4
  OBJECT:140:_ZSt4cerr@@GLIBCXX_3.4
  OBJECT:140:_ZSt4clog@@GLIBCXX_3.4
  OBJECT:140:_ZSt4cout@@GLIBCXX_3.4
  OBJECT:144:_ZSt3cin@@GLIBCXX_3.4
  OBJECT:144:_ZSt5wcerr@@GLIBCXX_3.4
  OBJECT:144:_ZSt5wclog@@GLIBCXX_3.4
  OBJECT:144:_ZSt5wcout@@GLIBCXX_3.4
  OBJECT:148:_ZSt4wcin@@GLIBCXX_3.4
  OBJECT:14:_ZTSSt7collateIcE@@GLIBCXX_3.4
  OBJECT:14:_ZTSSt7collateIwE@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt10bad_typeid@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt10ctype_base@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt10istrstream@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt10lock_error@@GLIBCXX_3.4.11
  OBJECT:15:_ZTSSt10money_base@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt10ostrstream@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt8messagesIcE@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
  OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
  OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
  OBJECT:16:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
  OBJECT:16:_ZTIPDF32_@@CXXABI_1.3.14
  OBJECT:16:_ZTIPDF32x@@CXXABI_1.3.14
  OBJECT:16:_ZTIPDF64_@@CXXABI_1.3.14
  OBJECT:16:_ZTIPDd@@CXXABI_1.3.4
  OBJECT:16:_ZTIPDe@@CXXABI_1.3.4
  OBJECT:16:_ZTIPDf@@CXXABI_1.3.4
  OBJECT:16:_ZTIPDi@@CXXABI_1.3.3
  OBJECT:16:_ZTIPDn@@CXXABI_1.3.5
  OBJECT:16:_ZTIPDs@@CXXABI_1.3.3
  OBJECT:16:_ZTIPDu@@CXXABI_1.3.12
  OBJECT:16:_ZTIPKDF32_@@CXXABI_1.3.14
  OBJECT:16:_ZTIPKDF32x@@CXXABI_1.3.14
  OBJECT:16:_ZTIPKDF64_@@CXXABI_1.3.14
  OBJECT:16:_ZTIPKDd@@CXXABI_1.3.4
  OBJECT:16:_ZTIPKDe@@CXXABI_1.3.4
  OBJECT:16:_ZTIPKDf@@CXXABI_1.3.4
  OBJECT:16:_ZTIPKDi@@CXXABI_1.3.3
  OBJECT:16:_ZTIPKDn@@CXXABI_1.3.5
  OBJECT:16:_ZTIPKDs@@CXXABI_1.3.3
  OBJECT:16:_ZTIPKDu@@CXXABI_1.3.12
  OBJECT:16:_ZTIPKa@@CXXABI_1.3
  OBJECT:16:_ZTIPKb@@CXXABI_1.3
  OBJECT:16:_ZTIPKc@@CXXABI_1.3
  OBJECT:16:_ZTIPKd@@CXXABI_1.3
  OBJECT:16:_ZTIPKe@@CXXABI_1.3
  OBJECT:16:_ZTIPKf@@CXXABI_1.3
  OBJECT:16:_ZTIPKh@@CXXABI_1.3
  OBJECT:16:_ZTIPKi@@CXXABI_1.3
  OBJECT:16:_ZTIPKj@@CXXABI_1.3
  OBJECT:16:_ZTIPKl@@CXXABI_1.3
  OBJECT:16:_ZTIPKm@@CXXABI_1.3
  OBJECT:16:_ZTIPKs@@CXXABI_1.3
  OBJECT:16:_ZTIPKt@@CXXABI_1.3
  OBJECT:16:_ZTIPKv@@CXXABI_1.3
  OBJECT:16:_ZTIPKw@@CXXABI_1.3
  OBJECT:16:_ZTIPKx@@CXXABI_1.3
  OBJECT:16:_ZTIPKy@@CXXABI_1.3
  OBJECT:16:_ZTIPa@@CXXABI_1.3
  OBJECT:16:_ZTIPb@@CXXABI_1.3
  OBJECT:16:_ZTIPc@@CXXABI_1.3
  OBJECT:16:_ZTIPd@@CXXABI_1.3
  OBJECT:16:_ZTIPe@@CXXABI_1.3
  OBJECT:16:_ZTIPf@@CXXABI_1.3
  OBJECT:16:_ZTIPh@@CXXABI_1.3
  OBJECT:16:_ZTIPi@@CXXABI_1.3
  OBJECT:16:_ZTIPj@@CXXABI_1.3
  OBJECT:16:_ZTIPl@@CXXABI_1.3
  OBJECT:16:_ZTIPm@@CXXABI_1.3
  OBJECT:16:_ZTIPs@@CXXABI_1.3
  OBJECT:16:_ZTIPt@@CXXABI_1.3
  OBJECT:16:_ZTIPv@@CXXABI_1.3
  OBJECT:16:_ZTIPw@@CXXABI_1.3
  OBJECT:16:_ZTIPx@@CXXABI_1.3
  OBJECT:16:_ZTIPy@@CXXABI_1.3
  OBJECT:16:_ZTSSt11logic_error@@GLIBCXX_3.4
  OBJECT:16:_ZTSSt11range_error@@GLIBCXX_3.4
  OBJECT:16:_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:16:_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:16:_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:16:_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:16:_ZTTSt10istrstream@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt10ostrstream@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCXX_3.4
  OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCXX_3.4
  OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCXX_3.4
  OBJECT:16:_ZTVSt16nested_exception@@CXXABI_1.3.5
  OBJECT:16:_ZTVSt8ios_base@@GLIBCXX_3.4
  OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:17:_ZTSSt12codecvt_base@@GLIBCXX_3.4
  OBJECT:17:_ZTSSt12domain_error@@GLIBCXX_3.4
  OBJECT:17:_ZTSSt12future_error@@GLIBCXX_3.4.14
  OBJECT:17:_ZTSSt12length_error@@GLIBCXX_3.4
  OBJECT:17:_ZTSSt12out_of_range@@GLIBCXX_3.4
  OBJECT:17:_ZTSSt12strstreambuf@@GLIBCXX_3.4
  OBJECT:17:_ZTSSt12system_error@@GLIBCXX_3.4.11
  OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCXX_3.4
  OBJECT:18:_ZTSSt13bad_exception@@GLIBCXX_3.4
  OBJECT:18:_ZTSSt13messages_base@@GLIBCXX_3.4
  OBJECT:18:_ZTSSt13runtime_error@@GLIBCXX_3.4
  OBJECT:19:_ZTSNSt6thread6_StateE@@GLIBCXX_3.4.22
  OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCXX_3.4
  OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCXX_3.4
  OBJECT:19:_ZTSSt14error_category@@GLIBCXX_3.4.11
  OBJECT:19:_ZTSSt14overflow_error@@GLIBCXX_3.4
  OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt12placeholders2_1E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_2E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_3E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_4E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_5E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_6E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_7E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_8E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders2_9E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_10E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_11E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_12E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_13E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_14E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_15E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_16E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_17E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_18E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_19E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_20E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_21E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_22E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_23E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_24E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_25E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_26E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_27E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_28E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt12placeholders3_29E@@GLIBCXX_3.4.15
  OBJECT:1:_ZNSt14numeric_limitsIDiE10is_boundedE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE10is_integerE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE12has_infinityE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE13has_quiet_NaNE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE14is_specializedE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE15has_denorm_lossE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE15tinyness_beforeE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE17has_signaling_NaNE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE5trapsE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE8is_exactE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE9is_iec559E@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE9is_moduloE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDiE9is_signedE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE10is_boundedE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE10is_integerE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE12has_infinityE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE13has_quiet_NaNE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE14is_specializedE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE15has_denorm_lossE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE15tinyness_beforeE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE17has_signaling_NaNE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE5trapsE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE8is_exactE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE9is_iec559E@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE9is_moduloE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDsE9is_signedE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt14numeric_limitsIDuE10is_boundedE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE10is_integerE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE12has_infinityE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE13has_quiet_NaNE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE14is_specializedE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE15has_denorm_lossE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE15tinyness_beforeE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE17has_signaling_NaNE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE5trapsE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE8is_exactE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE9is_iec559E@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE9is_moduloE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIDuE9is_signedE@@GLIBCXX_3.4.26
  OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
  OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
  OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
  OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
  OBJECT:1:_ZNSt7__cxx1110moneypunctIcLb0EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1110moneypunctIcLb1EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1110moneypunctIwLb0EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1110moneypunctIwLb1EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIcLb0EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIcLb1EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIwLb0EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZNSt7__cxx1117moneypunct_bynameIwLb1EE4intlE@@GLIBCXX_3.4.21
  OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
  OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
  OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
  OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
  OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
  OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
  OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVNSt10filesystem16filesystem_errorE@@GLIBCXX_3.4.26
  OBJECT:20:_ZTVNSt10filesystem7__cxx1116filesystem_errorE@@GLIBCXX_3.4.26
  OBJECT:20:_ZTVNSt13__future_base11_State_baseE@@GLIBCXX_3.4.15
  OBJECT:20:_ZTVNSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15
  OBJECT:20:_ZTVNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
  OBJECT:20:_ZTVNSt6thread6_StateE@@GLIBCXX_3.4.22
  OBJECT:20:_ZTVNSt8ios_base7failureB5cxx11E@@GLIBCXX_3.4.21
  OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt10lock_error@@GLIBCXX_3.4.11
  OBJECT:20:_ZTVSt11logic_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt11range_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt11regex_error@@GLIBCXX_3.4.15
  OBJECT:20:_ZTVSt12bad_weak_ptr@@GLIBCXX_3.4.15
  OBJECT:20:_ZTVSt12domain_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt12future_error@@GLIBCXX_3.4.14
  OBJECT:20:_ZTVSt12length_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt12out_of_range@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt12system_error@@GLIBCXX_3.4.11
  OBJECT:20:_ZTVSt13bad_exception@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt13runtime_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt14overflow_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt15underflow_error@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt16bad_array_length@@CXXABI_1.3.8
  OBJECT:20:_ZTVSt16invalid_argument@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt17bad_function_call@@GLIBCXX_3.4.15
  OBJECT:20:_ZTVSt20bad_array_new_length@@CXXABI_1.3.8
  OBJECT:20:_ZTVSt8bad_cast@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt9bad_alloc@@GLIBCXX_3.4
  OBJECT:20:_ZTVSt9exception@@GLIBCXX_3.4
  OBJECT:21:_ZTSSt16bad_array_length@@CXXABI_1.3.8
  OBJECT:21:_ZTSSt16invalid_argument@@GLIBCXX_3.4
  OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCXX_3.4
  OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCXX_3.4
  OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCXX_3.4
  OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCXX_3.4
  OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCXX_3.4
  OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCXX_3.4
  OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCXX_3.4
  OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCXX_3.4
  OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCXX_3.4
  OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCXX_3.4
  OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCXX_3.4
  OBJECT:24:_ZTISi@@GLIBCXX_3.4
  OBJECT:24:_ZTISo@@GLIBCXX_3.4
  OBJECT:24:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:24:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:24:_ZTSNSt7__cxx117collateIcEE@@GLIBCXX_3.4.21
  OBJECT:24:_ZTSNSt7__cxx117collateIwEE@@GLIBCXX_3.4.21
  OBJECT:24:_ZTVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:24:_ZTVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:24:_ZTVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:24:_ZTVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:25:_ZTSNSt7__cxx118messagesIcEE@@GLIBCXX_3.4.21
  OBJECT:25:_ZTSNSt7__cxx118messagesIwEE@@GLIBCXX_3.4.21
  OBJECT:25:_ZTSNSt7__cxx118numpunctIcEE@@GLIBCXX_3.4.21
  OBJECT:25:_ZTSNSt7__cxx118numpunctIwEE@@GLIBCXX_3.4.21
  OBJECT:25:_ZTSSt20bad_array_new_length@@CXXABI_1.3.8
  OBJECT:26:_ZTSNSt3pmr15memory_resourceE@@GLIBCXX_3.4.28
  OBJECT:27:_ZTSSt19__codecvt_utf8_baseIwE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTSSt19__codecvt_utf8_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTSSt19__codecvt_utf8_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTSSt20__codecvt_utf16_baseIwE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:28:_ZTTSd@@GLIBCXX_3.4
  OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:28:_ZTVNSt3pmr15memory_resourceE@@GLIBCXX_3.4.28
  OBJECT:28:_ZTVNSt3pmr25monotonic_buffer_resourceE@@GLIBCXX_3.4.28
  OBJECT:28:_ZTVNSt7__cxx1114collate_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx1114collate_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx1115messages_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx1115messages_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx117collateIcEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx117collateIwEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx118messagesIcEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVNSt7__cxx118messagesIwEE@@GLIBCXX_3.4.21
  OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt7collateIcE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt7collateIwE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt8messagesIcE@@GLIBCXX_3.4
  OBJECT:28:_ZTVSt8messagesIwE@@GLIBCXX_3.4
  OBJECT:29:_ZTSNSt8ios_base7failureB5cxx11E@@GLIBCXX_3.4.21
  OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
  OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
  OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
  OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
  OBJECT:29:_ZTSSt20__codecvt_utf16_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:29:_ZTSSt20__codecvt_utf16_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
  OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
  OBJECT:29:_ZTSSt7codecvtIDic11__mbstate_tE@@GLIBCXX_3.4.21
  OBJECT:29:_ZTSSt7codecvtIDsc11__mbstate_tE@@GLIBCXX_3.4.21
  OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5blankE@@GLIBCXX_3.4.21
  OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCXX_3.4
  OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCXX_3.4
  OBJECT:2:_ZTSa@@CXXABI_1.3
  OBJECT:2:_ZTSb@@CXXABI_1.3
  OBJECT:2:_ZTSc@@CXXABI_1.3
  OBJECT:2:_ZTSd@@CXXABI_1.3
  OBJECT:2:_ZTSe@@CXXABI_1.3
  OBJECT:2:_ZTSf@@CXXABI_1.3
  OBJECT:2:_ZTSh@@CXXABI_1.3
  OBJECT:2:_ZTSi@@CXXABI_1.3
  OBJECT:2:_ZTSj@@CXXABI_1.3
  OBJECT:2:_ZTSl@@CXXABI_1.3
  OBJECT:2:_ZTSm@@CXXABI_1.3
  OBJECT:2:_ZTSs@@CXXABI_1.3
  OBJECT:2:_ZTSt@@CXXABI_1.3
  OBJECT:2:_ZTSv@@CXXABI_1.3
  OBJECT:2:_ZTSw@@CXXABI_1.3
  OBJECT:2:_ZTSx@@CXXABI_1.3
  OBJECT:2:_ZTSy@@CXXABI_1.3
  OBJECT:30:_ZTSSt7codecvtIDiDu11__mbstate_tE@@GLIBCXX_3.4.26
  OBJECT:30:_ZTSSt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIcLb0EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIcLb1EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIwLb0EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx1110moneypunctIwLb1EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx118messagesIcEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx118messagesIwEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTISd@@GLIBCXX_3.4
  OBJECT:32:_ZTISt10moneypunctIcLb0EE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt10moneypunctIcLb1EE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt10moneypunctIwLb0EE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt10moneypunctIwLb1EE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt5ctypeIcE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt8messagesIcE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt8messagesIwE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:32:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIcLb0EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIcLb1EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIwLb0EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTSNSt7__cxx1110moneypunctIwLb1EEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTSNSt7__cxx1114collate_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTSNSt7__cxx1114collate_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
  OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
  OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
  OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
  OBJECT:32:_ZTVSt9type_info@@GLIBCXX_3.4
  OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@CXXABI_1.3
  OBJECT:33:_ZTSNSt7__cxx1115messages_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:33:_ZTSNSt7__cxx1115messages_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:33:_ZTSNSt7__cxx1115numpunct_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:33:_ZTSNSt7__cxx1115numpunct_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:33:_ZTSSt25__codecvt_utf8_utf16_baseIwE@@GLIBCXX_3.4.21
  OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@CXXABI_1.3
  OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
  OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
  OBJECT:34:_ZTSSt25__codecvt_utf8_utf16_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:34:_ZTSSt25__codecvt_utf8_utf16_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
  OBJECT:36:_ZTSNSt3pmr25monotonic_buffer_resourceE@@GLIBCXX_3.4.28
  OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@CXXABI_1.3
  OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@CXXABI_1.3
  OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
  OBJECT:36:_ZTVNSt7__cxx1115numpunct_bynameIcEE@@GLIBCXX_3.4.21
  OBJECT:36:_ZTVNSt7__cxx1115numpunct_bynameIwEE@@GLIBCXX_3.4.21
  OBJECT:36:_ZTVNSt7__cxx118numpunctIcEE@@GLIBCXX_3.4.21
  OBJECT:36:_ZTVNSt7__cxx118numpunctIwEE@@GLIBCXX_3.4.21
  OBJECT:36:_ZTVSt14error_category@@GLIBCXX_3.4.11
  OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCXX_3.4
  OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCXX_3.4
  OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCXX_3.4
  OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCXX_3.4
  OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@CXXABI_1.3
  OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
  OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIcLb0EEE@@GLIBCXX_3.4.21
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIcLb1EEE@@GLIBCXX_3.4.21
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIwLb0EEE@@GLIBCXX_3.4.21
  OBJECT:39:_ZTSNSt7__cxx1117moneypunct_bynameIwLb1EEE@@GLIBCXX_3.4.21
  OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:3:_ZTSPa@@CXXABI_1.3
  OBJECT:3:_ZTSPb@@CXXABI_1.3
  OBJECT:3:_ZTSPc@@CXXABI_1.3
  OBJECT:3:_ZTSPd@@CXXABI_1.3
  OBJECT:3:_ZTSPe@@CXXABI_1.3
  OBJECT:3:_ZTSPf@@CXXABI_1.3
  OBJECT:3:_ZTSPh@@CXXABI_1.3
  OBJECT:3:_ZTSPi@@CXXABI_1.3
  OBJECT:3:_ZTSPj@@CXXABI_1.3
  OBJECT:3:_ZTSPl@@CXXABI_1.3
  OBJECT:3:_ZTSPm@@CXXABI_1.3
  OBJECT:3:_ZTSPs@@CXXABI_1.3
  OBJECT:3:_ZTSPt@@CXXABI_1.3
  OBJECT:3:_ZTSPv@@CXXABI_1.3
  OBJECT:3:_ZTSPw@@CXXABI_1.3
  OBJECT:3:_ZTSPx@@CXXABI_1.3
  OBJECT:3:_ZTSPy@@CXXABI_1.3
  OBJECT:3:_ZTSSd@@GLIBCXX_3.4
  OBJECT:3:_ZTSSi@@GLIBCXX_3.4
  OBJECT:3:_ZTSSo@@GLIBCXX_3.4
  OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@CXXABI_1.3
  OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTTSt9strstream@@GLIBCXX_3.4
  OBJECT:40:_ZTVNSt3_V214error_categoryE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:40:_ZTVSi@@GLIBCXX_3.4
  OBJECT:40:_ZTVSo@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt10istrstream@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt10ostrstream@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:41:_ZTSNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
  OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
  OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
  OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
  OBJECT:44:_ZTVNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:44:_ZTVSt19__codecvt_utf8_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt19__codecvt_utf8_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt19__codecvt_utf8_baseIwE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt20__codecvt_utf16_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt20__codecvt_utf16_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt20__codecvt_utf16_baseIwE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIDiE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIDsE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt25__codecvt_utf8_utf16_baseIwE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt7codecvtIDiDu11__mbstate_tE@@GLIBCXX_3.4.26
  OBJECT:44:_ZTVSt7codecvtIDic11__mbstate_tE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
  OBJECT:44:_ZTVSt7codecvtIDsc11__mbstate_tE@@GLIBCXX_3.4.21
  OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCXX_3.4
  OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@CXXABI_1.3
  OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:48:_ZTVSt12ctype_bynameIcE@@GLIBCXX_3.4
  OBJECT:48:_ZTVSt5ctypeIcE@@GLIBCXX_3.4
  OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCXX_3.4
  OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCXX_3.4
  OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4
  OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCXX_3.4
  OBJECT:4:_ZNSs4nposE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10money_base8_S_atomsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIDiE10has_denormE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE11round_styleE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIDiE12max_exponentE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE12min_exponentE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE14max_exponent10E@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE14min_exponent10E@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE5radixE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE6digitsE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDiE8digits10E@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE10has_denormE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE11round_styleE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIDsE12max_exponentE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE12min_exponentE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE14max_exponent10E@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE14min_exponent10E@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE5radixE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE6digitsE@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDsE8digits10E@@GLIBCXX_3.4.11
  OBJECT:4:_ZNSt14numeric_limitsIDuE10has_denormE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE11round_styleE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE12max_exponentE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE12min_exponentE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE14max_exponent10E@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE14min_exponent10E@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE5radixE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE6digitsE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIDuE8digits10E@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base12max_digits10E@@GLIBCXX_3.4.14
  OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCXX_3.4
  OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale3allE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale4noneE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale4timeE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale7collateE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale7numericE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale8messagesE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7__cxx1110moneypunctIcLb0EE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx1110moneypunctIcLb1EE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx1110moneypunctIwLb0EE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx1110moneypunctIwLb1EE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4nposE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4nposE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx117collateIcE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx117collateIwE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx118messagesIcE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx118messagesIwE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx118numpunctIcE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx118numpunctIwE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7codecvtIDiDu11__mbstate_tE2idE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt7codecvtIDic11__mbstate_tE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7codecvtIDsDu11__mbstate_tE2idE@@GLIBCXX_3.4.26
  OBJECT:4:_ZNSt7codecvtIDsc11__mbstate_tE2idE@@GLIBCXX_3.4.21
  OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base2inE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3appE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3begE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3curE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3decE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3endE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3octE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base3outE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:4:_ZSt15future_category@@GLIBCXX_3.4.14
  OBJECT:4:_ZTSPKa@@CXXABI_1.3
  OBJECT:4:_ZTSPKb@@CXXABI_1.3
  OBJECT:4:_ZTSPKc@@CXXABI_1.3
  OBJECT:4:_ZTSPKd@@CXXABI_1.3
  OBJECT:4:_ZTSPKe@@CXXABI_1.3
  OBJECT:4:_ZTSPKf@@CXXABI_1.3
  OBJECT:4:_ZTSPKh@@CXXABI_1.3
  OBJECT:4:_ZTSPKi@@CXXABI_1.3
  OBJECT:4:_ZTSPKj@@CXXABI_1.3
  OBJECT:4:_ZTSPKl@@CXXABI_1.3
  OBJECT:4:_ZTSPKm@@CXXABI_1.3
  OBJECT:4:_ZTSPKs@@CXXABI_1.3
  OBJECT:4:_ZTSPKt@@CXXABI_1.3
  OBJECT:4:_ZTSPKv@@CXXABI_1.3
  OBJECT:4:_ZTSPKw@@CXXABI_1.3
  OBJECT:4:_ZTSPKx@@CXXABI_1.3
  OBJECT:4:_ZTSPKy@@CXXABI_1.3
  OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIcLb0EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIcLb1EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIwLb0EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1110moneypunctIwLb1EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIcLb0EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIcLb1EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIwLb0EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVNSt7__cxx1117moneypunct_bynameIwLb1EEE@@GLIBCXX_3.4.21
  OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCXX_3.4
  OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCXX_3.4
  OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:54:_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:56:_ZNSt17__timepunct_cacheIcE12_S_timezonesE@@GLIBCXX_3.4
  OBJECT:56:_ZNSt17__timepunct_cacheIwE12_S_timezonesE@@GLIBCXX_3.4
  OBJECT:56:_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:56:_ZTSNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:59:_ZTSNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:59:_ZTSNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTSNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:60:_ZTSNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:60:_ZTSNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:60:_ZTSNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:60:_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:60:_ZTVSd@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:60:_ZTVSt9strstream@@GLIBCXX_3.4
  OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@@GLIBCXX_3.4.21
  OBJECT:64:_ZTVNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@@GLIBCXX_3.4.21
  OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt12strstreambuf@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCXX_3.4
  OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCXX_3.4
  OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
  OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
  OBJECT:69:_ZTSNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:69:_ZTSNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:70:_ZTSNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:70:_ZTSNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:70:_ZTSNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:70:_ZTSNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:77:_ZTSNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_3.4.21
  OBJECT:77:_ZTSNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIcLb0EE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIcLb1EE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIwLb0EE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx1110moneypunctIwLb1EE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx117collateIcE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx117collateIwE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx118messagesIcE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx118messagesIwE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx118numpunctIcE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx118numpunctIwE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4.21
  OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCXX_3.4
  OBJECT:8:_ZTIDF32_@@CXXABI_1.3.14
  OBJECT:8:_ZTIDF32x@@CXXABI_1.3.14
  OBJECT:8:_ZTIDF64_@@CXXABI_1.3.14
  OBJECT:8:_ZTIDd@@CXXABI_1.3.4
  OBJECT:8:_ZTIDe@@CXXABI_1.3.4
  OBJECT:8:_ZTIDf@@CXXABI_1.3.4
  OBJECT:8:_ZTIDi@@CXXABI_1.3.3
  OBJECT:8:_ZTIDn@@CXXABI_1.3.5
  OBJECT:8:_ZTIDs@@CXXABI_1.3.3
  OBJECT:8:_ZTIDu@@CXXABI_1.3.12
  OBJECT:8:_ZTIN10__cxxabiv115__forced_unwindE@@CXXABI_1.3.2
  OBJECT:8:_ZTIN10__cxxabiv119__foreign_exceptionE@@CXXABI_1.3.2
  OBJECT:8:_ZTINSt13__future_base11_State_baseE@@GLIBCXX_3.4.15
  OBJECT:8:_ZTINSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15
  OBJECT:8:_ZTINSt3_V214error_categoryE@@GLIBCXX_3.4.21
  OBJECT:8:_ZTINSt3pmr15memory_resourceE@@GLIBCXX_3.4.28
  OBJECT:8:_ZTINSt6locale5facetE@@GLIBCXX_3.4
  OBJECT:8:_ZTINSt6thread6_StateE@@GLIBCXX_3.4.22
  OBJECT:8:_ZTISt10ctype_base@@GLIBCXX_3.4
  OBJECT:8:_ZTISt10money_base@@GLIBCXX_3.4
  OBJECT:8:_ZTISt12codecvt_base@@GLIBCXX_3.4
  OBJECT:8:_ZTISt13messages_base@@GLIBCXX_3.4
  OBJECT:8:_ZTISt14error_category@@GLIBCXX_3.4.11
  OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
  OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:8:_ZTISt16nested_exception@@CXXABI_1.3.5
  OBJECT:8:_ZTISt8ios_base@@GLIBCXX_3.4
  OBJECT:8:_ZTISt9exception@@GLIBCXX_3.4
  OBJECT:8:_ZTISt9time_base@@GLIBCXX_3.4
  OBJECT:8:_ZTISt9type_info@@GLIBCXX_3.4
  OBJECT:8:_ZTIa@@CXXABI_1.3
  OBJECT:8:_ZTIb@@CXXABI_1.3
  OBJECT:8:_ZTIc@@CXXABI_1.3
  OBJECT:8:_ZTId@@CXXABI_1.3
  OBJECT:8:_ZTIe@@CXXABI_1.3
  OBJECT:8:_ZTIf@@CXXABI_1.3
  OBJECT:8:_ZTIh@@CXXABI_1.3
  OBJECT:8:_ZTIi@@CXXABI_1.3
  OBJECT:8:_ZTIj@@CXXABI_1.3
  OBJECT:8:_ZTIl@@CXXABI_1.3
  OBJECT:8:_ZTIm@@CXXABI_1.3
  OBJECT:8:_ZTIs@@CXXABI_1.3
  OBJECT:8:_ZTIt@@CXXABI_1.3
  OBJECT:8:_ZTIv@@CXXABI_1.3
  OBJECT:8:_ZTIw@@CXXABI_1.3
  OBJECT:8:_ZTIx@@CXXABI_1.3
  OBJECT:8:_ZTIy@@CXXABI_1.3
  OBJECT:8:_ZTTSi@@GLIBCXX_3.4
  OBJECT:8:_ZTTSo@@GLIBCXX_3.4
  OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
  OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCXX_3.4
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/atomic_timed_wait.h gcc-16-20250608/libstdc++-v3/include/bits/atomic_timed_wait.h
*** gcc-16-20250601/libstdc++-v3/include/bits/atomic_timed_wait.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/atomic_timed_wait.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 87,93 ****
      __wait_until_impl(const void* __addr, __wait_args_base& __args,
  		      const __wait_clock_t::duration& __atime);
  
-     // Returns {true, val} if wait ended before a timeout.
      template<typename _Clock, typename _Dur>
        __wait_result_type
        __wait_until(const void* __addr, __wait_args_base& __args,
--- 87,92 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 157,165 ****
  				  const chrono::time_point<_Clock, _Dur>& __atime,
  				  bool __bare_wait = false) noexcept
      {
        __detail::__wait_args __args{ __addr, __old, __order, __bare_wait };
!       auto __res = __detail::__wait_until(__addr, &__args, __atime);
!       return __res.first; // C++26 will also return last observed __val
      }
  
    template<typename _Tp, typename _ValFn,
--- 156,167 ----
  				  const chrono::time_point<_Clock, _Dur>& __atime,
  				  bool __bare_wait = false) noexcept
      {
+ #ifndef _GLIBCXX_HAVE_PLATFORM_TIMED_WAIT
+       __glibcxx_assert(false); // This function can't be used for proxy wait.
+ #endif
        __detail::__wait_args __args{ __addr, __old, __order, __bare_wait };
!       auto __res = __detail::__wait_until(__addr, __args, __atime);
!       return !__res._M_timeout; // C++26 will also return last observed __val
      }
  
    template<typename _Tp, typename _ValFn,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 203,211 ****
      __atomic_wait_address_for_v(const __detail::__platform_wait_t* __addr,
  				__detail::__platform_wait_t __old,
  				int __order,
! 				const chrono::time_point<_Rep, _Period>& __rtime,
  				bool __bare_wait = false) noexcept
      {
        __detail::__wait_args __args{ __addr, __old, __order, __bare_wait };
        auto __res = __detail::__wait_for(__addr, __args, __rtime);
        return !__res._M_timeout; // C++26 will also return last observed __val
--- 205,216 ----
      __atomic_wait_address_for_v(const __detail::__platform_wait_t* __addr,
  				__detail::__platform_wait_t __old,
  				int __order,
! 				const chrono::duration<_Rep, _Period>& __rtime,
  				bool __bare_wait = false) noexcept
      {
+ #ifndef _GLIBCXX_HAVE_PLATFORM_TIMED_WAIT
+       __glibcxx_assert(false); // This function can't be used for proxy wait.
+ #endif
        __detail::__wait_args __args{ __addr, __old, __order, __bare_wait };
        auto __res = __detail::__wait_for(__addr, __args, __rtime);
        return !__res._M_timeout; // C++26 will also return last observed __val
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/atomic_wait.h gcc-16-20250608/libstdc++-v3/include/bits/atomic_wait.h
*** gcc-16-20250601/libstdc++-v3/include/bits/atomic_wait.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/atomic_wait.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 249,260 ****
        // C++26 will return __val
      }
  
    inline void
    __atomic_wait_address_v(const __detail::__platform_wait_t* __addr,
  			  __detail::__platform_wait_t __old,
! 			  int __order)
    {
!     __detail::__wait_args __args{ __addr, __old, __order };
      // C++26 will not ignore the return value here
      __detail::__wait_impl(__addr, __args);
    }
--- 249,264 ----
        // C++26 will return __val
      }
  
+   // Wait on __addr while *__addr == __old is true.
    inline void
    __atomic_wait_address_v(const __detail::__platform_wait_t* __addr,
  			  __detail::__platform_wait_t __old,
! 			  int __order, bool __bare_wait = false)
    {
! #ifndef _GLIBCXX_HAVE_PLATFORM_WAIT
!     __glibcxx_assert(false); // This function can't be used for proxy wait.
! #endif
!     __detail::__wait_args __args{ __addr, __old, __order, __bare_wait };
      // C++26 will not ignore the return value here
      __detail::__wait_impl(__addr, __args);
    }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/basic_string.h gcc-16-20250608/libstdc++-v3/include/bits/basic_string.h
*** gcc-16-20250601/libstdc++-v3/include/bits/basic_string.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/basic_string.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 1164,1170 ****
        {
  	size_type __sz = _M_string_length;
  	if (__sz > max_size ())
! 	  __builtin_unreachable ();
  	return __sz;
        }
  
--- 1164,1170 ----
        {
  	size_type __sz = _M_string_length;
  	if (__sz > max_size ())
! 	  __builtin_unreachable();
  	return __sz;
        }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 1279,1285 ****
  	size_t __sz = _M_is_local() ? size_type(_S_local_capacity)
  				     : _M_allocated_capacity;
  	if (__sz < _S_local_capacity || __sz > max_size ())
! 	  __builtin_unreachable ();
  	return __sz;
        }
  
--- 1279,1285 ----
  	size_t __sz = _M_is_local() ? size_type(_S_local_capacity)
  				     : _M_allocated_capacity;
  	if (__sz < _S_local_capacity || __sz > max_size ())
! 	  __builtin_unreachable();
  	return __sz;
        }
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/c++config gcc-16-20250608/libstdc++-v3/include/bits/c++config
*** gcc-16-20250601/libstdc++-v3/include/bits/c++config	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/c++config	Sun Jun  8 22:32:47 2025
***************
*** 273,278 ****
--- 273,284 ----
  #define _GLIBCXX_NOEXCEPT_QUAL
  #endif
  
+ #if __cpp_auto_cast
+ # define _GLIBCXX_AUTO_CAST(X) auto(X)
+ #else
+ # define _GLIBCXX_AUTO_CAST(X) ::std::__decay_t<decltype((X))>(X)
+ #endif
+ 
  // Macro for extern template, ie controlling template linkage via use
  // of extern keyword on template declaration. As documented in the g++
  // manual, it inhibits all implicit instantiations and is used
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/chrono.h gcc-16-20250608/libstdc++-v3/include/bits/chrono.h
*** gcc-16-20250601/libstdc++-v3/include/bits/chrono.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/chrono.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 1244,1249 ****
--- 1244,1250 ----
        now() noexcept;
  
        // Map to C API
+       [[__gnu__::__always_inline__]]
        static std::time_t
        to_time_t(const time_point& __t) noexcept
        {
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 1251,1256 ****
--- 1252,1258 ----
  			   (__t.time_since_epoch()).count());
        }
  
+       [[__gnu__::__always_inline__]]
        static time_point
        from_time_t(std::time_t __t) noexcept
        {
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/chrono_io.h gcc-16-20250608/libstdc++-v3/include/bits/chrono_io.h
*** gcc-16-20250601/libstdc++-v3/include/bits/chrono_io.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/chrono_io.h	Sun Jun  8 22:32:47 2025
*************** namespace __format
*** 785,795 ****
  	}
  
        static constexpr const _CharT* _S_chars
! 	= _GLIBCXX_WIDEN("0123456789+-:/ {}");
!       static constexpr const _CharT* _S_plus_minus = _S_chars + 10;
!       static constexpr _CharT _S_colon = _S_chars[12];
!       static constexpr _CharT _S_slash = _S_chars[13];
!       static constexpr _CharT _S_space = _S_chars[14];
        static constexpr const _CharT* _S_empty_spec = _S_chars + 15;
  
        template<typename _OutIter>
--- 785,796 ----
  	}
  
        static constexpr const _CharT* _S_chars
! 	= _GLIBCXX_WIDEN("0123456789:/ +-{}");
!       static constexpr _CharT _S_colon = _S_chars[10];
!       static constexpr _CharT _S_slash = _S_chars[11];
!       static constexpr _CharT _S_space = _S_chars[12];
!       static constexpr const _CharT* _S_plus_minus = _S_chars + 13;
!       static constexpr const _CharT* _S_minus_empty_spec = _S_chars + 14;
        static constexpr const _CharT* _S_empty_spec = _S_chars + 15;
  
        template<typename _OutIter>
*************** namespace __format
*** 941,973 ****
  				     __conv, __mod);
  	      }
  
- 	  basic_string<_CharT> __s;
  	  int __yi = (int)__y;
  	  const bool __is_neg = __yi < 0;
  	  __yi = __builtin_abs(__yi);
  
! 	  if (__conv == 'Y' || __conv == 'C')
  	    {
! 	      int __ci = __yi / 100;
! 	      if (__is_neg) [[unlikely]]
  		{
! 		  __s.assign(1, _S_plus_minus[1]);
! 		  // For floored division -123//100 is -2 and -100//100 is -1
! 		  if (__conv == 'C' && (__ci * 100) != __yi)
! 		    ++__ci;
  		}
! 	      if (__ci >= 100) [[unlikely]]
  		{
! 		  __s += std::format(_S_empty_spec, __ci / 100);
! 		  __ci %= 100;
  		}
! 	      __s += _S_two_digits(__ci);
  	    }
! 
! 	  if (__conv == 'Y' || __conv == 'y')
! 	    __s += _S_two_digits(__yi % 100);
! 
! 	  return __format::__write(std::move(__out), __string_view(__s));
  	}
  
        template<typename _Tp, typename _FormatContext>
--- 942,980 ----
  				     __conv, __mod);
  	      }
  
  	  int __yi = (int)__y;
  	  const bool __is_neg = __yi < 0;
  	  __yi = __builtin_abs(__yi);
+ 	  int __ci = __yi / 100;
+ 	  // For floored division -123//100 is -2 and -100//100 is -1
+ 	  if (__conv == 'C' && __is_neg && (__ci * 100) != __yi) [[unlikely]]
+ 	    ++__ci;
  
! 	  if (__conv != 'y' && __ci >= 100) [[unlikely]]
  	    {
! 	      using _FmtStr = _Runtime_format_string<_CharT>;
! 	      __string_view __fs = _S_minus_empty_spec + !__is_neg;
! 	      __out = std::format_to(std::move(__out), _FmtStr(__fs),
! 				     __conv == 'C' ? __ci : __yi);
! 	    }
! 	  else
! 	    {
! 	      _CharT __buf[5];
! 	      __buf[0] = _S_plus_minus[1];
! 	      __string_view __sv(__buf + 3, __buf + 3);
! 	      if (__conv != 'y')
  		{
! 		  _S_fill_two_digits(__buf + 1, __ci);
! 		  __sv = __string_view(__buf + !__is_neg, __buf + 3);
  		}
! 	      if (__conv != 'C')
  		{
! 		  _S_fill_two_digits(__buf + 3, __yi % 100);
! 		  __sv = __string_view(__sv.data(), __buf + 5);
  		}
! 	      __out = __format::__write(std::move(__out), __sv);
  	    }
! 	 return std::move(__out);
  	}
  
        template<typename _Tp, typename _FormatContext>
*************** namespace __format
*** 976,991 ****
  	     _FormatContext&) const
  	{
  	  auto __ymd = _S_date(__t);
! 	  basic_string<_CharT> __s;
! #if ! _GLIBCXX_USE_CXX11_ABI
! 	  __s.reserve(8);
! #endif
! 	  __s = _S_two_digits((unsigned)__ymd.month());
! 	  __s += _S_slash;
! 	  __s += _S_two_digits((unsigned)__ymd.day());
! 	  __s += _S_slash;
! 	  __s += _S_two_digits(__builtin_abs((int)__ymd.year()) % 100);
! 	  return __format::__write(std::move(__out), __string_view(__s));
  	}
  
        template<typename _Tp, typename _FormatContext>
--- 983,1012 ----
  	     _FormatContext&) const
  	{
  	  auto __ymd = _S_date(__t);
! 	  auto __di = (unsigned)__ymd.day();
! 	  auto __mi = (unsigned)__ymd.month();
! 	  auto __yi = __builtin_abs((int)__ymd.year()) % 100;
! 
! 	  if (__mi >= 100 || __di >= 100) [[unlikely]]
! 	    {
! 	      using _FmtStr = _Runtime_format_string<_CharT>;
! 	      __string_view __fs = _GLIBCXX_WIDEN("{:02d}/{:02d}/{:02d}");
! 	      __out = std::format_to(std::move(__out), _FmtStr(__fs),
! 				     __mi, __di, __yi);
! 	    }
! 	  else
! 	    {
! 	      _CharT __buf[8];
! 	      __buf[2] = _S_slash;
! 	      __buf[5] = _S_slash;
! 	      __string_view __sv(__buf, __buf + 8);
! 
! 	      _S_fill_two_digits(__buf, __mi);
! 	      _S_fill_two_digits(__buf + 3, __di);
! 	      _S_fill_two_digits(__buf + 6, __yi);
! 	      __out = __format::__write(std::move(__out), __sv);
! 	    }
! 	  return std::move(__out);
  	}
  
        template<typename _Tp, typename _FormatContext>
*************** namespace __format
*** 1010,1021 ****
  				     (char)__conv, 'O');
  	      }
  
! 	  auto __sv = _S_two_digits(__i);
! 	  _CharT __buf[2];
  	  if (__conv == _CharT('e') && __i < 10)
  	    {
- 	      __buf[0] = _S_space;
  	      __buf[1] = __sv[1];
  	      __sv = {__buf, 2};
  	    }
  	  return __format::__write(std::move(__out), __sv);
--- 1031,1042 ----
  				     (char)__conv, 'O');
  	      }
  
! 	  _CharT __buf[3];
! 	  auto __sv = _S_str_d2(__buf, __i);
  	  if (__conv == _CharT('e') && __i < 10)
  	    {
  	      __buf[1] = __sv[1];
+ 	      __buf[0] = _S_space;
  	      __sv = {__buf, 2};
  	    }
  	  return __format::__write(std::move(__out), __sv);
*************** namespace __format
*** 1027,1042 ****
  	     _FormatContext&) const
  	{
  	  auto __ymd = _S_date(__t);
! 	  auto __s = std::format(_GLIBCXX_WIDEN("{:04d}-  -  "),
! 				 (int)__ymd.year());
! 	  auto __sv = _S_two_digits((unsigned)__ymd.month());
! 	  __s[__s.size() - 5] = __sv[0];
! 	  __s[__s.size() - 4] = __sv[1];
! 	  __sv = _S_two_digits((unsigned)__ymd.day());
! 	  __s[__s.size() - 2] = __sv[0];
! 	  __s[__s.size() - 1] = __sv[1];
! 	  __sv = __s;
! 	  return __format::__write(std::move(__out), __sv);
  	}
  
        template<typename _Tp, typename _FormatContext>
--- 1048,1082 ----
  	     _FormatContext&) const
  	{
  	  auto __ymd = _S_date(__t);
! 	  auto __di = (unsigned)__ymd.day();
! 	  auto __mi = (unsigned)__ymd.month();
! 	  auto __yi = (int)__ymd.year();
! 	  const bool __is_neg = __yi < 0;
! 	  __yi = __builtin_abs(__yi);
! 
! 	  if (__yi >= 10000 || __mi >= 100 || __di >= 100) [[unlikely]]
! 	    {
! 	      using _FmtStr = _Runtime_format_string<_CharT>;
! 	      __string_view __fs
! 		= _GLIBCXX_WIDEN("-{:04d}-{:02d}-{:02d}") + !__is_neg;
! 	      __out = std::format_to(std::move(__out), _FmtStr(__fs),
! 				     __yi, __mi, __di);
! 	    }
! 	  else
! 	    {
! 	      _CharT __buf[11];
! 	      __buf[0] = _S_plus_minus[1];
! 	      __buf[5] = _S_plus_minus[1];
! 	      __buf[8] = _S_plus_minus[1];
! 	      __string_view __sv(__buf + !__is_neg, __buf + 11);
! 
! 	      _S_fill_two_digits(__buf + 1, __yi / 100);
! 	      _S_fill_two_digits(__buf + 3, __yi % 100);
! 	      _S_fill_two_digits(__buf + 6, __mi);
! 	      _S_fill_two_digits(__buf + 9, __di);
! 	      __out = __format::__write(std::move(__out), __sv);
! 	    }
! 	  return std::move(__out);
  	}
  
        template<typename _Tp, typename _FormatContext>
*************** namespace __format
*** 1079,1089 ****
  
  	  if (__conv == _CharT('I'))
  	    {
  	      if (__i == 0)
  		__i = 12;
- 	      else if (__i > 12)
- 		__i -= 12;
  	    }
  	  return __format::__write(std::move(__out), _S_two_digits(__i));
  	}
  
--- 1119,1131 ----
  
  	  if (__conv == _CharT('I'))
  	    {
+ 	      __i %= 12;
  	      if (__i == 0)
  		__i = 12;
  	    }
+ 	  else if (__i >= 100) [[unlikely]]
+ 	    return std::format_to(std::move(__out), _S_empty_spec, __i);
+ 
  	  return __format::__write(std::move(__out), _S_two_digits(__i));
  	}
  
*************** namespace __format
*** 1136,1142 ****
  				     'm', 'O');
  	      }
  
! 	  return __format::__write(std::move(__out), _S_two_digits(__i));
  	}
  
        template<typename _Tp, typename _FormatContext>
--- 1178,1185 ----
  				     'm', 'O');
  	      }
  
! 	  _CharT __buf[3];
! 	  return __format::__write(std::move(__out), _S_str_d2(__buf, __i));
  	}
  
        template<typename _Tp, typename _FormatContext>
*************** namespace __format
*** 1169,1180 ****
  	{
  	  // %p The locale's equivalent of the AM/PM designations.
  	  auto __hms = _S_hms(__t);
  	  locale __loc = _M_locale(__ctx);
  	  const auto& __tp = use_facet<__timepunct<_CharT>>(__loc);
  	  const _CharT* __ampm[2];
  	  __tp._M_am_pm(__ampm);
! 	  return _M_write(std::move(__out), __loc,
! 			  __ampm[__hms.hours().count() >= 12]);
  	}
  
        template<typename _Tp, typename _FormatContext>
--- 1212,1226 ----
  	{
  	  // %p The locale's equivalent of the AM/PM designations.
  	  auto __hms = _S_hms(__t);
+ 	  auto __hi = __hms.hours().count();
+ 	  if (__hi >= 24) [[unlikely]]
+ 	    __hi %= 24;
+ 
  	  locale __loc = _M_locale(__ctx);
  	  const auto& __tp = use_facet<__timepunct<_CharT>>(__loc);
  	  const _CharT* __ampm[2];
  	  __tp._M_am_pm(__ampm);
! 	  return _M_write(std::move(__out), __loc, __ampm[__hi >= 12]);
  	}
  
        template<typename _Tp, typename _FormatContext>
*************** namespace __format
*** 1222,1240 ****
  	  // %R Equivalent to %H:%M
  	  // %T Equivalent to %H:%M:%S
  	  auto __hms = _S_hms(__t);
  
! 	  auto __s = std::format(_GLIBCXX_WIDEN("{:02d}:00"),
! 				 __hms.hours().count());
! 	  auto __sv = _S_two_digits(__hms.minutes().count());
! 	  __s[__s.size() - 2] = __sv[0];
! 	  __s[__s.size() - 1] = __sv[1];
! 	  __sv = __s;
! 	  __out = __format::__write(std::move(__out), __sv);
! 	  if (__secs)
  	    {
! 	      *__out++ = _S_colon;
! 	      __out = _M_S(__hms, std::move(__out), __ctx);
  	    }
  	  return __out;
  	}
  
--- 1268,1292 ----
  	  // %R Equivalent to %H:%M
  	  // %T Equivalent to %H:%M:%S
  	  auto __hms = _S_hms(__t);
+ 	  auto __hi = __hms.hours().count();
  
!    	  _CharT __buf[6];
! 	  __buf[2] = _S_colon;
! 	  __buf[5] = _S_colon;
! 	  __string_view __sv(__buf, 5 + __secs);
! 
! 	  if (__hi >= 100) [[unlikely]]
  	    {
! 	      __out = std::format_to(std::move(__out), _S_empty_spec, __hi);
! 	      __sv.remove_prefix(2);
  	    }
+ 	  else
+ 	    _S_fill_two_digits(__buf, __hi);
+ 
+ 	  _S_fill_two_digits(__buf + 3, __hms.minutes().count());
+ 	  __out = __format::__write(std::move(__out), __sv);
+ 	  if (__secs)
+ 	    __out = _M_S(__hms, std::move(__out), __ctx);
  	  return __out;
  	}
  
*************** namespace __format
*** 1296,1302 ****
  		  else
  		    {
  		      auto __str = std::format(_S_empty_spec, __ss.count());
! 		      __out = std::format_to(_GLIBCXX_WIDEN("{:0>{}s}"),
  					     __str,
  					     __hms.fractional_width);
  		    }
--- 1348,1355 ----
  		  else
  		    {
  		      auto __str = std::format(_S_empty_spec, __ss.count());
! 		      __out = std::format_to(std::move(__out),
! 					     _GLIBCXX_WIDEN("{:0>{}s}"),
  					     __str,
  					     __hms.fractional_width);
  		    }
*************** namespace __format
*** 1330,1337 ****
  
  	  unsigned __wdi = __conv == 'u' ? __wd.iso_encoding()
  					 : __wd.c_encoding();
! 	  const _CharT __d = _S_digit(__wdi);
! 	  return __format::__write(std::move(__out), __string_view(&__d, 1));
  	}
  
        template<typename _Tp, typename _FormatContext>
--- 1383,1390 ----
  
  	  unsigned __wdi = __conv == 'u' ? __wd.iso_encoding()
  					 : __wd.c_encoding();
! 	  _CharT __buf[3];
! 	  return __format::__write(std::move(__out), _S_str_d1(__buf, __wdi));
  	}
  
        template<typename _Tp, typename _FormatContext>
*************** namespace __format
*** 1516,1527 ****
  
        // %% handled in _M_format
  
!       // A single digit character in the range '0'..'9'.
!       static _CharT
        _S_digit(int __n) noexcept
        {
  	// Extra 9s avoid past-the-end read on bad input.
! 	return _GLIBCXX_WIDEN("0123456789999999")[__n & 0xf];
        }
  
        // A string view of two digit characters, "00".."99".
--- 1569,1580 ----
  
        // %% handled in _M_format
  
!       // A string view of single digit character, "0".."9".
!       static basic_string_view<_CharT>
        _S_digit(int __n) noexcept
        {
  	// Extra 9s avoid past-the-end read on bad input.
! 	return { _GLIBCXX_WIDEN("0123456789999999") + (__n & 0xf), 1 };
        }
  
        // A string view of two digit characters, "00".."99".
*************** namespace __format
*** 1540,1545 ****
--- 1593,1633 ----
  	};
        }
  
+       [[__gnu__::__always_inline__]]
+       // Fills __buf[0] and __buf[1] with 2 digit value of __n.
+       static void
+       _S_fill_two_digits(_CharT* __buf, unsigned __n)
+       {
+ 	auto __sv = _S_two_digits(__n);
+ 	__buf[0] = __sv[0];
+ 	__buf[1] = __sv[1];
+       }
+ 
+       [[__gnu__::__always_inline__]]
+       // Returns decimal representation of __n.
+       // Returned string_view may point to __buf.
+       static basic_string_view<_CharT>
+       _S_str_d1(span<_CharT, 3> __buf, unsigned __n)
+       {
+ 	if (__n < 10) [[likely]]
+ 	  return _S_digit(__n);
+ 	return _S_str_d2(__buf, __n);
+       }
+ 
+       [[__gnu__::__always_inline__]]
+       // Returns decimal representation of __n, padded to 2 digits.
+       // Returned string_view may point to __buf.
+       static basic_string_view<_CharT>
+       _S_str_d2(span<_CharT, 3> __buf, unsigned __n)
+       {
+ 	if (__n < 100) [[likely]]
+ 	  return _S_two_digits(__n);
+ 
+ 	_S_fill_two_digits(__buf.data(), __n / 10);
+ 	__buf[2] = _S_digit(__n % 10)[0];
+ 	return __string_view(__buf.data(), 3);
+       }
+ 
        // Accessors for the components of chrono types:
  
        // Returns a hh_mm_ss.
*************** namespace __detail
*** 2856,2864 ****
      basic_ostream<_CharT, _Traits>&
      operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_info& __i)
      {
!       __os << '[' << __i.begin << ',' << __i.end
! 	   << ',' << hh_mm_ss(__i.offset) << ',' << __i.save
! 	   << ',' << __i.abbrev << ']';
        return __os;
      }
  
--- 2944,2957 ----
      basic_ostream<_CharT, _Traits>&
      operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_info& __i)
      {
!       // n.b. only decimal separator is locale dependent for specifiers
!       // used below, as sys_info uses seconds and minutes duration, the
!       // output is locale-independent.
!       constexpr auto* __fs 
! 	= _GLIBCXX_WIDEN("[{0:%F %T},{1:%F %T},{2:%T},{3:%Q%q},{0:%Z}]");
!       local_seconds __lb(__i.begin.time_since_epoch());
!       __os << std::format(__fs, local_time_format(__lb, &__i.abbrev),
! 			  __i.end, __i.offset, __i.save);
        return __os;
      }
  
*************** namespace __detail
*** 2867,2885 ****
      basic_ostream<_CharT, _Traits>&
      operator<<(basic_ostream<_CharT, _Traits>& __os, const local_info& __li)
      {
!       __os << '[';
        if (__li.result == local_info::unique)
  	__os << __li.first;
        else
  	{
  	  if (__li.result == local_info::nonexistent)
! 	    __os << "nonexistent";
  	  else
! 	    __os << "ambiguous";
! 	  __os << " local time between " << __li.first;
! 	  __os << " and " << __li.second;
  	}
!       __os << ']';
        return __os;
      }
  
--- 2960,2978 ----
      basic_ostream<_CharT, _Traits>&
      operator<<(basic_ostream<_CharT, _Traits>& __os, const local_info& __li)
      {
!       __os << __format::_Separators<_CharT>::_S_squares()[0];
        if (__li.result == local_info::unique)
  	__os << __li.first;
        else
  	{
  	  if (__li.result == local_info::nonexistent)
! 	    __os << _GLIBCXX_WIDEN("nonexistent");
  	  else
! 	    __os << _GLIBCXX_WIDEN("ambiguous");
! 	  __os << _GLIBCXX_WIDEN(" local time between ") << __li.first;
! 	  __os << _GLIBCXX_WIDEN(" and ") << __li.second;
  	}
!       __os << __format::_Separators<_CharT>::_S_squares()[1];
        return __os;
      }
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/cpyfunc_impl.h gcc-16-20250608/libstdc++-v3/include/bits/cpyfunc_impl.h
*** gcc-16-20250601/libstdc++-v3/include/bits/cpyfunc_impl.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/cpyfunc_impl.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 64,69 ****
--- 64,73 ----
  			    _GLIBCXX_MOF_REF noexcept(_Noex)>
      : __polyfunc::_Cpy_base
      {
+       static_assert(
+ 	(std::__is_complete_or_unbounded(__type_identity<_ArgTypes>()) && ...),
+ 	"each parameter type must be a complete class");
+ 
        using _Base = __polyfunc::_Cpy_base;
        using _Invoker = __polyfunc::_Invoker<_Noex, _Res, _ArgTypes...>;
        using _Signature = _Invoker::_Signature;
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/funcref_impl.h gcc-16-20250608/libstdc++-v3/include/bits/funcref_impl.h
*** gcc-16-20250601/libstdc++-v3/include/bits/funcref_impl.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/funcref_impl.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 68,73 ****
--- 68,77 ----
      class function_ref<_Res(_ArgTypes...) _GLIBCXX_MOF_CV
  		       noexcept(_Noex)>
      {
+       static_assert(
+ 	(std::__is_complete_or_unbounded(__type_identity<_ArgTypes>()) && ...),
+ 	"each parameter type must be a complete class");
+ 
        using _Invoker = __polyfunc::_Invoker<_Noex, _Res, _ArgTypes...>;
        using _Signature = _Invoker::_Signature;
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/funcwrap.h gcc-16-20250608/libstdc++-v3/include/bits/funcwrap.h
*** gcc-16-20250601/libstdc++-v3/include/bits/funcwrap.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/funcwrap.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 199,205 ****
       };
  
     template<typename _Tp>
!      using __param_t = __conditional_t<is_scalar_v<_Tp>, _Tp, _Tp&&>;
  
     template<bool _Noex, typename _Ret, typename... _Args>
       using _Invoker = _Base_invoker<_Noex, remove_cv_t<_Ret>, __param_t<_Args>...>;
--- 199,223 ----
       };
  
     template<typename _Tp>
!      consteval bool
!      __pass_by_value()
!      {
!        // n.b. sizeof(Incomplete&) is ill-formed for incomplete types,
!        // so we check is_reference_v first.
!        if constexpr (is_reference_v<_Tp> || is_scalar_v<_Tp>)
! 	 return true;
!        else
! 	 // n.b. we already asserted that types are complete in wrappers,
! 	 // avoid triggering additional errors from this function.
! 	 if constexpr (std::__is_complete_or_unbounded(__type_identity<_Tp>()))
! 	   if constexpr (sizeof(_Tp) <= 2 * sizeof(void*))
! 	     return is_trivially_move_constructible_v<_Tp>
! 		    && is_trivially_destructible_v<_Tp>;
!        return false;
!      }
! 
!    template<typename _Tp>
!      using __param_t = __conditional_t<__pass_by_value<_Tp>(), _Tp, _Tp&&>;
  
     template<bool _Noex, typename _Ret, typename... _Args>
       using _Invoker = _Base_invoker<_Noex, remove_cv_t<_Ret>, __param_t<_Args>...>;
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/indirect.h gcc-16-20250608/libstdc++-v3/include/bits/indirect.h
*** gcc-16-20250601/libstdc++-v3/include/bits/indirect.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/indirect.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 452,458 ****
      { };
  #endif // __glibcxx_indirect
  
!  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
  #endif // C++26 __glibcxx_indirect || __glibcxx_polymorphic
  
--- 452,832 ----
      { };
  #endif // __glibcxx_indirect
  
! #if __glibcxx_polymorphic // C++26 && HOSTED
!   template<typename _Tp, typename _Alloc = allocator<_Tp>>
!     class polymorphic;
! 
!   namespace pmr
!   {
!     template<typename _Tp>
!       using polymorphic = polymorphic<_Tp, polymorphic_allocator<_Tp>>;
!   }
! 
!   // [polymorphic], class template polymorphic
!   template<typename _Tp, typename _Alloc>
!     class polymorphic
!     {
!       static_assert(is_object_v<_Tp>);
!       static_assert(!is_array_v<_Tp>);
!       static_assert(!is_same_v<_Tp, in_place_t>);
!       static_assert(!__is_in_place_type_v<_Tp>);
!       static_assert(!is_const_v<_Tp> && !is_volatile_v<_Tp>);
! 
!       using _ATraits = allocator_traits<_Alloc>;
!       static_assert(is_same_v<_Tp, typename _ATraits::value_type>);
! 
!       // The owned object is embedded within a control block which knows the
!       // dynamic type and manages cloning and destroying the owned object.
!       struct _Obj
!       {
! 	typename _ATraits::pointer _M_objp{}; // pointer to the owned object.
! 
! 	// A pointer to this type, e.g. _Obj*
! 	using pointer
! 	  = typename _ATraits::template rebind_traits<_Obj>::pointer;
! 
! 	enum class _Op { _Dispose = 1, _Copy = 2, _Move = 3 };
! 
! 	constexpr virtual pointer
! 	_M_manage(const _Alloc&, _Op, void* = nullptr) = 0;
!       };
! 
!       template<typename _Up>
! 	struct _Obj_impl : _Obj
! 	{
! 	  using _MyTraits
! 	    = typename _ATraits::template rebind_traits<_Obj_impl>;
! 
! 	  using _Op = _Obj::_Op;
! 
! 	  union _Uninitialized {
! 	    constexpr _Uninitialized() { }
! 	    constexpr ~_Uninitialized() { }
! 	    _Up _M_objp;
! 	  };
! 	  _Uninitialized _M_u;
! 
! 	  template<typename... _Args>
! 	    constexpr
! 	    _Obj_impl(typename _MyTraits::allocator_type& __a,
! 		      _Args&&... __args)
! 	    {
! 	      using _PtrTr = pointer_traits<typename _ATraits::pointer>;
! 	      _MyTraits::construct(__a, __builtin_addressof(_M_u._M_objp),
! 				   std::forward<_Args>(__args)...);
! 	      this->_M_objp = _PtrTr::pointer_to(_M_u._M_objp);
! 	    }
! 
! 	  constexpr virtual typename _Obj::pointer
! 	  _M_manage(const _Alloc& __a, _Op __op, void*) override
! 	  {
! 
! 	    switch (__op)
! 	      {
! 	      case _Op::_Move:
! 	        return _S_make_obj<_Up>(__a, std::move(_M_u._M_objp));
! 	      case _Op::_Copy:
! 	        return _S_make_obj<_Up>(__a,
! 				        const_cast<const _Up&>(_M_u._M_objp));
! 	      case _Op::_Dispose:
! 		{
! 		  using _PtrTr = pointer_traits<typename _MyTraits::pointer>;
! 	          typename _MyTraits::allocator_type __a2(__a);
! 		  _MyTraits::destroy(__a2, std::__addressof(_M_u._M_objp));
! 		  _MyTraits::deallocate(__a2, _PtrTr::pointer_to(*this), 1);
! 		  return nullptr;
! 		}
! 	      }
! 	    __builtin_unreachable();
! 	  }
! 	};
! 
!       // TODO: the standard permits a small-object optimization where the
!       // owned object is nested within the std::polymorphic not on the heap.
! 
!     public:
! 
!       using value_type = _Tp;
!       using allocator_type = _Alloc;
!       using pointer = typename allocator_traits<_Alloc>::pointer;
!       using const_pointer  = typename allocator_traits<_Alloc>::const_pointer;
! 
!       constexpr explicit
!       polymorphic() requires is_default_constructible_v<_Alloc>
!       : polymorphic(in_place_type<_Tp>)
!       { }
! 
!       constexpr explicit
!       polymorphic(allocator_arg_t, const _Alloc& __a)
!       : polymorphic(allocator_arg, __a, in_place_type<_Tp>)
!       { }
! 
!       constexpr
!       polymorphic(const polymorphic& __other)
!       : polymorphic(allocator_arg,
! 		    _ATraits::select_on_container_copy_construction(
! 		      __other._M_alloc),
! 		    __other)
!       { }
! 
!       constexpr
!       polymorphic(allocator_arg_t, const _Alloc& __a,
! 		  const polymorphic& __other)
!       : _M_alloc(__a)
!       {
! 	if (__other._M_objp)
! 	  _M_objp = __other._M_objp->_M_manage(__a, _Obj::_Op::_Copy);
! 	else
! 	  _M_objp = nullptr;
!       }
! 
!       constexpr
!       polymorphic(polymorphic&& __other) noexcept
!       : _M_alloc(std::move(__other._M_alloc)),
! 	_M_objp(std::__exchange(__other._M_objp, nullptr))
!       { }
! 
!       constexpr
!       polymorphic(allocator_arg_t, const _Alloc& __a, polymorphic&& __other)
!       noexcept(_ATraits::is_always_equal::value)
!       : _M_alloc(__a),
! 	_M_objp(std::__exchange(__other._M_objp, nullptr))
!       {
! 	if constexpr (!_ATraits::is_always_equal::value)
! 	  if (_M_objp && _M_alloc != __other._M_alloc)
! 	    {
! 	      // _M_alloc cannot free _M_objp, give it back to __other.
! 	      __other._M_objp = std::__exchange(_M_objp, nullptr);
! 	      // And create a new object that can be freed by _M_alloc.
! 	      _M_objp = __other._M_objp->_M_manage(__a, _Obj::_Op::_Move);
! 	    }
!       }
! 
!       template<typename _Up = _Tp, typename _UUp = remove_cvref_t<_Up>>
! 	requires (!is_same_v<_UUp, polymorphic>)
! 	  && (!__is_in_place_type_v<_UUp>)
! 	  && derived_from<_UUp, _Tp>
! 	  && is_constructible_v<_UUp, _Up>
! 	  && is_copy_constructible_v<_UUp>
! 	  && is_default_constructible_v<_Alloc>
! 	constexpr explicit
! 	polymorphic(_Up&& __u)
! 	: _M_objp(_M_make_obj<_UUp>(std::forward<_Up>(__u)))
! 	{ }
! 
!       template<typename _Up = _Tp, typename _UUp = remove_cvref_t<_Up>>
! 	requires (!is_same_v<_UUp, polymorphic>)
! 	  && (!__is_in_place_type_v<_UUp>)
! 	  && derived_from<_UUp, _Tp>
! 	  && is_constructible_v<_UUp, _Up>
! 	  && is_copy_constructible_v<_UUp>
! 	constexpr explicit
! 	polymorphic(allocator_arg_t, const _Alloc& __a, _Up&& __u)
! 	: _M_alloc(__a), _M_objp(_M_make_obj<_UUp>(std::forward<_Up>(__u)))
! 	{ }
! 
!       template<typename _Up, typename... _Ts>
! 	requires is_same_v<remove_cvref_t<_Up>, _Up>
! 	  && derived_from<_Up, _Tp>
! 	  && is_constructible_v<_Up, _Ts...>
! 	  && is_copy_constructible_v<_Up>
! 	  && is_default_constructible_v<_Alloc>
! 	constexpr explicit
! 	polymorphic(in_place_type_t<_Up> __t, _Ts&&... __ts)
! 	: _M_objp(_M_make_obj<_Up>(std::forward<_Ts>(__ts)...))
! 	{ }
! 
!       template<typename _Up, typename... _Ts>
! 	requires is_same_v<remove_cvref_t<_Up>, _Up>
! 	  && derived_from<_Up, _Tp>
! 	  && is_constructible_v<_Up, _Ts...>
! 	  && is_copy_constructible_v<_Up>
! 	constexpr explicit
! 	polymorphic(allocator_arg_t, const _Alloc& __a,
! 		    in_place_type_t<_Up>, _Ts&&... __ts)
! 	: _M_alloc(__a),
! 	  _M_objp(_M_make_obj<_Up>(std::forward<_Ts>(__ts)...))
! 	{ }
! 
!       template<typename _Up, typename _Ip, typename... _Us>
! 	requires is_same_v<remove_cvref_t<_Up>, _Up>
! 	  && derived_from<_Up, _Tp>
! 	  && is_constructible_v<_Up, initializer_list<_Ip>&, _Us...>
! 	  && is_copy_constructible_v<_Up>
! 	  && is_default_constructible_v<_Alloc>
! 	constexpr explicit
! 	polymorphic(in_place_type_t<_Up>, initializer_list<_Ip> __il,
! 		    _Us&&... __us)
! 	: _M_objp(_M_make_obj<_Up>(__il, std::forward<_Us>(__us)...))
! 	{ }
! 
!       template<typename _Up, typename _Ip, typename... _Us>
! 	requires is_same_v<remove_cvref_t<_Up>, _Up>
! 	  && derived_from<_Up, _Tp>
! 	  && is_constructible_v<_Up, initializer_list<_Ip>&, _Us...>
! 	  && is_copy_constructible_v<_Up>
! 	constexpr explicit
! 	polymorphic(allocator_arg_t, const _Alloc& __a,
! 		    in_place_type_t<_Up>, initializer_list<_Ip> __il,
! 		    _Us&&... __us)
! 	: _M_alloc(__a),
! 	  _M_objp(_M_make_obj<_Up>(__il, std::forward<_Us>(__us)...))
! 	{ }
! 
!       constexpr ~polymorphic()
!       {
! 	static_assert(sizeof(_Tp) != 0, "must be a complete type");
! 	_M_reset(nullptr);
!       }
! 
!       constexpr polymorphic&
!       operator=(const polymorphic& __other)
!       {
! 	static_assert(sizeof(_Tp) != 0, "must be a complete type");
! 
! 	if (__builtin_addressof(__other) == this) [[unlikely]]
! 	  return *this;
! 
! 	constexpr bool __pocca
! 	  = _ATraits::propagate_on_container_copy_assignment::value;
! 
! 	typename _Obj::pointer __ptr = nullptr;
! 	if (__other._M_objp)
! 	  {
! 	    auto& __a = __pocca ? __other._M_alloc : _M_alloc;
! 	    __ptr = __other._M_objp->_M_manage(__a, _Obj::_Op::_Copy);
! 	  }
! 
! 	_M_reset(__ptr);
! 
! 	if constexpr (__pocca)
! 	  _M_alloc = __other._M_alloc;
! 
! 	return *this;
!       }
! 
!       constexpr polymorphic&
!       operator=(polymorphic&& __other)
!       noexcept(_ATraits::propagate_on_container_move_assignment::value
! 		 || _ATraits::is_always_equal::value)
!       {
! 	if (__builtin_addressof(__other) == this) [[unlikely]]
! 	  return *this;
! 
! 	constexpr bool __pocma
! 	  = _ATraits::propagate_on_container_move_assignment::value;
! 
! 	typename _Obj::pointer __ptr = nullptr;
! 
! 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
! 	// 4251. Move assignment for indirect unnecessarily requires copy construction
! 	if constexpr (_ATraits::is_always_equal::value || __pocma)
! 	  __ptr = std::__exchange(__other._M_objp, nullptr);
! 	else if (_M_alloc == __other._M_alloc)
! 	  __ptr = std::__exchange(__other._M_objp, nullptr);
! 	else if (__other._M_objp)
! 	  {
! 	    static_assert(sizeof(_Tp) != 0, "must be a complete type");
! 	    __ptr = __other._M_objp->_M_manage(_M_alloc, _Obj::_Op::_Move);
! 	  }
! 
! 	_M_reset(__ptr);
! 
! 	if constexpr (__pocma)
! 	  _M_alloc = __other._M_alloc;
! 
! 	return *this;
!       }
! 
!       constexpr const _Tp&
!       operator*() const noexcept
!       {
! 	__glibcxx_assert(_M_objp != nullptr);
! 	return *_M_objp->_M_objp;
!       }
! 
!       constexpr _Tp&
!       operator*() noexcept
!       {
! 	__glibcxx_assert(_M_objp != nullptr);
! 	return *_M_objp->_M_objp;
!       }
! 
!       constexpr const_pointer
!       operator->() const noexcept
!       {
! 	__glibcxx_assert(_M_objp != nullptr);
! 	return _M_objp ? _M_objp->_M_objp : const_pointer{};
!       }
! 
!       constexpr pointer
!       operator->() noexcept
!       {
! 	__glibcxx_assert(_M_objp != nullptr);
! 	return _M_objp ? _M_objp->_M_objp : pointer{};
!       }
! 
!       constexpr bool
!       valueless_after_move() const noexcept { return _M_objp == nullptr; }
! 
!       constexpr allocator_type
!       get_allocator() const noexcept { return _M_alloc; }
! 
!       constexpr void
!       swap(polymorphic& __other)
!       noexcept(_ATraits::propagate_on_container_swap::value
! 		 || _ATraits::is_always_equal::value)
!       {
! 	using std::swap;
! 	swap(_M_objp, __other._M_objp);
! 	if constexpr (_ATraits::propagate_on_container_swap::value)
! 	  swap(_M_alloc, __other._M_alloc);
! 	else if constexpr (!_ATraits::is_always_equal::value)
! 	  __glibcxx_assert(_M_alloc == __other._M_alloc);
!       }
! 
!       friend constexpr void
!       swap(polymorphic& __lhs, polymorphic& __rhs)
!       noexcept(_ATraits::propagate_on_container_swap::value
! 	       || _ATraits::is_always_equal::value)
!       { __lhs.swap(__rhs); }
! 
!     private:
!       template<typename _Up, typename... _Args>
! 	static constexpr typename _Obj::pointer
! 	_S_make_obj(const _Alloc& __a, _Args&&... __args)
! 	{
! 	  __alloc_rebind<_Alloc, _Obj_impl<_Up>> __objalloc(__a);
! 	  _Scoped_allocation __sa(__objalloc, in_place, __objalloc,
! 				  std::forward<_Args>(__args)...);
! 	  auto __obj = __sa.release();
! 	  // FIXME: We need to downcast from _Obj_impl<U>* to _Obj* but the
! 	  // the pointer_traits usage breaks in constexpr. PR c++/110714
! 	  if constexpr (is_pointer_v<typename _Obj::pointer>)
! 	    return __obj;
! 	  else
! 	    return pointer_traits<typename _Obj::pointer>::pointer_to(*__obj);
! 	}
! 
!       template<typename _Up, typename... _Args>
! 	constexpr typename _Obj::pointer
! 	_M_make_obj(_Args&&... __args) const
! 	{ return _S_make_obj<_Up>(_M_alloc, std::forward<_Args>(__args)...); }
! 
!       constexpr void
!       _M_reset(typename _Obj::pointer __ptr) noexcept
!       {
! 	if (_M_objp)
! 	  _M_objp->_M_manage(_M_alloc, _Obj::_Op::_Dispose);
! 	_M_objp = __ptr;
!       }
! 
!       [[no_unique_address]] _Alloc _M_alloc = _Alloc();
!       typename _Obj::pointer _M_objp;
!     };
! #endif // __glibcxx_polymorphic
! 
! _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
  #endif // C++26 __glibcxx_indirect || __glibcxx_polymorphic
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/iterator_concepts.h gcc-16-20250608/libstdc++-v3/include/bits/iterator_concepts.h
*** gcc-16-20250601/libstdc++-v3/include/bits/iterator_concepts.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/iterator_concepts.h	Sun Jun  8 22:32:47 2025
*************** namespace ranges
*** 1022,1040 ****
    {
      using std::__detail::__class_or_enum;
  
-     struct _Decay_copy final
-     {
-       template<typename _Tp>
- 	constexpr decay_t<_Tp>
- 	operator()(_Tp&& __t) const
- 	noexcept(is_nothrow_convertible_v<_Tp, decay_t<_Tp>>)
- 	{ return std::forward<_Tp>(__t); }
-     } inline constexpr __decay_copy{};
- 
      template<typename _Tp>
        concept __member_begin = requires(_Tp& __t)
  	{
! 	  { __decay_copy(__t.begin()) } -> input_or_output_iterator;
  	};
  
      // Poison pill so that unqualified lookup doesn't find std::begin.
--- 1022,1031 ----
    {
      using std::__detail::__class_or_enum;
  
      template<typename _Tp>
        concept __member_begin = requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(__t.begin()) } -> input_or_output_iterator;
  	};
  
      // Poison pill so that unqualified lookup doesn't find std::begin.
*************** namespace ranges
*** 1044,1050 ****
        concept __adl_begin = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { __decay_copy(begin(__t)) } -> input_or_output_iterator;
  	};
  
      // Simplified version of std::ranges::begin that only supports lvalues,
--- 1035,1041 ----
        concept __adl_begin = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(begin(__t)) } -> input_or_output_iterator;
  	};
  
      // Simplified version of std::ranges::begin that only supports lvalues,
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/mofunc_impl.h gcc-16-20250608/libstdc++-v3/include/bits/mofunc_impl.h
*** gcc-16-20250601/libstdc++-v3/include/bits/mofunc_impl.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/mofunc_impl.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 64,69 ****
--- 64,73 ----
  			       _GLIBCXX_MOF_REF noexcept(_Noex)>
      : __polyfunc::_Mo_base
      {
+       static_assert(
+ 	(std::__is_complete_or_unbounded(__type_identity<_ArgTypes>()) && ...),
+ 	"each parameter type must be a complete class");
+ 
        using _Base = __polyfunc::_Mo_base;
        using _Invoker = __polyfunc::_Invoker<_Noex, _Res, _ArgTypes...>;
        using _Signature = _Invoker::_Signature;
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/ranges_algo.h gcc-16-20250608/libstdc++-v3/include/bits/ranges_algo.h
*** gcc-16-20250601/libstdc++-v3/include/bits/ranges_algo.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/ranges_algo.h	Sun Jun  8 22:32:47 2025
*************** namespace ranges
*** 438,443 ****
--- 438,691 ----
  
    inline constexpr __search_n_fn search_n{};
  
+ #if __glibcxx_ranges_starts_ends_with // C++ >= 23
+   struct __starts_with_fn
+   {
+     template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
+ 	     input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
+ 	     typename _Pred = ranges::equal_to,
+ 	     typename _Proj1 = identity, typename _Proj2 = identity>
+       requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
+       constexpr bool
+       operator()(_Iter1 __first1, _Sent1 __last1,
+ 		 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {},
+ 		 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
+       {
+ 	iter_difference_t<_Iter1> __n1 = -1;
+ 	iter_difference_t<_Iter2> __n2 = -1;
+ 	if constexpr (sized_sentinel_for<_Sent1, _Iter1>)
+ 	  __n1 = __last1 - __first1;
+ 	if constexpr (sized_sentinel_for<_Sent2, _Iter2>)
+ 	  __n2 = __last2 - __first2;
+ 	return _S_impl(std::move(__first1), __last1, __n1,
+ 		       std::move(__first2), __last2, __n2,
+ 		       std::move(__pred),
+ 		       std::move(__proj1), std::move(__proj2));
+       }
+ 
+     template<input_range _Range1, input_range _Range2,
+ 	     typename _Pred = ranges::equal_to,
+ 	     typename _Proj1 = identity, typename _Proj2 = identity>
+       requires indirectly_comparable<iterator_t<_Range1>, iterator_t<_Range2>,
+ 				     _Pred, _Proj1, _Proj2>
+       constexpr bool
+       operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
+ 		 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
+       {
+ 	range_difference_t<_Range1> __n1 = -1;
+ 	range_difference_t<_Range2> __n2 = -1;
+ 	if constexpr (sized_range<_Range1>)
+ 	  __n1 = ranges::size(__r1);
+ 	if constexpr (sized_range<_Range2>)
+ 	  __n2 = ranges::size(__r2);
+ 	return _S_impl(ranges::begin(__r1), ranges::end(__r1), __n1,
+ 		       ranges::begin(__r2), ranges::end(__r2), __n2,
+ 		       std::move(__pred),
+ 		       std::move(__proj1), std::move(__proj2));
+       }
+ 
+   private:
+     template<typename _Iter1, typename _Sent1, typename _Iter2, typename _Sent2,
+ 	     typename _Pred,
+ 	     typename _Proj1, typename _Proj2>
+       static constexpr bool
+       _S_impl(_Iter1 __first1, _Sent1 __last1, iter_difference_t<_Iter1> __n1,
+ 	      _Iter2 __first2, _Sent2 __last2, iter_difference_t<_Iter2> __n2,
+ 	      _Pred __pred, _Proj1 __proj1, _Proj2 __proj2)
+       {
+ 	if (__first2 == __last2) [[unlikely]]
+ 	  return true;
+ 	else if (__n1 == -1 || __n2 == -1)
+ 	  return ranges::mismatch(std::move(__first1), __last1,
+ 				  std::move(__first2), __last2,
+ 				  std::move(__pred),
+ 				  std::move(__proj1), std::move(__proj2)).in2 == __last2;
+ 	else if (__n1 < __n2)
+ 	  return false;
+ 	else if constexpr (random_access_iterator<_Iter1>)
+ 	  return ranges::equal(__first1, __first1 + iter_difference_t<_Iter1>(__n2),
+ 			       std::move(__first2), __last2,
+ 			       std::move(__pred),
+ 			       std::move(__proj1), std::move(__proj2));
+ 	else
+ 	  return ranges::equal(counted_iterator(std::move(__first1),
+ 						iter_difference_t<_Iter1>(__n2)),
+ 			       default_sentinel,
+ 			       std::move(__first2), __last2,
+ 			       std::move(__pred),
+ 			       std::move(__proj1), std::move(__proj2));
+       }
+ 
+     friend struct __ends_with_fn;
+   };
+ 
+   inline constexpr __starts_with_fn starts_with{};
+ 
+   struct __ends_with_fn
+   {
+     template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
+ 	     input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
+ 	     typename _Pred = ranges::equal_to,
+ 	     typename _Proj1 = identity, typename _Proj2 = identity>
+       requires (forward_iterator<_Iter1> || sized_sentinel_for<_Sent1, _Iter1>)
+ 	&& (forward_iterator<_Iter2> || sized_sentinel_for<_Sent2, _Iter2>)
+ 	&& indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
+       constexpr bool
+       operator()(_Iter1 __first1, _Sent1 __last1,
+ 		 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {},
+ 		 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
+       {
+ 	iter_difference_t<_Iter1> __n1 = -1;
+ 	iter_difference_t<_Iter2> __n2 = -1;
+ 	if constexpr (sized_sentinel_for<_Sent1, _Iter1>)
+ 	  __n1 = __last1 - __first1;
+ 	if constexpr (sized_sentinel_for<_Sent2, _Iter2>)
+ 	  __n2 = __last2 - __first2;
+ 	return _S_impl(std::move(__first1), __last1, __n1,
+ 		       std::move(__first2), __last2, __n2,
+ 		       std::move(__pred),
+ 		       std::move(__proj1), std::move(__proj2));
+       }
+ 
+     template<input_range _Range1, input_range _Range2,
+ 	     typename _Pred = ranges::equal_to,
+ 	     typename _Proj1 = identity, typename _Proj2 = identity>
+       requires (forward_range<_Range1> || sized_range<_Range1>)
+ 	&& (forward_range<_Range2> || sized_range<_Range2>)
+ 	&& indirectly_comparable<iterator_t<_Range1>, iterator_t<_Range2>,
+ 				 _Pred, _Proj1, _Proj2>
+       constexpr bool
+       operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
+ 		 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
+       {
+ 	range_difference_t<_Range1> __n1 = -1;
+ 	range_difference_t<_Range2> __n2 = -1;
+ 	if constexpr (sized_range<_Range1>)
+ 	  __n1 = ranges::size(__r1);
+ 	if constexpr (sized_range<_Range2>)
+ 	  __n2 = ranges::size(__r2);
+ 	return _S_impl(ranges::begin(__r1), ranges::end(__r1), __n1,
+ 		       ranges::begin(__r2), ranges::end(__r2), __n2,
+ 		       std::move(__pred),
+ 		       std::move(__proj1), std::move(__proj2));
+       }
+ 
+   private:
+     template<typename _Iter1, typename _Sent1,
+ 	     typename _Iter2, typename _Sent2,
+ 	     typename _Pred,
+ 	     typename _Proj1, typename _Proj2>
+       static constexpr bool
+       _S_impl(_Iter1 __first1, _Sent1 __last1, iter_difference_t<_Iter1> __n1,
+ 	      _Iter2 __first2, _Sent2 __last2, iter_difference_t<_Iter2> __n2,
+ 	      _Pred __pred, _Proj1 __proj1, _Proj2 __proj2)
+       {
+ 	if constexpr (!random_access_iterator<_Iter1>
+ 		      && bidirectional_iterator<_Iter1> && same_as<_Iter1, _Sent1>
+ 		      && bidirectional_iterator<_Iter2> && same_as<_Iter2, _Sent2>)
+ 	  return starts_with._S_impl(std::make_reverse_iterator(__last1),
+ 				     std::make_reverse_iterator(__first1),
+ 				     __n1,
+ 				     std::make_reverse_iterator(__last2),
+ 				     std::make_reverse_iterator(__first2),
+ 				     __n2,
+ 				     std::move(__pred),
+ 				     std::move(__proj1), std::move(__proj2));
+ 
+ 	if (__first2 == __last2) [[unlikely]]
+ 	  return true;
+ 
+ 	if constexpr (forward_iterator<_Iter2>)
+ 	  if (__n2 == -1)
+ 	    __n2 = ranges::distance(__first2, __last2);
+ 
+ 	// __glibcxx_assert(__n2 != -1);
+ 
+ 	if (__n1 != -1)
+ 	  {
+ 	    if (__n1 < __n2)
+ 	      return false;
+ 	    auto __shift = __n1 - iter_difference_t<_Iter1>(__n2);
+ 	    if (random_access_iterator<_Iter1>
+ 		|| !bidirectional_iterator<_Iter1>
+ 		|| !same_as<_Iter1, _Sent1>
+ 		|| __shift < __n2)
+ 	      {
+ 		ranges::advance(__first1, __shift);
+ 		return ranges::equal(std::move(__first1), __last1,
+ 				     std::move(__first2), __last2,
+ 				     std::move(__pred),
+ 				     std::move(__proj1), std::move(__proj2));
+ 	      }
+ 	  }
+ 
+ 	if constexpr (bidirectional_iterator<_Iter1> && same_as<_Iter1, _Sent1>)
+ 	  {
+ 	    _Iter1 __it1 = __last1;
+ 	    if (__n1 != -1)
+ 	      ranges::advance(__it1, -iter_difference_t<_Iter1>(__n2));
+ 	    else
+ 	      {
+ 		// We can't use ranges::advance if the haystack size is
+ 		// unknown, since we need to detect and return false if
+ 		// it's smaller than the needle.
+ 		iter_difference_t<_Iter2> __m = __n2;
+ 		while (__m != 0 && __it1 != __first1)
+ 		  {
+ 		    --__m;
+ 		    --__it1;
+ 		  }
+ 		if (__m != 0)
+ 		  return false;
+ 	      }
+ 	    return ranges::equal(__it1, __last1,
+ 				 std::move(__first2), __last2,
+ 				 std::move(__pred),
+ 				 std::move(__proj1), std::move(__proj2));
+ 	  }
+ 	else if constexpr (forward_iterator<_Iter1>)
+ 	  {
+ 	    // __glibcxx_assert(__n1 == -1);
+ 	    _Iter1 __prev_first1;
+ 	    __n1 = 0;
+ 	    while (true)
+ 	      {
+ 		iter_difference_t<_Iter2> __m = __n2;
+ 		_Iter1 __it1 = __first1;
+ 		while (__m != 0 && __it1 != __last1)
+ 		  {
+ 		    ++__n1;
+ 		    --__m;
+ 		    ++__it1;
+ 		  }
+ 		if (__m != 0)
+ 		  {
+ 		    // __glibcxx_assert(__it1 == __last1);
+ 		    if (__n1 < __n2)
+ 		      return false;
+ 		    __first1 = ranges::next(__prev_first1,
+ 					    iter_difference_t<_Iter1>(__n2 - __m));
+ 		    break;
+ 		  }
+ 		__prev_first1 = __first1;
+ 		__first1 = __it1;
+ 	      }
+ 	    return ranges::equal(__first1, __last1,
+ 				 std::move(__first2), __last2,
+ 				 std::move(__pred),
+ 				 std::move(__proj1), std::move(__proj2));
+ 	  }
+ 	else
+ 	  // If the haystack is non-forward then it must be sized, in which case
+ 	  // we already returned via the __n1 != 1 case.
+ 	  __builtin_unreachable();
+       }
+ 
+   };
+ 
+   inline constexpr __ends_with_fn ends_with{};
+ #endif // __glibcxx_ranges_starts_ends_with
+ 
    struct __find_end_fn
    {
      template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
*************** namespace ranges
*** 1218,1223 ****
--- 1466,1474 ----
  	if (__first == __last)
  	  return {std::move(__first), std::move(__result)};
  
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 4269. unique_copy passes arguments to its predicate backwards
+ 
  	// TODO: perform a closer comparison with reference implementations
  	if constexpr (forward_iterator<_Iter>)
  	  {
*************** namespace ranges
*** 1250,1257 ****
  	    while (++__first != __last)
  	      {
  		if (!(bool)std::__invoke(__comp,
! 					 std::__invoke(__proj, *__first),
! 					 std::__invoke(__proj, __value)))
  		  {
  		    __value = *__first;
  		    *++__result = __value;
--- 1501,1508 ----
  	    while (++__first != __last)
  	      {
  		if (!(bool)std::__invoke(__comp,
! 					 std::__invoke(__proj, __value),
! 					 std::__invoke(__proj, *__first)))
  		  {
  		    __value = *__first;
  		    *++__result = __value;
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/ranges_base.h gcc-16-20250608/libstdc++-v3/include/bits/ranges_base.h
*** gcc-16-20250601/libstdc++-v3/include/bits/ranges_base.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/ranges_base.h	Sun Jun  8 22:32:47 2025
*************** namespace ranges
*** 119,127 ****
  	  if constexpr (is_array_v<remove_reference_t<_Tp>>)
  	    return true;
  	  else if constexpr (__member_begin<_Tp>)
! 	    return noexcept(__decay_copy(std::declval<_Tp&>().begin()));
  	  else
! 	    return noexcept(__decay_copy(begin(std::declval<_Tp&>())));
  	}
  
      public:
--- 119,127 ----
  	  if constexpr (is_array_v<remove_reference_t<_Tp>>)
  	    return true;
  	  else if constexpr (__member_begin<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(std::declval<_Tp&>().begin()));
  	  else
! 	    return noexcept(_GLIBCXX_AUTO_CAST(begin(std::declval<_Tp&>())));
  	}
  
      public:
*************** namespace ranges
*** 146,152 ****
      template<typename _Tp>
        concept __member_end = requires(_Tp& __t)
  	{
! 	  { __decay_copy(__t.end()) } -> sentinel_for<__range_iter_t<_Tp>>;
  	};
  
      // Poison pill so that unqualified lookup doesn't find std::end.
--- 146,152 ----
      template<typename _Tp>
        concept __member_end = requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(__t.end()) } -> sentinel_for<__range_iter_t<_Tp>>;
  	};
  
      // Poison pill so that unqualified lookup doesn't find std::end.
*************** namespace ranges
*** 156,162 ****
        concept __adl_end = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { __decay_copy(end(__t)) } -> sentinel_for<__range_iter_t<_Tp>>;
  	};
  
      struct _End
--- 156,162 ----
        concept __adl_end = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(end(__t)) } -> sentinel_for<__range_iter_t<_Tp>>;
  	};
  
      struct _End
*************** namespace ranges
*** 169,177 ****
  	  if constexpr (is_bounded_array_v<remove_reference_t<_Tp>>)
  	    return true;
  	  else if constexpr (__member_end<_Tp>)
! 	    return noexcept(__decay_copy(std::declval<_Tp&>().end()));
  	  else
! 	    return noexcept(__decay_copy(end(std::declval<_Tp&>())));
  	}
  
      public:
--- 169,177 ----
  	  if constexpr (is_bounded_array_v<remove_reference_t<_Tp>>)
  	    return true;
  	  else if constexpr (__member_end<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(std::declval<_Tp&>().end()));
  	  else
! 	    return noexcept(_GLIBCXX_AUTO_CAST(end(std::declval<_Tp&>())));
  	}
  
      public:
*************** namespace ranges
*** 196,202 ****
      template<typename _Tp>
        concept __member_rbegin = requires(_Tp& __t)
  	{
! 	  { __decay_copy(__t.rbegin()) } -> input_or_output_iterator;
  	};
  
      void rbegin() = delete;
--- 196,202 ----
      template<typename _Tp>
        concept __member_rbegin = requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(__t.rbegin()) } -> input_or_output_iterator;
  	};
  
      void rbegin() = delete;
*************** namespace ranges
*** 205,211 ****
        concept __adl_rbegin = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { __decay_copy(rbegin(__t)) } -> input_or_output_iterator;
  	};
  
      template<typename _Tp>
--- 205,211 ----
        concept __adl_rbegin = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(rbegin(__t)) } -> input_or_output_iterator;
  	};
  
      template<typename _Tp>
*************** namespace ranges
*** 223,231 ****
  	_S_noexcept()
  	{
  	  if constexpr (__member_rbegin<_Tp>)
! 	    return noexcept(__decay_copy(std::declval<_Tp&>().rbegin()));
  	  else if constexpr (__adl_rbegin<_Tp>)
! 	    return noexcept(__decay_copy(rbegin(std::declval<_Tp&>())));
  	  else
  	    {
  	      if constexpr (noexcept(_End{}(std::declval<_Tp&>())))
--- 223,231 ----
  	_S_noexcept()
  	{
  	  if constexpr (__member_rbegin<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(std::declval<_Tp&>().rbegin()));
  	  else if constexpr (__adl_rbegin<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(rbegin(std::declval<_Tp&>())));
  	  else
  	    {
  	      if constexpr (noexcept(_End{}(std::declval<_Tp&>())))
*************** namespace ranges
*** 258,264 ****
      template<typename _Tp>
        concept __member_rend = requires(_Tp& __t)
  	{
! 	  { __decay_copy(__t.rend()) }
  	    -> sentinel_for<decltype(_RBegin{}(std::forward<_Tp>(__t)))>;
  	};
  
--- 258,264 ----
      template<typename _Tp>
        concept __member_rend = requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(__t.rend()) }
  	    -> sentinel_for<decltype(_RBegin{}(std::forward<_Tp>(__t)))>;
  	};
  
*************** namespace ranges
*** 268,274 ****
        concept __adl_rend = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { __decay_copy(rend(__t)) }
  	    -> sentinel_for<decltype(_RBegin{}(std::forward<_Tp>(__t)))>;
  	};
  
--- 268,274 ----
        concept __adl_rend = __class_or_enum<remove_reference_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(rend(__t)) }
  	    -> sentinel_for<decltype(_RBegin{}(std::forward<_Tp>(__t)))>;
  	};
  
*************** namespace ranges
*** 280,288 ****
  	_S_noexcept()
  	{
  	  if constexpr (__member_rend<_Tp>)
! 	    return noexcept(__decay_copy(std::declval<_Tp&>().rend()));
  	  else if constexpr (__adl_rend<_Tp>)
! 	    return noexcept(__decay_copy(rend(std::declval<_Tp&>())));
  	  else
  	    {
  	      if constexpr (noexcept(_Begin{}(std::declval<_Tp&>())))
--- 280,288 ----
  	_S_noexcept()
  	{
  	  if constexpr (__member_rend<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(std::declval<_Tp&>().rend()));
  	  else if constexpr (__adl_rend<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(rend(std::declval<_Tp&>())));
  	  else
  	    {
  	      if constexpr (noexcept(_Begin{}(std::declval<_Tp&>())))
*************** namespace ranges
*** 316,322 ****
        concept __member_size = !disable_sized_range<remove_cvref_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { __decay_copy(__t.size()) } -> __detail::__is_integer_like;
  	};
  
      void size() = delete;
--- 316,322 ----
        concept __member_size = !disable_sized_range<remove_cvref_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(__t.size()) } -> __detail::__is_integer_like;
  	};
  
      void size() = delete;
*************** namespace ranges
*** 326,332 ****
  	&& !disable_sized_range<remove_cvref_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { __decay_copy(size(__t)) } -> __detail::__is_integer_like;
  	};
  
      template<typename _Tp>
--- 326,332 ----
  	&& !disable_sized_range<remove_cvref_t<_Tp>>
  	&& requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(size(__t)) } -> __detail::__is_integer_like;
  	};
  
      template<typename _Tp>
*************** namespace ranges
*** 351,359 ****
  	  if constexpr (is_bounded_array_v<remove_reference_t<_Tp>>)
  	    return true;
  	  else if constexpr (__member_size<_Tp>)
! 	    return noexcept(__decay_copy(std::declval<_Tp&>().size()));
  	  else if constexpr (__adl_size<_Tp>)
! 	    return noexcept(__decay_copy(size(std::declval<_Tp&>())));
  	  else if constexpr (__sentinel_size<_Tp>)
  	    return noexcept(_End{}(std::declval<_Tp&>())
  			    - _Begin{}(std::declval<_Tp&>()));
--- 351,359 ----
  	  if constexpr (is_bounded_array_v<remove_reference_t<_Tp>>)
  	    return true;
  	  else if constexpr (__member_size<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(std::declval<_Tp&>().size()));
  	  else if constexpr (__adl_size<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(size(std::declval<_Tp&>())));
  	  else if constexpr (__sentinel_size<_Tp>)
  	    return noexcept(_End{}(std::declval<_Tp&>())
  			    - _Begin{}(std::declval<_Tp&>()));
*************** namespace ranges
*** 463,469 ****
      template<typename _Tp>
        concept __member_data = requires(_Tp& __t)
  	{
! 	  { __decay_copy(__t.data()) } -> __pointer_to_object;
  	};
  
      template<typename _Tp>
--- 463,469 ----
      template<typename _Tp>
        concept __member_data = requires(_Tp& __t)
  	{
! 	  { _GLIBCXX_AUTO_CAST(__t.data()) } -> __pointer_to_object;
  	};
  
      template<typename _Tp>
*************** namespace ranges
*** 477,483 ****
  	_S_noexcept()
  	{
  	  if constexpr (__member_data<_Tp>)
! 	    return noexcept(__decay_copy(std::declval<_Tp&>().data()));
  	  else
  	    return noexcept(_Begin{}(std::declval<_Tp&>()));
  	}
--- 477,483 ----
  	_S_noexcept()
  	{
  	  if constexpr (__member_data<_Tp>)
! 	    return noexcept(_GLIBCXX_AUTO_CAST(std::declval<_Tp&>().data()));
  	  else
  	    return noexcept(_Begin{}(std::declval<_Tp&>()));
  	}
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/semaphore_base.h gcc-16-20250608/libstdc++-v3/include/bits/semaphore_base.h
*** gcc-16-20250601/libstdc++-v3/include/bits/semaphore_base.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/semaphore_base.h	Sun Jun  8 22:32:47 2025
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 46,132 ****
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   template<bool _Platform_wait>
!   struct __semaphore_base
    {
!     using __count_type = __conditional_t<_Platform_wait,
! 					 __detail::__platform_wait_t,
! 					 ptrdiff_t>;
  
      static constexpr ptrdiff_t _S_max
        = __gnu_cxx::__int_traits<__count_type>::__max;
  
      constexpr explicit
!     __semaphore_base(__count_type __count) noexcept
      : _M_counter(__count)
      { }
  
!     __semaphore_base(const __semaphore_base&) = delete;
!     __semaphore_base& operator=(const __semaphore_base&) = delete;
  
!     static _GLIBCXX_ALWAYS_INLINE __count_type
!     _S_get_current(__count_type* __counter) noexcept
      {
!       return __atomic_impl::load(__counter, memory_order::acquire);
      }
  
!     static _GLIBCXX_ALWAYS_INLINE bool
!     _S_do_try_acquire(__count_type* __counter, __count_type __old) noexcept
      {
!       if (__old == 0)
! 	return false;
  
!       return __atomic_impl::compare_exchange_strong(__counter,
! 						    __old, __old - 1,
  						    memory_order::acquire,
  						    memory_order::relaxed);
      }
  
!     _GLIBCXX_ALWAYS_INLINE void
      _M_acquire() noexcept
      {
!       auto const __vfn = [this]{ return _S_get_current(&this->_M_counter); };
!       auto const __pred = [this](__count_type __cur) {
! 	return _S_do_try_acquire(&this->_M_counter, __cur);
!       };
!       std::__atomic_wait_address(&_M_counter, __pred, __vfn, true);
      }
  
      bool
      _M_try_acquire() noexcept
      {
!       auto const __vfn = [this]{ return _S_get_current(&this->_M_counter); };
!       auto const __pred = [this](__count_type __cur) {
! 	return _S_do_try_acquire(&this->_M_counter, __cur);
!       };
!       using __detail::__wait_clock_t;
!       return std::__atomic_wait_address_for(&_M_counter, __pred, __vfn,
! 					    __wait_clock_t::duration(),
! 					    true);
      }
  
      template<typename _Clock, typename _Duration>
!       _GLIBCXX_ALWAYS_INLINE bool
        _M_try_acquire_until(const chrono::time_point<_Clock, _Duration>& __atime) noexcept
        {
! 	auto const __vfn = [this]{ return _S_get_current(&this->_M_counter); };
! 	auto const __pred = [this](__count_type __cur) {
! 	  return _S_do_try_acquire(&this->_M_counter, __cur);
! 	};
! 	return std::__atomic_wait_address_until(&_M_counter, __pred, __vfn,
! 						__atime, true);
        }
  
      template<typename _Rep, typename _Period>
!       _GLIBCXX_ALWAYS_INLINE bool
        _M_try_acquire_for(const chrono::duration<_Rep, _Period>& __rtime) noexcept
        {
! 	auto const __vfn = [this]{ return _S_get_current(&this->_M_counter); };
! 	auto const __pred = [this](__count_type __cur) {
! 	  return _S_do_try_acquire(&this->_M_counter, __cur);
! 	};
! 	return std::__atomic_wait_address_for(&_M_counter, __pred, __vfn,
! 					      __rtime, true);
        }
  
      _GLIBCXX_ALWAYS_INLINE ptrdiff_t
--- 46,278 ----
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   struct __semaphore_impl
    {
!     using __count_type = ptrdiff_t;
  
      static constexpr ptrdiff_t _S_max
        = __gnu_cxx::__int_traits<__count_type>::__max;
  
      constexpr explicit
!     __semaphore_impl(__count_type __count) noexcept
      : _M_counter(__count)
      { }
  
!     __semaphore_impl(const __semaphore_impl&) = delete;
!     __semaphore_impl& operator=(const __semaphore_impl&) = delete;
  
!     // Load the current counter value.
!     _GLIBCXX_ALWAYS_INLINE __count_type
!     _M_get_current() const noexcept
!     { return __atomic_impl::load(&_M_counter, memory_order::acquire); }
! 
!     // Try to acquire the semaphore (i.e. decrement the counter).
!     // Returns false if the current counter is zero, or if another thread
!     // changes the value first. In the latter case, __cur is set to the new
!     // value.
!     _GLIBCXX_ALWAYS_INLINE bool
!     _M_do_try_acquire(__count_type& __cur) noexcept
      {
!       if (__cur == 0)
! 	return false; // Cannot decrement when it's already zero.
! 
!       return __atomic_impl::compare_exchange_strong(&_M_counter,
! 						    __cur, __cur - 1,
! 						    memory_order::acquire,
! 						    memory_order::relaxed);
      }
  
!     // Keep trying to acquire the semaphore in a loop until it succeeds.
!     void
!     _M_acquire() noexcept
      {
!       auto __vfn = [this]{ return _M_get_current(); };
!       _Available __is_available{__vfn()};
!       while (!_M_do_try_acquire(__is_available._M_val))
! 	if (!__is_available())
! 	  std::__atomic_wait_address(&_M_counter, __is_available, __vfn, true);
!     }
  
!     // Try to acquire the semaphore, retrying a small number of times
!     // in case of contention.
!     bool
!     _M_try_acquire() noexcept
!     {
!       // The fastest implementation of this function is just _M_do_try_acquire
!       // but that can fail under contention even when _M_count > 0.
!       // Using _M_try_acquire_for(0ns) will retry a few times in a loop.
!       return _M_try_acquire_for(__detail::__wait_clock_t::duration{});
!     }
! 
!     template<typename _Clock, typename _Duration>
!       bool
!       _M_try_acquire_until(const chrono::time_point<_Clock, _Duration>& __atime) noexcept
!       {
! 	auto __vfn = [this]{ return _M_get_current(); };
! 	_Available __is_available{__vfn()};
! 	while (!_M_do_try_acquire(__is_available._M_val))
! 	  if (!__is_available())
! 	    if (!std::__atomic_wait_address_until(&_M_counter, __is_available,
! 						  __vfn, __atime, true))
! 	      return false; // timed out
! 	return true;
!       }
! 
!     template<typename _Rep, typename _Period>
!       bool
!       _M_try_acquire_for(const chrono::duration<_Rep, _Period>& __rtime) noexcept
!       {
! 	auto __vfn = [this]{ return _M_get_current(); };
! 	_Available __is_available{__vfn()};
! 	while (!_M_do_try_acquire(__is_available._M_val))
! 	  if (!__is_available())
! 	    if (!std::__atomic_wait_address_for(&_M_counter, __is_available,
! 						__vfn, __rtime, true))
! 	      return false; // timed out
! 	return true;
!       }
! 
!     _GLIBCXX_ALWAYS_INLINE ptrdiff_t
!     _M_release(ptrdiff_t __update) noexcept
!     {
!       auto __old = __atomic_impl::fetch_add(&_M_counter, __update,
! 					    memory_order::release);
!       if (__old == 0 && __update > 0)
! 	__atomic_notify_address(&_M_counter, true, true);
!       return __old;
!     }
! 
!   private:
!     struct _Available
!     {
!       __count_type _M_val; // Cache of the last value loaded from _M_counter.
! 
!       // Returns true if the cached value is non-zero and so it should be
!       // possible to acquire the semaphore.
!       bool operator()() const noexcept { return _M_val > 0; }
! 
!       // Argument should be the latest value of the counter.
!       // Returns true (and caches the value) if it's non-zero, meaning it
!       // should be possible to acquire the semaphore. Returns false otherwise.
!       bool operator()(__count_type __cur) noexcept
!       {
! 	if (__cur == 0)
! 	  return false;
! 	_M_val = __cur;
! 	return true;
!       }
!     };
! 
!     alignas(__atomic_ref<__count_type>::required_alignment)
!       __count_type _M_counter;
!   };
! 
!   // Optimized specialization using __platform_wait (if available)
!   template<bool _Binary>
!   struct __platform_semaphore_impl
!   {
!     using __count_type = __detail::__platform_wait_t;
! 
!     static constexpr ptrdiff_t _S_max
!       = _Binary ? 1 : __gnu_cxx::__int_traits<__count_type>::__max;
! 
!     constexpr explicit
!     __platform_semaphore_impl(__count_type __count) noexcept
!     : _M_counter(__count)
!     { }
! 
!     __platform_semaphore_impl(__platform_semaphore_impl&) = delete;
!     __platform_semaphore_impl& operator=(const __platform_semaphore_impl&) = delete;
! 
!     // Load the current counter value.
!     _GLIBCXX_ALWAYS_INLINE __count_type
!     _M_get_current() const noexcept
!     {
!       if constexpr (_Binary)
! 	return 1; // Not necessarily true, but optimistically assume it is.
!       else
! 	return __atomic_impl::load(&_M_counter, memory_order::acquire);
!     }
! 
!     // Try to acquire the semaphore (i.e. decrement the counter).
!     // Returns false if the current counter is zero, or if another thread
!     // changes the value first. In the latter case, __cur is set to the new
!     // value.
!     _GLIBCXX_ALWAYS_INLINE bool
!     _M_do_try_acquire(__count_type& __cur) noexcept
!     {
!       if (__cur == 0)
! 	return false; // Cannot decrement when it's already zero.
! 
!       return __atomic_impl::compare_exchange_strong(&_M_counter,
! 						    __cur, __cur - 1,
  						    memory_order::acquire,
  						    memory_order::relaxed);
      }
  
!     // Keep trying to acquire the semaphore in a loop until it succeeds.
!     void
      _M_acquire() noexcept
      {
!       auto __val = _M_get_current();
!       while (!_M_do_try_acquire(__val))
! 	if (__val == 0)
! 	  {
! 	    std::__atomic_wait_address_v(&_M_counter, __val, __ATOMIC_ACQUIRE,
! 					 true);
! 	    __val = _M_get_current();
! 	  }
      }
  
+     // Try to acquire the semaphore.
      bool
      _M_try_acquire() noexcept
      {
!       if constexpr (_Binary)
! 	{
! 	  __count_type __val = 1;
! 	  // Do not expect much contention on binary semaphore, only try once.
! 	  return _M_do_try_acquire(__val);
! 	}
!       else
! 	// Fastest implementation of this function is just _M_do_try_acquire
! 	// but that can fail under contention even when _M_count > 0.
! 	// Using _M_try_acquire_for(0ns) will retry a few times in a loop.
! 	return _M_try_acquire_for(__detail::__wait_clock_t::duration{});
      }
  
      template<typename _Clock, typename _Duration>
!       bool
        _M_try_acquire_until(const chrono::time_point<_Clock, _Duration>& __atime) noexcept
        {
! 	auto __val = _M_get_current();
! 	while (!_M_do_try_acquire(__val))
! 	  if (__val == 0)
! 	    {
! 	      if (!std::__atomic_wait_address_until_v(&_M_counter, 0,
! 						      __ATOMIC_ACQUIRE,
! 						      __atime, true))
! 		return false; // timed out
! 	      __val = _M_get_current();
! 	    }
! 	return true;
        }
  
      template<typename _Rep, typename _Period>
!       bool
        _M_try_acquire_for(const chrono::duration<_Rep, _Period>& __rtime) noexcept
        {
! 	auto __val = _M_get_current();
! 	while (!_M_do_try_acquire(__val))
! 	  if (__val == 0)
! 	    {
! 	      if (!std::__atomic_wait_address_for_v(&_M_counter, 0,
! 						    __ATOMIC_ACQUIRE,
! 						    __rtime, true))
! 		return false; // timed out
! 	      __val = _M_get_current();
! 	    }
! 	return true;
        }
  
      _GLIBCXX_ALWAYS_INLINE ptrdiff_t
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 139,153 ****
        return __old;
      }
  
!   private:
!     alignas(_Platform_wait ? __detail::__platform_wait_alignment
! 			   : __alignof__(__count_type))
!     __count_type _M_counter;
    };
  
!   template<ptrdiff_t _Max>
!     using __semaphore_impl
!       = __semaphore_base<(_Max <= __semaphore_base<true>::_S_max)>;
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
--- 285,300 ----
        return __old;
      }
  
!   protected:
!     alignas(__detail::__platform_wait_alignment) __count_type _M_counter;
    };
  
!   template<ptrdiff_t _Max, typename _Tp = __detail::__platform_wait_t>
!     using _Semaphore_impl
!       = __conditional_t<__platform_wait_uses_type<_Tp>
! 			  && _Max <= __gnu_cxx::__int_traits<_Tp>::__max,
! 			__platform_semaphore_impl<(_Max <= 1)>,
! 			__semaphore_impl>;
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/stl_algo.h gcc-16-20250608/libstdc++-v3/include/bits/stl_algo.h
*** gcc-16-20250601/libstdc++-v3/include/bits/stl_algo.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/stl_algo.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 918,969 ****
  			   __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
      }
  
!   /**
!    *  This is an uglified
!    *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
!    *              _BinaryPredicate)
!    *  overloaded for forward iterators and output iterator as result.
!   */
    template<typename _ForwardIterator, typename _OutputIterator,
  	   typename _BinaryPredicate>
      _GLIBCXX20_CONSTEXPR
      _OutputIterator
      __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
  		  _OutputIterator __result, _BinaryPredicate __binary_pred,
! 		  forward_iterator_tag, output_iterator_tag)
      {
!       _ForwardIterator __next = __first;
        *__result = *__first;
!       while (++__next != __last)
! 	if (!__binary_pred(__first, __next))
  	  {
- 	    __first = __next;
  	    *++__result = *__first;
  	  }
        return ++__result;
      }
  
!   /**
!    *  This is an uglified
!    *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
!    *              _BinaryPredicate)
!    *  overloaded for input iterators and output iterator as result.
!   */
    template<typename _InputIterator, typename _OutputIterator,
  	   typename _BinaryPredicate>
      _GLIBCXX20_CONSTEXPR
      _OutputIterator
!     __unique_copy(_InputIterator __first, _InputIterator __last,
! 		  _OutputIterator __result, _BinaryPredicate __binary_pred,
! 		  input_iterator_tag, output_iterator_tag)
      {
!       typename iterator_traits<_InputIterator>::value_type __value = *__first;
!       __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred))
! 	__rebound_pred
! 	= __gnu_cxx::__ops::__iter_comp_val(__binary_pred);
        *__result = __value;
        while (++__first != __last)
! 	if (!__rebound_pred(__first, __value))
  	  {
  	    __value = *__first;
  	    *++__result = __value;
--- 918,962 ----
  			   __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
      }
  
!   // _GLIBCXX_RESOLVE_LIB_DEFECTS
!   // 4269. unique_copy passes arguments to its predicate backwards
! 
!   // Implementation of std::unique_copy for forward iterators.
!   // This case is easy, just compare *i with *(i-1).
    template<typename _ForwardIterator, typename _OutputIterator,
  	   typename _BinaryPredicate>
      _GLIBCXX20_CONSTEXPR
      _OutputIterator
      __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
  		  _OutputIterator __result, _BinaryPredicate __binary_pred,
! 		  forward_iterator_tag)
      {
!       _ForwardIterator __prev = __first;
        *__result = *__first;
!       while (++__first != __last)
! 	if (!__binary_pred(__prev, __first))
  	  {
  	    *++__result = *__first;
+ 	    __prev = __first;
  	  }
        return ++__result;
      }
  
!   // Implementation of std::unique_copy for non-forward iterators,
!   // where we cannot compare with elements written to the output.
    template<typename _InputIterator, typename _OutputIterator,
  	   typename _BinaryPredicate>
      _GLIBCXX20_CONSTEXPR
      _OutputIterator
!     __unique_copy_1(_InputIterator __first, _InputIterator __last,
! 		    _OutputIterator __result, _BinaryPredicate __binary_pred,
! 		    __false_type)
      {
!       typedef typename iterator_traits<_InputIterator>::value_type _Val;
!       _Val __value = *__first;
        *__result = __value;
        while (++__first != __last)
! 	if (!__binary_pred(std::__addressof(__value), __first))
  	  {
  	    __value = *__first;
  	    *++__result = __value;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 971,989 ****
        return ++__result;
      }
  
!   /**
!    *  This is an uglified
!    *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
!    *              _BinaryPredicate)
!    *  overloaded for input iterators and forward iterator as result.
!   */
    template<typename _InputIterator, typename _ForwardIterator,
  	   typename _BinaryPredicate>
-     _GLIBCXX20_CONSTEXPR
      _ForwardIterator
!     __unique_copy(_InputIterator __first, _InputIterator __last,
! 		  _ForwardIterator __result, _BinaryPredicate __binary_pred,
! 		  input_iterator_tag, forward_iterator_tag)
      {
        *__result = *__first;
        while (++__first != __last)
--- 964,977 ----
        return ++__result;
      }
  
!   // Implementation of std::unique_copy for non-forward iterators,
!   // where we can compare with the last element written to the output.
    template<typename _InputIterator, typename _ForwardIterator,
  	   typename _BinaryPredicate>
      _ForwardIterator
!     __unique_copy_1(_InputIterator __first, _InputIterator __last,
! 		    _ForwardIterator __result, _BinaryPredicate __binary_pred,
! 		    __true_type)
      {
        *__result = *__first;
        while (++__first != __last)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 992,997 ****
--- 980,1010 ----
        return ++__result;
      }
  
+   // Implementation of std::unique_copy for non-forward iterators.
+   // We cannot compare *i to *(i-1) so we need to either make a copy
+   // or compare with the last element written to the output range.
+   template<typename _InputIterator, typename _OutputIterator,
+ 	   typename _BinaryPredicate>
+     _GLIBCXX20_CONSTEXPR
+     _OutputIterator
+     __unique_copy(_InputIterator __first, _InputIterator __last,
+ 		  _OutputIterator __result, _BinaryPredicate __binary_pred,
+ 		  input_iterator_tag)
+     {
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // 2439. unique_copy() sometimes can't fall back to reading its output
+       typedef iterator_traits<_InputIterator> _InItTraits;
+       typedef iterator_traits<_OutputIterator> _OutItTraits;
+       typedef typename _OutItTraits::iterator_category _Cat;
+       const bool __output_is_fwd = __is_base_of(forward_iterator_tag, _Cat);
+       const bool __same_type = __is_same(typename _OutItTraits::value_type,
+ 					 typename _InItTraits::value_type);
+       typedef __truth_type<__output_is_fwd && __same_type> __cmp_with_output;
+       return std::__unique_copy_1(__first, __last, __result, __binary_pred,
+ 				  typename __cmp_with_output::__type());
+     }
+ 
+ 
    /**
     *  This is an uglified reverse(_BidirectionalIterator,
     *                              _BidirectionalIterator)
*************** _GLIBCXX_BEGIN_NAMESPACE_ALGO
*** 4456,4463 ****
  	return __result;
        return std::__unique_copy(__first, __last, __result,
  				__gnu_cxx::__ops::__iter_equal_to_iter(),
! 				std::__iterator_category(__first),
! 				std::__iterator_category(__result));
      }
  
    /**
--- 4469,4475 ----
  	return __result;
        return std::__unique_copy(__first, __last, __result,
  				__gnu_cxx::__ops::__iter_equal_to_iter(),
! 				std::__iterator_category(__first));
      }
  
    /**
*************** _GLIBCXX_BEGIN_NAMESPACE_ALGO
*** 4499,4506 ****
  	return __result;
        return std::__unique_copy(__first, __last, __result,
  			__gnu_cxx::__ops::__iter_comp_iter(__binary_pred),
! 				std::__iterator_category(__first),
! 				std::__iterator_category(__result));
      }
  
  #if __cplusplus <= 201103L || _GLIBCXX_USE_DEPRECATED
--- 4511,4517 ----
  	return __result;
        return std::__unique_copy(__first, __last, __result,
  			__gnu_cxx::__ops::__iter_comp_iter(__binary_pred),
! 				std::__iterator_category(__first));
      }
  
  #if __cplusplus <= 201103L || _GLIBCXX_USE_DEPRECATED
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/stl_deque.h gcc-16-20250608/libstdc++-v3/include/bits/stl_deque.h
*** gcc-16-20250601/libstdc++-v3/include/bits/stl_deque.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/stl_deque.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 1331,1337 ****
        {
  	size_type __sz = this->_M_impl._M_finish - this->_M_impl._M_start;
  	if (__sz > max_size ())
! 	  __builtin_unreachable ();
  	return __sz;
        }
  
--- 1331,1337 ----
        {
  	size_type __sz = this->_M_impl._M_finish - this->_M_impl._M_start;
  	if (__sz > max_size ())
! 	  __builtin_unreachable();
  	return __sz;
        }
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/stl_vector.h gcc-16-20250608/libstdc++-v3/include/bits/stl_vector.h
*** gcc-16-20250601/libstdc++-v3/include/bits/stl_vector.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/stl_vector.h	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 372,379 ****
        _GLIBCXX20_CONSTEXPR
        ~_Vector_base() _GLIBCXX_NOEXCEPT
        {
! 	_M_deallocate(_M_impl._M_start,
! 		      _M_impl._M_end_of_storage - _M_impl._M_start);
        }
  
      public:
--- 372,381 ----
        _GLIBCXX20_CONSTEXPR
        ~_Vector_base() _GLIBCXX_NOEXCEPT
        {
! 	ptrdiff_t __n = _M_impl._M_end_of_storage - _M_impl._M_start;
! 	if (__n < 0)
! 	  __builtin_unreachable();
! 	_M_deallocate(_M_impl._M_start, size_t(__n));
        }
  
      public:
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 1106,1112 ****
        {
  	ptrdiff_t __dif = this->_M_impl._M_finish - this->_M_impl._M_start;
  	if (__dif < 0)
! 	   __builtin_unreachable ();
  	return size_type(__dif);
        }
  
--- 1108,1114 ----
        {
  	ptrdiff_t __dif = this->_M_impl._M_finish - this->_M_impl._M_start;
  	if (__dif < 0)
! 	   __builtin_unreachable();
  	return size_type(__dif);
        }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 1198,1204 ****
  	ptrdiff_t __dif = this->_M_impl._M_end_of_storage
  			  - this->_M_impl._M_start;
  	if (__dif < 0)
! 	   __builtin_unreachable ();
  	return size_type(__dif);
        }
  
--- 1200,1206 ----
  	ptrdiff_t __dif = this->_M_impl._M_end_of_storage
  			  - this->_M_impl._M_start;
  	if (__dif < 0)
! 	   __builtin_unreachable();
  	return size_type(__dif);
        }
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/vector.tcc gcc-16-20250608/libstdc++-v3/include/bits/vector.tcc
*** gcc-16-20250601/libstdc++-v3/include/bits/vector.tcc	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/vector.tcc	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 466,472 ****
      {
        const size_type __len = _M_check_len(1u, "vector::_M_realloc_insert");
        if (__len <= 0)
! 	__builtin_unreachable ();
        pointer __old_start = this->_M_impl._M_start;
        pointer __old_finish = this->_M_impl._M_finish;
        const size_type __elems_before = __position - begin();
--- 466,472 ----
      {
        const size_type __len = _M_check_len(1u, "vector::_M_realloc_insert");
        if (__len <= 0)
! 	__builtin_unreachable();
        pointer __old_start = this->_M_impl._M_start;
        pointer __old_finish = this->_M_impl._M_finish;
        const size_type __elems_before = __position - begin();
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 573,582 ****
      {
        const size_type __len = _M_check_len(1u, "vector::_M_realloc_append");
        if (__len <= 0)
! 	__builtin_unreachable ();
        pointer __old_start = this->_M_impl._M_start;
        pointer __old_finish = this->_M_impl._M_finish;
!       const size_type __elems = end() - begin();
        pointer __new_start(this->_M_allocate(__len));
        pointer __new_finish(__new_start);
  
--- 573,582 ----
      {
        const size_type __len = _M_check_len(1u, "vector::_M_realloc_append");
        if (__len <= 0)
! 	__builtin_unreachable();
        pointer __old_start = this->_M_impl._M_start;
        pointer __old_finish = this->_M_impl._M_finish;
!       const size_type __elems = size();
        pointer __new_start(this->_M_allocate(__len));
        pointer __new_finish(__new_start);
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/version.def gcc-16-20250608/libstdc++-v3/include/bits/version.def
*** gcc-16-20250601/libstdc++-v3/include/bits/version.def	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/version.def	Sun Jun  8 22:32:47 2025
*************** ftms = {
*** 1661,1666 ****
--- 1661,1674 ----
  };
  
  ftms = {
+   name = ranges_starts_ends_with;
+   values = {
+     v = 202106;
+     cxxmin = 23;
+   };
+ };
+ 
+ ftms = {
    name = constexpr_bitset;
    values = {
      v = 202202;
*************** ftms = {
*** 1974,1979 ****
--- 1982,1996 ----
    values = {
      v = 202502;
      cxxmin = 26;
+     hosted = yes;
+   };
+ };
+ 
+ ftms = {
+   name = polymorphic;
+   values = {
+     v = 202502;
+     cxxmin = 26;
      hosted = yes;
    };
  };
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/bits/version.h gcc-16-20250608/libstdc++-v3/include/bits/version.h
*** gcc-16-20250601/libstdc++-v3/include/bits/version.h	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/bits/version.h	Sun Jun  8 22:32:47 2025
***************
*** 1848,1853 ****
--- 1848,1863 ----
  #endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */
  #undef __glibcxx_want_ranges_find_last
  
+ #if !defined(__cpp_lib_ranges_starts_ends_with)
+ # if (__cplusplus >= 202100L)
+ #  define __glibcxx_ranges_starts_ends_with 202106L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_starts_ends_with)
+ #   define __cpp_lib_ranges_starts_ends_with 202106L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_ranges_starts_ends_with) && defined(__glibcxx_want_ranges_starts_ends_with) */
+ #undef __glibcxx_want_ranges_starts_ends_with
+ 
  #if !defined(__cpp_lib_constexpr_bitset)
  # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
  #  define __glibcxx_constexpr_bitset 202202L
***************
*** 2213,2216 ****
--- 2223,2236 ----
  #endif /* !defined(__cpp_lib_indirect) && defined(__glibcxx_want_indirect) */
  #undef __glibcxx_want_indirect
  
+ #if !defined(__cpp_lib_polymorphic)
+ # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
+ #  define __glibcxx_polymorphic 202502L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic)
+ #   define __cpp_lib_polymorphic 202502L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_polymorphic) && defined(__glibcxx_want_polymorphic) */
+ #undef __glibcxx_want_polymorphic
+ 
  #undef __glibcxx_want_all
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/algorithm gcc-16-20250608/libstdc++-v3/include/std/algorithm
*** gcc-16-20250601/libstdc++-v3/include/std/algorithm	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/algorithm	Sun Jun  8 22:32:47 2025
***************
*** 74,79 ****
--- 74,80 ----
  #define __glibcxx_want_ranges_contains
  #define __glibcxx_want_ranges_find_last
  #define __glibcxx_want_ranges_fold
+ #define __glibcxx_want_ranges_starts_ends_with
  #define __glibcxx_want_robust_nonmodifying_seq_ops
  #define __glibcxx_want_sample
  #define __glibcxx_want_shift
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/bit gcc-16-20250608/libstdc++-v3/include/std/bit
*** gcc-16-20250601/libstdc++-v3/include/std/bit	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/bit	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 166,172 ****
  	  // Variant for power of two _Nd which the compiler can
  	  // easily pattern match.
  	  constexpr unsigned __uNd = _Nd;
! 	  const unsigned __r = __s;
  	  return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd));
  	}
        const int __r = __s % _Nd;
--- 166,172 ----
  	  // Variant for power of two _Nd which the compiler can
  	  // easily pattern match.
  	  constexpr unsigned __uNd = _Nd;
! 	  const auto __r = static_cast<unsigned>(__s);
  	  return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd));
  	}
        const int __r = __s % _Nd;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 188,194 ****
  	  // Variant for power of two _Nd which the compiler can
  	  // easily pattern match.
  	  constexpr unsigned __uNd = _Nd;
! 	  const unsigned __r = __s;
  	  return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd));
  	}
        const int __r = __s % _Nd;
--- 188,194 ----
  	  // Variant for power of two _Nd which the compiler can
  	  // easily pattern match.
  	  constexpr unsigned __uNd = _Nd;
! 	  const auto __r = static_cast<unsigned>(__s);
  	  return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd));
  	}
        const int __r = __s % _Nd;
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/flat_map gcc-16-20250608/libstdc++-v3/include/std/flat_map
*** gcc-16-20250601/libstdc++-v3/include/std/flat_map	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/flat_map	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1148,1161 ****
        // element access
        mapped_type&
        operator[](const key_type& __x)
!       { return operator[]<const key_type>(__x); }
  
        mapped_type&
        operator[](key_type&& __x)
!       { return operator[]<key_type>(std::move(__x)); }
  
        template<typename _Key2>
! 	requires same_as<remove_cvref_t<_Key2>, _Key> || __transparent_comparator<_Compare>
  	mapped_type&
  	operator[](_Key2&& __x)
  	{ return try_emplace(std::forward<_Key2>(__x)).first->second; }
--- 1148,1161 ----
        // element access
        mapped_type&
        operator[](const key_type& __x)
!       { return try_emplace(__x).first->second; }
  
        mapped_type&
        operator[](key_type&& __x)
!       { return try_emplace(std::move(__x)).first->second; }
  
        template<typename _Key2>
! 	requires __transparent_comparator<_Compare>
  	mapped_type&
  	operator[](_Key2&& __x)
  	{ return try_emplace(std::forward<_Key2>(__x)).first->second; }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/format gcc-16-20250608/libstdc++-v3/include/std/format
*** gcc-16-20250601/libstdc++-v3/include/std/format	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/format	Sun Jun  8 22:32:47 2025
*************** namespace __format
*** 2398,2406 ****
  	const size_t __r = __str.size() - __e; // Length of remainder.
  	auto __overwrite = [&](_CharT* __p, size_t) {
  	  // Apply grouping to the digits before the radix or exponent.
! 	  auto __end = std::__add_grouping(__p, __np.thousands_sep(),
  					   __grp.data(), __grp.size(),
! 					   __str.data(), __str.data() + __e);
  	  if (__r) // If there's a fractional part or exponent
  	    {
  	      if (__d != __str.npos)
--- 2398,2413 ----
  	const size_t __r = __str.size() - __e; // Length of remainder.
  	auto __overwrite = [&](_CharT* __p, size_t) {
  	  // Apply grouping to the digits before the radix or exponent.
! 	  int __off = 0;
! 	  if (auto __c = __str.front(); __c == '-' || __c == '+' || __c == ' ')
! 	    {
! 	      *__p = __c;
! 	      __off = 1;
! 	    }
! 	  auto __end = std::__add_grouping(__p + __off, __np.thousands_sep(),
  					   __grp.data(), __grp.size(),
! 					   __str.data() + __off,
! 					   __str.data() + __e);
  	  if (__r) // If there's a fractional part or exponent
  	    {
  	      if (__d != __str.npos)
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/memory gcc-16-20250608/libstdc++-v3/include/std/memory
*** gcc-16-20250601/libstdc++-v3/include/std/memory	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/memory	Sun Jun  8 22:32:47 2025
***************
*** 113,118 ****
--- 113,119 ----
  #define __glibcxx_want_make_unique
  #define __glibcxx_want_out_ptr
  #define __glibcxx_want_parallel_algorithm
+ #define __glibcxx_want_polymorphic
  #define __glibcxx_want_ranges
  #define __glibcxx_want_raw_memory_algorithms
  #define __glibcxx_want_shared_ptr_arrays
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/semaphore gcc-16-20250608/libstdc++-v3/include/std/semaphore
*** gcc-16-20250601/libstdc++-v3/include/std/semaphore	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/semaphore	Sun Jun  8 22:32:47 2025
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 45,57 ****
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   template<ptrdiff_t __least_max_value = __semaphore_base<true>::_S_max>
      class counting_semaphore
      {
        static_assert(__least_max_value >= 0);
  
!       using _Impl = __semaphore_impl<__least_max_value>;
!       _Impl _M_sem;
  
      public:
        constexpr explicit
--- 45,56 ----
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   template<ptrdiff_t __least_max_value = _Semaphore_impl<2>::_S_max>
      class counting_semaphore
      {
        static_assert(__least_max_value >= 0);
  
!       _Semaphore_impl<__least_max_value> _M_sem;
  
      public:
        constexpr explicit
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/stop_token gcc-16-20250608/libstdc++-v3/include/std/stop_token
*** gcc-16-20250601/libstdc++-v3/include/std/stop_token	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/stop_token	Sun Jun  8 22:32:47 2025
***************
*** 34,41 ****
  #define __glibcxx_want_jthread
  #include <bits/version.h>
  
! #if __cplusplus > 201703L
! 
  #include <atomic>
  #include <bits/std_thread.h>
  
--- 34,40 ----
  #define __glibcxx_want_jthread
  #include <bits/version.h>
  
! #ifdef __glibcxx_jthread // C++ >= 20
  #include <atomic>
  #include <bits/std_thread.h>
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 650,655 ****
      stop_callback(stop_token, _Callback) -> stop_callback<_Callback>;
  
  _GLIBCXX_END_NAMESPACE_VERSION
! } // namespace
! #endif // __cplusplus > 201703L
  #endif // _GLIBCXX_STOP_TOKEN
--- 649,654 ----
      stop_callback(stop_token, _Callback) -> stop_callback<_Callback>;
  
  _GLIBCXX_END_NAMESPACE_VERSION
! } // namespace std
! #endif // __glibcxx_jthread
  #endif // _GLIBCXX_STOP_TOKEN
diff -Nrcpad gcc-16-20250601/libstdc++-v3/include/std/type_traits gcc-16-20250608/libstdc++-v3/include/std/type_traits
*** gcc-16-20250601/libstdc++-v3/include/std/type_traits	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/include/std/type_traits	Sun Jun  8 22:32:47 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1039,1044 ****
--- 1039,1051 ----
  
    // Destructible and constructible type properties.
  
+ #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_destructible)
+   /// is_destructible
+   template<typename _Tp>
+     struct is_destructible
+     : public __bool_constant<__is_destructible(_Tp)>
+     { };
+ #else
    // In N3290 is_destructible does not say anything about function
    // types and abstract types, see LWG 2049. This implementation
    // describes function types as non-destructible and all complete
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1090,1096 ****
--- 1097,1111 ----
        static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
  	"template argument must be a complete class or an unbounded array");
      };
+ #endif
  
+ #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_nothrow_destructible)
+   /// is_nothrow_destructible
+   template<typename _Tp>
+     struct is_nothrow_destructible
+     : public __bool_constant<__is_nothrow_destructible(_Tp)>
+     { };
+ #else
    /// @cond undocumented
  
    // is_nothrow_destructible requires that is_destructible is
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1144,1149 ****
--- 1159,1165 ----
        static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
  	"template argument must be a complete class or an unbounded array");
      };
+ #endif
  
    /// @cond undocumented
    template<typename _Tp, typename... _Args>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1451,1456 ****
--- 1467,1479 ----
  	"template argument must be a complete class or an unbounded array");
      };
  
+ #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_trivially_destructible)
+   /// is_trivially_destructible
+   template<typename _Tp>
+     struct is_trivially_destructible
+     : public __bool_constant<__is_trivially_destructible(_Tp)>
+     { };
+ #else
    /// is_trivially_destructible
    template<typename _Tp>
      struct is_trivially_destructible
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1460,1466 ****
        static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
  	"template argument must be a complete class or an unbounded array");
      };
! 
  
    /// has_virtual_destructor
    template<typename _Tp>
--- 1483,1489 ----
        static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
  	"template argument must be a complete class or an unbounded array");
      };
! #endif
  
    /// has_virtual_destructor
    template<typename _Tp>
*************** template <typename _Tp>
*** 3581,3588 ****
--- 3604,3616 ----
    inline constexpr bool is_move_assignable_v
      = __is_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>);
  
+ #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_destructible)
+ template <typename _Tp>
+   inline constexpr bool is_destructible_v = __is_destructible(_Tp);
+ #else
  template <typename _Tp>
    inline constexpr bool is_destructible_v = is_destructible<_Tp>::value;
+ #endif
  
  template <typename _Tp, typename... _Args>
    inline constexpr bool is_trivially_constructible_v
*************** template <typename _Tp>
*** 3609,3615 ****
      = __is_trivially_assignable(__add_lval_ref_t<_Tp>,
  				__add_rval_ref_t<_Tp>);
  
! #if __cpp_concepts
  template <typename _Tp>
    inline constexpr bool is_trivially_destructible_v = false;
  
--- 3637,3647 ----
      = __is_trivially_assignable(__add_lval_ref_t<_Tp>,
  				__add_rval_ref_t<_Tp>);
  
! #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_trivially_destructible)
! template <typename _Tp>
!   inline constexpr bool is_trivially_destructible_v
!     = __is_trivially_destructible(_Tp);
! #elif __cpp_concepts
  template <typename _Tp>
    inline constexpr bool is_trivially_destructible_v = false;
  
*************** template <typename _Tp>
*** 3654,3662 ****
--- 3686,3700 ----
    inline constexpr bool is_nothrow_move_assignable_v
      = __is_nothrow_assignable(__add_lval_ref_t<_Tp>, __add_rval_ref_t<_Tp>);
  
+ #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_nothrow_destructible)
+ template <typename _Tp>
+   inline constexpr bool is_nothrow_destructible_v
+     = __is_nothrow_destructible(_Tp);
+ #else
  template <typename _Tp>
    inline constexpr bool is_nothrow_destructible_v =
      is_nothrow_destructible<_Tp>::value;
+ #endif
  
  template <typename _Tp>
    inline constexpr bool has_virtual_destructor_v
diff -Nrcpad gcc-16-20250601/libstdc++-v3/src/c++20/atomic.cc gcc-16-20250608/libstdc++-v3/src/c++20/atomic.cc
*** gcc-16-20250601/libstdc++-v3/src/c++20/atomic.cc	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/src/c++20/atomic.cc	Sun Jun  8 22:32:47 2025
*************** __cond_wait_until(__condvar& __cv, mutex
*** 397,413 ****
  }
  #endif // ! HAVE_PLATFORM_TIMED_WAIT
  
! // Like __spin_impl, always returns _M_has_val == true.
  __wait_result_type
  __spin_until_impl(const __platform_wait_t* __addr,
  		  const __wait_args_base& __args,
  		  const __wait_clock_t::time_point& __deadline)
  {
-   auto __t0 = __wait_clock_t::now();
    using namespace literals::chrono_literals;
  
!   __platform_wait_t __val{};
!   auto __now = __wait_clock_t::now();
    for (; __now < __deadline; __now = __wait_clock_t::now())
      {
        auto __elapsed = __now - __t0;
--- 397,414 ----
  }
  #endif // ! HAVE_PLATFORM_TIMED_WAIT
  
! // Unlike __spin_impl, does not always return _M_has_val == true.
! // If the deadline has already passed then no fresh value is loaded.
  __wait_result_type
  __spin_until_impl(const __platform_wait_t* __addr,
  		  const __wait_args_base& __args,
  		  const __wait_clock_t::time_point& __deadline)
  {
    using namespace literals::chrono_literals;
  
!   __wait_result_type __res{};
!   auto __t0 = __wait_clock_t::now();
!   auto __now = __t0;
    for (; __now < __deadline; __now = __wait_clock_t::now())
      {
        auto __elapsed = __now - __t0;
*************** __spin_until_impl(const __platform_wait_
*** 422,437 ****
  	__thread_yield();
        else
  	{
! 	  auto __res = __detail::__spin_impl(__addr, __args);
  	  if (!__res._M_timeout)
  	    return __res;
  	}
  
!       __atomic_load(__addr, &__val, __args._M_order);
!       if (__val != __args._M_old)
! 	return { ._M_val = __val, ._M_has_val = true, ._M_timeout = false };
      }
!   return { ._M_val = __val, ._M_has_val = true, ._M_timeout = true };
  }
  } // namespace
  
--- 423,443 ----
  	__thread_yield();
        else
  	{
! 	  __res = __detail::__spin_impl(__addr, __args);
  	  if (!__res._M_timeout)
  	    return __res;
  	}
  
!       __atomic_load(__addr, &__res._M_val, __args._M_order);
!       __res._M_has_val = true;
!       if (__res._M_val != __args._M_old)
! 	{
! 	  __res._M_timeout = false;
! 	  return __res;
! 	}
      }
!   __res._M_timeout = true;
!   return __res;
  }
  } // namespace
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/src/c++23/std.cc.in gcc-16-20250608/libstdc++-v3/src/c++23/std.cc.in
*** gcc-16-20250601/libstdc++-v3/src/c++23/std.cc.in	Sun Jun  1 22:32:41 2025
--- gcc-16-20250608/libstdc++-v3/src/c++23/std.cc.in	Sun Jun  8 22:32:47 2025
*************** export namespace std
*** 507,517 ****
      using ranges::find_last_if;
      using ranges::find_last_if_not;
  #endif
    }
  }
  
  // 22.7.2 <any>
- #if __cpp_lib_any
  export namespace std
  {
    using std::any;
--- 507,520 ----
      using ranges::find_last_if;
      using ranges::find_last_if_not;
  #endif
+ #if __cpp_lib_ranges_starts_ends_with
+     using ranges::starts_with;
+     using ranges::ends_with;
+ #endif
    }
  }
  
  // 22.7.2 <any>
  export namespace std
  {
    using std::any;
*************** export namespace std
*** 520,526 ****
    using std::make_any;
    using std::swap;
  }
- #endif
  
  // 24.3.2 <array>
  export namespace std
--- 523,528 ----
*************** export namespace std
*** 698,704 ****
  }
  
  // 29.2 <chrono>
- #if __cpp_lib_chrono
  export namespace std
  {
    namespace chrono
--- 700,705 ----
*************** export namespace std::inline literals::i
*** 852,858 ****
  export namespace std::chrono {
    using namespace literals::chrono_literals;
  }
- #endif // __cpp_lib_chrono
  
  // <codecvt>: deprecated C++17, removed C++26
  export namespace std
--- 853,858 ----
*************** export namespace std
*** 864,870 ****
  }
  
  // 17.11.1 <compare>
- #if __cpp_lib_three_way_comparison
  export namespace std
  {
    using std::common_comparison_category;
--- 864,869 ----
*************** export namespace std
*** 890,896 ****
    using std::strong_order;
    using std::weak_order;
  }
- #endif // __cpp_lib_three_way_comparison
  
  // 28.4 <complex>
  export namespace std
--- 889,894 ----
*************** export namespace std::inline literals::i
*** 944,950 ****
  }
  
  // 18 <concepts>
- #if __cpp_lib_concepts
  export namespace std
  {
    using std::assignable_from;
--- 942,947 ----
*************** export namespace std
*** 983,989 ****
    using std::totally_ordered;
    using std::totally_ordered_with;
  }
- #endif
  
  // 33.7 <condition_variable>
  export namespace std
--- 980,985 ----
*************** export namespace std
*** 1960,1965 ****
--- 1956,1969 ----
    using std::out_ptr;
    using std::inout_ptr;
  #endif
+ #if __cpp_lib_indirect
+   using std::indirect;
+   namespace pmr { using std::pmr::indirect; }
+ #endif
+ #if __cpp_lib_polymorphic
+   using std::polymorphic;
+   namespace pmr { using std::pmr::polymorphic; }
+ #endif
  }
  
  // 20.4 <memory_resource>
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/copyable_function/call.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/copyable_function/call.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/copyable_function/call.cc	Sun Jun  1 22:32:42 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/copyable_function/call.cc	Sun Jun  8 22:32:48 2025
*************** test05()
*** 204,216 ****
  }
  
  struct Incomplete;
  
  void
  test_params()
  {
!   std::copyable_function<void(Incomplete)> f1;
!   std::copyable_function<void(Incomplete&)> f2;
!   std::copyable_function<void(Incomplete&&)> f3;
  }
  
  int main()
--- 204,217 ----
  }
  
  struct Incomplete;
+ enum CompleteEnum : int;
  
  void
  test_params()
  {
!   std::copyable_function<void(Incomplete&)> f1;
!   std::copyable_function<void(Incomplete&&)> f2;
!   std::copyable_function<void(CompleteEnum)> f4;
  }
  
  int main()
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/copyable_function/conv.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/copyable_function/conv.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/copyable_function/conv.cc	Sun Jun  1 22:32:42 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/copyable_function/conv.cc	Sun Jun  8 22:32:48 2025
***************
*** 2,7 ****
--- 2,8 ----
  // { dg-require-effective-target hosted }
  
  #include <functional>
+ #include <string_view>
  #include <testsuite_hooks.h>
  
  using std::copyable_function;
*************** static_assert( !std::is_constructible_v<
*** 15,20 ****
--- 16,36 ----
  static_assert( !std::is_constructible_v<std::copyable_function<void() const>,
  					std::copyable_function<void()>> );
  
+ using FuncType = int(int);
+ 
+ // Top level const qualifiers are ignored and decay is performed in parameters
+ // of function_types.
+ static_assert( std::is_same_v<std::copyable_function<void(int const)>,
+ 			      std::copyable_function<void(int)>> );
+ static_assert( std::is_same_v<std::copyable_function<void(int[2])>,
+ 			      std::copyable_function<void(int*)>>);
+ static_assert( std::is_same_v<std::copyable_function<void(int[])>,
+ 			      std::copyable_function<void(int*)>>);
+ static_assert( std::is_same_v<std::copyable_function<void(int const[5])>,
+ 			      std::copyable_function<void(int const*)>>);
+ static_assert( std::is_same_v<std::copyable_function<void(FuncType)>,
+ 			      std::copyable_function<void(FuncType*)>>);
+ 
  // Non-trivial args, guarantess that type is not passed by copy
  struct CountedArg
  {
*************** test06()
*** 240,245 ****
--- 256,279 ----
    VERIFY( f2(c) == 2 );
  }
  
+ void
+ test07()
+ {
+   // Scalar types and small trivially move constructible types are passed
+   // by value to invoker. So int&& signature is not compatible for such types.
+   auto fi = [](CountedArg const& arg, int) noexcept { return arg.counter; };
+   std::copyable_function<int(CountedArg, int) const noexcept> ci1(fi);
+   VERIFY( ci1(c, 0) == 1 );
+   std::copyable_function<int(CountedArg, int&&) const noexcept> ci2(ci1);
+   VERIFY( ci2(c, 0) == 2 );
+ 
+   auto fs = [](CountedArg const& arg, std::string_view) noexcept { return arg.counter; };
+   std::copyable_function<int(CountedArg, std::string_view) const noexcept> cs1(fs);
+   VERIFY( cs1(c, "") == 1 );
+   std::copyable_function<int(CountedArg, std::string_view&&) const noexcept> cs2(cs1);
+   VERIFY( cs2(c, "") == 2 );
+ }
+ 
  int main()
  {
    test01();
*************** int main()
*** 248,251 ****
--- 282,286 ----
    test04();
    test05();
    test06();
+   test07();
  }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/copyable_function/incomplete_neg.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/copyable_function/incomplete_neg.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/copyable_function/incomplete_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/copyable_function/incomplete_neg.cc	Sun Jun  8 22:32:48 2025
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <functional>
+ 
+ struct IncompleteClass;
+ 
+ using T1 = std::copyable_function<int(IncompleteClass)>::result_type; // { dg-error "here" }
+ using T2 = std::copyable_function<int(int, IncompleteClass)>::result_type; // { dg-error "here" }
+ 
+ enum Enum {
+   x = [] {
+     // Enum enumeration is incomplete here
+     using T3 = std::copyable_function<int(Enum)>::result_type; // { dg-error "here" }
+     return T3(1);
+   }()
+ };
+ 
+ // { dg-error "static assertion failed" "" { target *-*-* } 0 }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/function_ref/call.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/function_ref/call.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/function_ref/call.cc	Sun Jun  1 22:32:42 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/function_ref/call.cc	Sun Jun  8 22:32:48 2025
*************** test05()
*** 164,179 ****
  }
  
  struct Incomplete;
  
  void
  test_params()
  {
    auto f = [](auto&&) {};
!   // There is discussion if this is supported.
!   // std::function_ref<void(Incomplete)> f1(f);
!   std::function_ref<void(Incomplete&)> f2(f);
!   // See PR120259, this should be supported.
!   // std::function_ref<void(Incomplete&&)> f3(f);
  }
  
  int main()
--- 164,179 ----
  }
  
  struct Incomplete;
+ enum CompleteEnum : int;
  
  void
  test_params()
  {
    auto f = [](auto&&) {};
!   std::function_ref<void(Incomplete&)> f1(f);
!   // See PR libstdc++/120259, this should be supported.
!   // std::function_ref<void(Incomplete&&)> f2(f);
!   std::function_ref<void(CompleteEnum)> f3(f);
  }
  
  int main()
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/function_ref/conv.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/function_ref/conv.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/function_ref/conv.cc	Sun Jun  1 22:32:42 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/function_ref/conv.cc	Sun Jun  8 22:32:48 2025
***************
*** 2,7 ****
--- 2,8 ----
  // { dg-require-effective-target hosted }
  
  #include <functional>
+ #include <string_view>
  #include <testsuite_hooks.h>
  
  using std::function_ref;
*************** struct CountedArg
*** 20,25 ****
--- 21,41 ----
  };
  CountedArg const c;
  
+ using FuncType = int(int);
+ 
+ // Top level const qualifiers are ignored in function types, and decay
+ // is performed.
+ static_assert( std::is_same_v<std::function_ref<void(int const)>,
+ 			      std::function_ref<void(int)>> );
+ static_assert( std::is_same_v<std::function_ref<void(int[2])>,
+ 			      std::function_ref<void(int*)>>);
+ static_assert( std::is_same_v<std::function_ref<void(int[])>,
+ 			      std::function_ref<void(int*)>>);
+ static_assert( std::is_same_v<std::function_ref<void(int const[5])>,
+ 			      std::function_ref<void(int const*)>>);
+ static_assert( std::is_same_v<std::function_ref<void(FuncType)>,
+ 			      std::function_ref<void(FuncType*)>>);
+ 
  // The C++26 [func.wrap.general] p2 does not currently cover funciton_ref,
  // so we make extra copies of arguments.
  
*************** test08()
*** 244,249 ****
--- 260,282 ----
    return true;
  };
  
+ void
+ test09()
+ {
+   // Scalar types and small trivially move constructible types are passed
+   // by value to invoker. So int&& signature is not compatible for such types.
+   auto fi = [](CountedArg const& arg, int) noexcept { return arg.counter; };
+   std::function_ref<int(CountedArg, int) const noexcept> ri1(fi);
+   VERIFY( ri1(c, 0) == 1 );
+   std::function_ref<int(CountedArg, int&&) const noexcept> ri2(ri1);
+   VERIFY( ri2(c, 0) == 2 );
+ 
+   auto fs = [](CountedArg const& arg, std::string_view) noexcept { return arg.counter; };
+   std::function_ref<int(CountedArg, std::string_view) const noexcept> rs1(fs);
+   VERIFY( rs1(c, "") == 1 );
+   std::function_ref<int(CountedArg, std::string_view&&) const noexcept> rs2(rs1);
+   VERIFY( rs2(c, "") == 2 );
+ }
  
  int main()
  {
*************** int main()
*** 254,259 ****
--- 287,293 ----
    test05();
    test06();
    test07();
+   test09();
  
    static_assert( test08() );
  }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc	Sun Jun  8 22:32:48 2025
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <functional>
+ 
+ struct IncompleteClass;
+ 
+ int a1 = alignof(std::function_ref<int(IncompleteClass)>); // { dg-error "here" }
+ int a2 = alignof(std::function_ref<int(int, IncompleteClass)>); // { dg-error "here" }
+ 
+ enum Enum {
+   x = [] {
+     // Enum enumeration is incomplete here
+     int a3 = alignof(std::function_ref<int(Enum)>); // { dg-error "here" }
+     return 1;
+   }()
+ };
+ 
+ // { dg-error "static assertion failed" "" { target *-*-* } 0 }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/move_only_function/call.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/move_only_function/call.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/move_only_function/call.cc	Sun Jun  1 22:32:42 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/move_only_function/call.cc	Sun Jun  8 22:32:48 2025
*************** test05()
*** 204,216 ****
  }
  
  struct Incomplete;
  
  void
  test_params()
  {
!   std::move_only_function<void(Incomplete)> f1;
!   std::move_only_function<void(Incomplete&)> f2;
!   std::move_only_function<void(Incomplete&&)> f3;
  }
  
  int main()
--- 204,217 ----
  }
  
  struct Incomplete;
+ enum CompleteEnum : int;
  
  void
  test_params()
  {
!   std::move_only_function<void(Incomplete&)> f1;
!   std::move_only_function<void(Incomplete&&)> f2;
!   std::move_only_function<void(CompleteEnum)> f4;
  }
  
  int main()
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/move_only_function/conv.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/move_only_function/conv.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/move_only_function/conv.cc	Sun Jun  1 22:32:42 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/move_only_function/conv.cc	Sun Jun  8 22:32:48 2025
***************
*** 2,7 ****
--- 2,8 ----
  // { dg-require-effective-target hosted }
  
  #include <functional>
+ #include <string_view>
  #include <testsuite_hooks.h>
  
  using std::move_only_function;
*************** static_assert( !std::is_constructible_v<
*** 15,20 ****
--- 16,36 ----
  static_assert( !std::is_constructible_v<std::move_only_function<void() const>,
  					std::move_only_function<void()>> );
  
+ using FuncType = int(int);
+ 
+ // Top level const qualifiers are ignored in function types, and decay
+ // is performed.
+ static_assert( std::is_same_v<std::move_only_function<void(int const)>,
+ 			      std::move_only_function<void(int)>> );
+ static_assert( std::is_same_v<std::move_only_function<void(int[2])>,
+ 			      std::move_only_function<void(int*)>>);
+ static_assert( std::is_same_v<std::move_only_function<void(int[])>,
+ 			      std::move_only_function<void(int*)>>);
+ static_assert( std::is_same_v<std::move_only_function<void(int const[5])>,
+ 			      std::move_only_function<void(int const*)>>);
+ static_assert( std::is_same_v<std::move_only_function<void(FuncType)>,
+ 			      std::move_only_function<void(FuncType*)>>);
+ 
  // Non-trivial args, guarantess that type is not passed by copy
  struct CountedArg
  {
*************** test06()
*** 177,182 ****
--- 193,216 ----
    VERIFY( m1(c) == 2 );
  }
  
+ void
+ test07()
+ {
+   // Scalar types and small trivially move constructible types are passed
+   // by value to invoker. So int&& signature is not compatible for such types.
+   auto fi = [](CountedArg const& arg, int) noexcept { return arg.counter; };
+   std::move_only_function<int(CountedArg, int) const noexcept> mi1(fi);
+   VERIFY( mi1(c, 0) == 1 );
+   std::move_only_function<int(CountedArg, int&&) const noexcept> mi2(std::move(mi1));
+   VERIFY( mi2(c, 0) == 2 );
+ 
+   auto fs = [](CountedArg const& arg, std::string_view) noexcept { return arg.counter; };
+   std::move_only_function<int(CountedArg, std::string_view) const noexcept> ms1(fs);
+   VERIFY( ms1(c, "") == 1 );
+   std::move_only_function<int(CountedArg, std::string_view&&) const noexcept> ms2(std::move(ms1));
+   VERIFY( ms2(c, "") == 2 );
+ }
+ 
  int main()
  {
    test01();
*************** int main()
*** 185,188 ****
--- 219,223 ----
    test04();
    test05();
    test06();
+   test07();
  }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/move_only_function/incomplete_neg.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/move_only_function/incomplete_neg.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/move_only_function/incomplete_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/move_only_function/incomplete_neg.cc	Sun Jun  8 22:32:48 2025
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile { target c++23 } }
+ 
+ #include <functional>
+ 
+ struct IncompleteClass;
+ 
+ using T1 = std::move_only_function<int(IncompleteClass)>::result_type; // { dg-error "here" }
+ using T2 = std::move_only_function<int(int, IncompleteClass)>::result_type; // { dg-error "here" }
+ 
+ enum Enum {
+   x = [] {
+     // Enum enumeration is incomplete here
+     using T3 = std::move_only_function<int(Enum)>::result_type; // { dg-error "here" }
+     return T3(1);
+   }()
+ };
+ 
+ // { dg-error "static assertion failed" "" { target *-*-* } 0 }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/20_util/system_clock/99832.cc gcc-16-20250608/libstdc++-v3/testsuite/20_util/system_clock/99832.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/20_util/system_clock/99832.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/20_util/system_clock/99832.cc	Sun Jun  8 22:32:48 2025
***************
*** 0 ****
--- 1,14 ----
+ // { dg-options "-O0 -g0" }
+ // { dg-do compile { target c++20 } }
+ // { dg-final { scan-assembler-not "system_clock9to_time_t" } }
+ 
+ // Bug libstdc++/99832
+ // std::chrono::system_clock::to_time_t needs ABI tag for 32-bit time_t
+ 
+ #include <chrono>
+ 
+ std::time_t
+ test_pr99832(std::chrono::system_clock::time_point t)
+ {
+   return std::chrono::system_clock::to_time_t(t);
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/23_containers/flat_map/1.cc gcc-16-20250608/libstdc++-v3/testsuite/23_containers/flat_map/1.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/23_containers/flat_map/1.cc	Sun Jun  1 22:32:43 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/23_containers/flat_map/1.cc	Sun Jun  8 22:32:49 2025
*************** test07()
*** 254,259 ****
--- 254,268 ----
    VERIFY( std::ranges::equal(m, (std::pair<int,int>[]){{3,4}}) );
  }
  
+ void
+ test08()
+ {
+   // PR libstdc++/120432 - flat_map operator[] is broken for const lvalue keys
+   std::flat_map<int, int> m;
+   const int k = 42;
+   m[k] = 0;
+ }
+ 
  int
  main()
  {
*************** main()
*** 267,270 ****
--- 276,280 ----
    test05();
    test06();
    test07();
+   test08();
  }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc gcc-16-20250608/libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc	Sun Jun  8 22:32:50 2025
***************
*** 0 ****
--- 1,165 ----
+ // { dg-do run { target c++23 } }
+ 
+ #include <algorithm>
+ #include <ranges>
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_iterators.h>
+ 
+ namespace ranges = std::ranges;
+ 
+ template<typename Range1, typename Range2>
+ void
+ test01()
+ {
+   int n[] = {1,2,3,4,5,6,7,8,9,10};
+ 
+   Range1 haystack(n, n+10);
+   Range2 needle(n+7, n+10);
+   VERIFY( ranges::ends_with(haystack, needle) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n, n+10);
+   VERIFY( ranges::ends_with(haystack, needle) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( !ranges::ends_with(haystack, needle) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( ranges::ends_with(haystack, needle,
+ 			    [](int n, int m) { return std::abs(n - m) <= 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( ranges::ends_with(haystack, needle,
+ 			    ranges::equal_to{},
+ 			    [](int n) { return n - 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( ranges::ends_with(haystack, needle,
+ 			    ranges::equal_to{},
+ 			    std::identity{},
+ 			    [](int n) { return n + 1; }) );
+ 
+   haystack = Range1(n, n+5);
+   needle = Range2(n, n+10);
+   VERIFY( !ranges::ends_with(haystack, needle) );
+ }
+ 
+ template<typename Range1, typename Range2>
+ void
+ test02()
+ {
+   int n[] = {1,2,3,4,5,6,7,8,9,10};
+ 
+   Range1 haystack(n, n+10);
+   Range2 needle(n+7, n+10);
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n, n+10);
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( !ranges::ends_with(haystack.begin(), haystack.end(),
+ 			     needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle.begin(), needle.end(),
+ 			    [](int n, int m) { return std::abs(n - m) <= 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle.begin(), needle.end(),
+ 			    ranges::equal_to{},
+ 			    [](int n) { return n - 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+6, n+9);
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle.begin(), needle.end(),
+ 			    ranges::equal_to{},
+ 			    std::identity{},
+ 			    [](int n) { return n + 1; }) );
+ 
+   haystack = Range1(n, n+5);
+   needle = Range2(n, n+10);
+   VERIFY( !ranges::ends_with(haystack.begin(), haystack.end(),
+ 			     needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n, n+5);
+   needle = Range2(n+10, n+10);
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle.begin(), needle.end()) );
+ }
+ 
+ void
+ test03()
+ {
+   auto haystack = std::views::iota(0, 10);
+   auto needle = std::views::iota(5, 10);
+ 
+ #if __SIZEOF_INT128__
+   auto haystack_ict = std::views::iota(__int128(0), __int128(10));
+   auto needle_ict = std::views::iota(__int128(5), __int128(10));
+ #else
+   auto haystack_ict = std::views::iota(0ll, 10ll);
+   auto needle_ict = std::views::iota(5ll, 10ll);
+ #endif
+ 
+   VERIFY( ranges::ends_with(haystack, needle_ict) );
+   VERIFY( ranges::ends_with(haystack.begin(), haystack.end(),
+ 			    needle_ict.begin(), needle_ict.end()) );
+ 
+   VERIFY( ranges::ends_with(haystack_ict, needle) );
+   VERIFY( ranges::ends_with(haystack_ict.begin(), haystack_ict.end(),
+ 			    needle.begin(), needle.end()) );
+ 
+   VERIFY( ranges::ends_with(haystack_ict, needle_ict) );
+   VERIFY( ranges::ends_with(haystack_ict.begin(), haystack_ict.end(),
+ 			    needle_ict.begin(), needle_ict.end()) );
+ }
+ 
+ int
+ main()
+ {
+   using namespace __gnu_test;
+   using forward = test_forward_range<int>;
+   using bidirectional_common = bidirectional_container<int>;
+   using input_sized = test_input_sized_range<int>;
+   using input_sized_sent = test_sized_range_sized_sent<int, input_iterator_wrapper>;
+   using random_access = test_random_access_range<int>;
+   using random_access_sized = test_random_access_sized_range<int>;
+   using random_access_sized_sent = test_sized_range_sized_sent<int, random_access_iterator_wrapper>;
+ 
+   test01<forward, forward>();
+   test01<random_access, random_access>();
+   test02<forward, forward>();
+   test02<random_access, random_access>();
+ 
+   test01<bidirectional_common, bidirectional_common>();
+   test02<bidirectional_common, bidirectional_common>();
+   test01<bidirectional_common, forward>();
+   test02<bidirectional_common, forward>();
+ 
+   test01<input_sized, input_sized>();
+   test01<random_access_sized, random_access_sized>();
+   // test02<input_sized, input_sized>(); constraint violation
+   test02<random_access_sized, random_access_sized>();
+ 
+   test01<input_sized_sent, input_sized_sent>();
+   test01<random_access_sized_sent, random_access_sized_sent>();
+   test02<input_sized_sent, input_sized_sent>();
+   test02<random_access_sized_sent, random_access_sized_sent>();
+ 
+   test03();
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/25_algorithms/starts_with/1.cc gcc-16-20250608/libstdc++-v3/testsuite/25_algorithms/starts_with/1.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/25_algorithms/starts_with/1.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/25_algorithms/starts_with/1.cc	Sun Jun  8 22:32:50 2025
***************
*** 0 ****
--- 1,158 ----
+ // { dg-do run { target c++23 } }
+ 
+ #include <algorithm>
+ #include <ranges>
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_iterators.h>
+ 
+ namespace ranges = std::ranges;
+ 
+ template<typename Range1, typename Range2>
+ void
+ test01()
+ {
+   int n[] = {1,2,3,4,5,6,7,8,9,10};
+ 
+   Range1 haystack(n, n+10);
+   Range2 needle(n, n+3);
+   VERIFY( ranges::starts_with(haystack, needle) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n, n+10);
+   VERIFY( ranges::starts_with(haystack, needle) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( !ranges::starts_with(haystack, needle) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( ranges::starts_with(haystack, needle,
+ 			      [](int n, int m) { return std::abs(n - m) <= 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( ranges::starts_with(haystack, needle,
+ 			      ranges::equal_to{},
+ 			      [](int n) { return n + 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( ranges::starts_with(haystack, needle,
+ 			      ranges::equal_to{},
+ 			      std::identity{},
+ 			      [](int n) { return n - 1; }) );
+ 
+   haystack = Range1(n, n+5);
+   needle = Range2(n, n+10);
+   VERIFY( !ranges::starts_with(haystack, needle) );
+ 
+   haystack = Range1(n, n+5);
+   needle = Range2(n+10, n+10);
+   VERIFY( ranges::starts_with(haystack, needle) );
+ }
+ 
+ template<typename Range1, typename Range2>
+ void
+ test02()
+ {
+   int n[] = {1,2,3,4,5,6,7,8,9,10};
+ 
+   Range1 haystack(n, n+10);
+   Range2 needle(n, n+3);
+   VERIFY( ranges::starts_with(haystack.begin(), haystack.end(),
+ 			      needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n, n+10);
+   VERIFY( ranges::starts_with(haystack.begin(), haystack.end(),
+ 			      needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( !ranges::starts_with(haystack.begin(), haystack.end(),
+ 			       needle.begin(), needle.end()) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( ranges::starts_with(haystack.begin(), haystack.end(),
+ 			      needle.begin(), needle.end(),
+ 			      [](int n, int m) { return std::abs(n - m) <= 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( ranges::starts_with(haystack.begin(), haystack.end(),
+ 			      needle.begin(), needle.end(),
+ 			      ranges::equal_to{},
+ 			      [](int n) { return n + 1; }) );
+ 
+   haystack = Range1(n);
+   needle = Range2(n+1, n+4);
+   VERIFY( ranges::starts_with(haystack.begin(), haystack.end(),
+ 			      needle.begin(), needle.end(),
+ 			      ranges::equal_to{},
+ 			      std::identity{},
+ 			      [](int n) { return n - 1; }) );
+ 
+   haystack = Range1(n, n+5);
+   needle = Range2(n, n+10);
+   VERIFY( !ranges::starts_with(haystack.begin(), haystack.end(),
+ 			       needle.begin(), needle.end()) );
+ }
+ 
+ void
+ test03()
+ {
+   auto haystack = std::views::iota(0, 10);
+   auto needle = std::views::iota(0, 5);
+ 
+ #if __SIZEOF_INT128__
+   auto haystack_ict = std::views::iota(__int128(0), __int128(10));
+   auto needle_ict = std::views::iota(__int128(0), __int128(5));
+ #else
+   auto haystack_ict = std::views::iota(0ll, 10ll);
+   auto needle_ict = std::views::iota(0ll, 5ll);
+ #endif
+ 
+   VERIFY( ranges::starts_with(haystack, needle_ict) );
+   VERIFY( ranges::starts_with(haystack.begin(), haystack.end(),
+ 			      needle_ict.begin(), needle_ict.end()) );
+ 
+   VERIFY( ranges::starts_with(haystack_ict, needle) );
+   VERIFY( ranges::starts_with(haystack_ict.begin(), haystack_ict.end(),
+ 			      needle.begin(), needle.end()) );
+ 
+   VERIFY( ranges::starts_with(haystack_ict, needle_ict) );
+   VERIFY( ranges::starts_with(haystack_ict.begin(), haystack_ict.end(),
+ 			      needle_ict.begin(), needle_ict.end()) );
+ }
+ 
+ int
+ main()
+ {
+   using namespace __gnu_test;
+   using input = test_input_range<int>;
+   using input_sized = test_input_sized_range<int>;
+   using input_sized_sent = test_sized_range_sized_sent<int, input_iterator_wrapper>;
+   using random_access = test_random_access_range<int>;
+   using random_access_sized = test_random_access_sized_range<int>;
+   using random_access_sized_sent = test_sized_range_sized_sent<int, random_access_iterator_wrapper>;
+ 
+   test01<input, input>();
+   test01<random_access, random_access>();
+   test02<input, input>();
+   test02<random_access, random_access>();
+ 
+   test01<input_sized, input_sized>();
+   test01<random_access_sized, random_access_sized>();
+   test02<input_sized, input_sized>();
+   test02<random_access_sized, random_access_sized>();
+ 
+   test01<input_sized_sent, input_sized_sent>();
+   test01<random_access_sized_sent, random_access_sized_sent>();
+   test02<input_sized_sent, input_sized_sent>();
+   test02<random_access_sized_sent, random_access_sized_sent>();
+ 
+   test03();
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/25_algorithms/unique_copy/lwg2439.cc gcc-16-20250608/libstdc++-v3/testsuite/25_algorithms/unique_copy/lwg2439.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/25_algorithms/unique_copy/lwg2439.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/25_algorithms/unique_copy/lwg2439.cc	Sun Jun  8 22:32:50 2025
***************
*** 0 ****
--- 1,127 ----
+ // { dg-do run }
+ 
+ #include <algorithm>
+ #include <testsuite_iterators.h>
+ 
+ using namespace __gnu_test;
+ 
+ int out[4];
+ short out_shrt[4];
+ short in[7] = { 1, 2, 2, 2, 3, 4, 4 };
+ 
+ template<typename T>
+ void
+ check_and_reset(T* p)
+ {
+   VERIFY( p[0] == 1 );
+   VERIFY( p[1] == 2 );
+   VERIFY( p[2] == 3 );
+   VERIFY( p[3] == 4 );
+   std::fill_n(p, 4, 0);
+ }
+ 
+ struct Eq
+ {
+   bool operator()(short i, short j) const { return i == j; }
+   bool operator()(short, int) const { VERIFY(false); }
+   bool operator()(int, short) const { VERIFY(false); }
+ };
+ 
+ struct Eq2
+ {
+   bool operator()(const short& i, const short& j) const
+   {
+     // Both arguments should be elements of the 'in' array.
+     VERIFY( in+0 <= &i && &i < in+7 );
+     VERIFY( in+0 <= &j && &j < in+7 );
+     VERIFY( &i < &j );
+     return i == j;
+   }
+   bool operator()(short, int) const { VERIFY(false); }
+   bool operator()(int, short) const { VERIFY(false); }
+ };
+ 
+ struct Eq3
+ {
+   bool operator()(const short& i, const short& j) const
+   {
+     // First argument should be element of the 'out' array.
+     // Second argument should be element of the 'in' array.
+     VERIFY( out_shrt+0 <= &i && &i < out_shrt+4 );
+     VERIFY( in+0 <= &j && &j < in+7 );
+     return i == j;
+   }
+   bool operator()(short, int) const { VERIFY(false); }
+   bool operator()(int, short) const { VERIFY(false); }
+ };
+ 
+ void
+ test_forward_source()
+ {
+   // The input range uses forward iterators
+   test_container<short, forward_iterator_wrapper> inc(in);
+   test_container<int, output_iterator_wrapper> outc(out);
+   std::unique_copy(inc.begin(), inc.end(), outc.begin());
+   check_and_reset(out);
+ 
+   test_container<short, forward_iterator_wrapper> inc2(in);
+   test_container<int, output_iterator_wrapper> outc2(out);
+   std::unique_copy(inc2.begin(), inc2.end(), outc2.begin(), Eq2());
+   check_and_reset(out);
+ }
+ 
+ void
+ test_output_dest()
+ {
+   // The input range uses input iterators.
+   // The output range uses output iterators.
+   test_container<short, input_iterator_wrapper> inc(in);
+   test_container<int, output_iterator_wrapper> outc(out);
+   std::unique_copy(inc.begin(), inc.end(), outc.begin());
+   check_and_reset(out);
+ 
+   test_container<short, input_iterator_wrapper> inc2(in);
+   test_container<int, output_iterator_wrapper> outc2(out);
+   std::unique_copy(inc2.begin(), inc2.end(), outc2.begin(), Eq());
+   check_and_reset(out);
+ }
+ 
+ void
+ test_forward_dest_diff_type()
+ {
+   // The input range uses input iterators.
+   // The output range uses forward iterators, but with different value type.
+   test_container<short, input_iterator_wrapper> inc(in);
+   test_container<int, forward_iterator_wrapper> outc(out);
+   std::unique_copy(inc.begin(), inc.end(), outc.begin());
+   check_and_reset(out);
+ 
+   test_container<short, input_iterator_wrapper> inc2(in);
+   test_container<int, forward_iterator_wrapper> outc2(out);
+   std::unique_copy(inc2.begin(), inc2.end(), outc2.begin(), Eq());
+   check_and_reset(out);
+ }
+ 
+ void
+ test_forward_dest_same_type()
+ {
+   // The input range uses input iterators.
+   // The output range uses forward iterators, with same value type.
+   test_container<short, input_iterator_wrapper> inc(in);
+   test_container<short, forward_iterator_wrapper> outc(out_shrt);
+   std::unique_copy(inc.begin(), inc.end(), outc.begin());
+   check_and_reset(out_shrt);
+ 
+   test_container<short, input_iterator_wrapper> inc2(in);
+   test_container<short, forward_iterator_wrapper> outc2(out_shrt);
+   std::unique_copy(inc2.begin(), inc2.end(), outc2.begin(), Eq3());
+   check_and_reset(out_shrt);
+ }
+ 
+ int main()
+ {
+   test_forward_source();
+   test_output_dest();
+   test_forward_dest_diff_type();
+   test_forward_dest_same_type();
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/barrier/1.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/barrier/1.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/barrier/1.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/barrier/1.cc	Sun Jun  8 22:32:51 2025
***************
*** 16,22 ****
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
! // { dg-require-effective-target gthreads }
  // { dg-add-options no_pch }
  
  #include <barrier>
--- 16,23 ----
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
! // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
! // { dg-require-effective-target hosted }
  // { dg-add-options no_pch }
  
  #include <barrier>
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/barrier/2.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/barrier/2.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/barrier/2.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/barrier/2.cc	Sun Jun  8 22:32:51 2025
***************
*** 16,22 ****
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
! // { dg-require-effective-target gthreads }
  // { dg-require-effective-target hosted }
  // { dg-add-options no_pch }
  
--- 16,22 ----
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
! // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
  // { dg-require-effective-target hosted }
  // { dg-add-options no_pch }
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/1.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/1.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/1.cc	Sun Jun  8 22:32:51 2025
***************
*** 16,21 ****
--- 16,23 ----
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
+ // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+ // { dg-require-effective-target hosted }
  // { dg-add-options no_pch }
  
  #include <semaphore>
***************
*** 25,27 ****
--- 27,51 ----
  #elif __cpp_lib_semaphore != 201907L
  # error "Feature-test macro for semaphore has wrong value in <semaphore>"
  #endif
+ 
+ static_assert(std::is_same_v<std::counting_semaphore<1>,
+ 			     std::binary_semaphore>);
+ 
+ static_assert(! std::is_same_v<std::counting_semaphore<2>,
+ 			       std::binary_semaphore>);
+ 
+ static_assert(! std::is_same_v<std::counting_semaphore<>,
+ 			       std::binary_semaphore>);
+ 
+ // The standard permits max() to be greater than the template argument,
+ // but for the current libstdc++ implementation it's always equal to it.
+ static_assert(std::binary_semaphore::max() == 1);
+ static_assert(std::counting_semaphore<0>::max() == 0);
+ static_assert(std::counting_semaphore<2>::max() == 2);
+ 
+ #include <limits.h>
+ 
+ static_assert(std::counting_semaphore<INT_MAX>::max() == INT_MAX);
+ static_assert(std::counting_semaphore<INT_MAX-1>::max() == INT_MAX-1);
+ static_assert(std::counting_semaphore<PTRDIFF_MAX>::max() == PTRDIFF_MAX);
+ static_assert(std::counting_semaphore<PTRDIFF_MAX-3>::max() == PTRDIFF_MAX-3);
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/104928-2.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/104928-2.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/104928-2.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/104928-2.cc	Sun Jun  8 22:32:51 2025
***************
*** 0 ****
--- 1,101 ----
+ // { dg-do run { target c++20 } }
+ // { dg-additional-options "-pthread" { target pthread } }
+ // { dg-require-gthreads "" }
+ // { dg-add-options libatomic }
+ 
+ // Bug libstdc++/104928 - std::counting_semaphore on Linux can sleep forever
+ 
+ #include <semaphore>
+ #include <thread>
+ #include <chrono>
+ #include <atomic>
+ 
+ std::binary_semaphore t1(1);
+ std::binary_semaphore sem2(0);
+ std::atomic<int> room1 = 0;
+ int room2 = 0;
+ 
+ std::atomic<bool> run{true};
+ 
+ enum class AcquireKind { Acquire, Try, TryFor };
+ 
+ template<std::ptrdiff_t N, AcquireKind Kind>
+ struct Morris
+ {
+   using Semaphore = std::counting_semaphore<N>;
+ 
+   Semaphore sem1{1};
+   Semaphore sem2{0};
+   unsigned counter = 0;
+ 
+   void operator()()
+   {
+     while (run)
+     {
+       room1 += 1;
+ 
+       acquire(sem1);
+       room2 += 1;
+       room1 -= 1;
+       if (room1 == 0)
+ 	sem2.release();
+       else
+ 	sem1.release();
+ 
+       acquire(sem2);
+       room2 -= 1;
+ 
+       // critical region
+       ++counter;
+       // end critical region
+ 
+       if (room2 == 0)
+ 	sem1.release();
+       else
+ 	sem2.release();
+     }
+   }
+ 
+   void acquire(Semaphore& sem)
+   {
+     using enum AcquireKind;
+     using namespace std::chrono;
+     if constexpr (Kind == Acquire)
+       sem.acquire();
+     else if constexpr (Kind == Try)
+       while (!sem.try_acquire()) { }
+     else if constexpr (Kind == TryFor)
+       while (!sem.try_acquire_for(1h)) { }
+   }
+ };
+ 
+ template<std::ptrdiff_t N, AcquireKind Kind>
+ void
+ test_morris_kind()
+ {
+   Morris<N, Kind> algo;
+   std::thread t1(std::ref(algo));
+   std::thread t2(std::ref(algo));
+   std::this_thread::sleep_for(std::chrono::seconds(2));
+   run = false;
+   t1.join();
+   t2.join();
+ }
+ 
+ template<std::ptrdiff_t N>
+ void
+ test_morris()
+ {
+   test_morris_kind<N, AcquireKind::Acquire>();
+   test_morris_kind<N, AcquireKind::Try>();
+   test_morris_kind<N, AcquireKind::TryFor>();
+ }
+ 
+ int main()
+ {
+   test_morris<1>();    // std::binary_semaphore
+   test_morris<1000>(); // std::counting_semaphore that can use futex
+ #if PTRDIFF_MAX > INT_MAX
+   // test_morris<PTRDIFF_MAX>(); // std::counting_semaphore that cannot use futex
+ #endif
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/104928.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/104928.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/104928.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/104928.cc	Sun Jun  8 22:32:51 2025
***************
*** 0 ****
--- 1,70 ----
+ // { dg-do run { target c++20 } }
+ // { dg-additional-options "-pthread" { target pthread } }
+ // { dg-require-gthreads "" }
+ // { dg-add-options libatomic }
+ // { dg-options "-DSIMULATOR_TEST" { target simulator } }
+ 
+ // Bug libstdc++/104928 - std::counting_semaphore on Linux can sleep forever
+ 
+ #include <semaphore>
+ #include <thread>
+ #include <chrono>
+ #include <climits>
+ 
+ #ifdef SIMULATOR_TEST
+ const int loop_count = 100;
+ const int thread_count = 6;
+ #else
+ const int loop_count = 1000000;
+ const int thread_count = 20;
+ #endif
+ 
+ template<std::ptrdiff_t N, typename Acquire>
+ void
+ test_acquire(Acquire acq_func)
+ {
+   std::counting_semaphore<N * loop_count> s{0};
+   std::thread threads[thread_count];
+   for (int i = 0; i < thread_count; i += 2) {
+     threads[i] = std::thread([&s, &acq_func]() {
+       for (int i = 0; i < loop_count; ++i)
+ 	acq_func(s);
+     });
+     threads[i+1] = std::thread([&s]() {
+       for (int i = 0; i < loop_count; ++i)
+ 	s.release();
+     });
+   }
+   for (auto& t : threads)
+     t.join();
+ }
+ 
+ template<typename Acquire>
+ void
+ test_all(Acquire f)
+ {
+   const int max = INT_MAX / loop_count;
+   test_acquire<max>(f);  // can use futex
+ #if PTRDIFF_MAX > INT_MAX
+   test_acquire<max * 10>(f); // cannot use futex
+ #endif
+ }
+ 
+ int main()
+ {
+   test_all([](auto& sem) { sem.acquire(); });
+ 
+   test_all([](auto& sem) { while (!sem.try_acquire()) { } });
+ 
+   using namespace std::chrono;
+ 
+   test_all([](auto& sem) { while (!sem.try_acquire_for(1h)) { } });
+ 
+   auto try_acquire_until = [](auto& sem, auto time) {
+     while (!sem.try_acquire_until(time + 1h))
+     { }
+   };
+   test_all([&](auto& sem) { try_acquire_until(sem, system_clock::now()); });
+   test_all([&](auto& sem) { try_acquire_until(sem, steady_clock::now()); });
+   test_all([&](auto& sem) { try_acquire_until(sem, utc_clock::now()); });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/2.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/2.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/2.cc	Sun Jun  8 22:32:51 2025
***************
*** 16,21 ****
--- 16,22 ----
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
+ // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
  // { dg-require-effective-target hosted }
  // { dg-add-options no_pch }
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/3.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/3.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/3.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/3.cc	Sun Jun  8 22:32:51 2025
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile { target *-*-*linux* } }
+ // { dg-require-effective-target c++20 }
+ // { dg-require-effective-target hosted }
+ 
+ #include <semaphore>
+ #include <limits.h>
+ 
+ // on Linux these specializations all use a futex:
+ static_assert(sizeof(std::counting_semaphore<0>) == sizeof(int));
+ static_assert(sizeof(std::counting_semaphore<1>) == sizeof(int));
+ static_assert(sizeof(std::counting_semaphore<INT_MAX>) == sizeof(int));
+ static_assert(sizeof(std::counting_semaphore<>) == sizeof(int));
+ 
+ // This will use a futex iff ptrdiff_t has 32 bits:
+ static_assert(sizeof(std::counting_semaphore<PTRDIFF_MAX>) == sizeof(std::ptrdiff_t));
+ 
+ #if PTRDIFF_MAX > INT_MAX
+ static_assert(sizeof(std::counting_semaphore<INT_MAX+1LL>) == sizeof(std::ptrdiff_t));
+ #endif
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/cons.cc	Sun Jun  8 22:32:51 2025
***************
*** 1,4 ****
--- 1,6 ----
  // { dg-do compile { target c++20 } }
+ // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
+ // { dg-require-effective-target hosted }
  
  #include <semaphore>
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/cons_neg.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/cons_neg.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/cons_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/cons_neg.cc	Sun Jun  8 22:32:51 2025
***************
*** 0 ****
--- 1,12 ----
+ // { dg-options "-D_GLIBCXX_ASSERTIONS" }
+ // { dg-do run { target c++20 xfail *-*-* } }
+ // { dg-require-effective-target hosted }
+ // { dg-add-options libatomic }
+ 
+ #include <semaphore>
+ 
+ int main()
+ {
+   // Preconditions: desired >= 0 is true, and desired <= max() is true.
+   std::binary_semaphore b(2);
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc	Sun Jun  8 22:32:51 2025
***************
*** 16,23 ****
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
! // { dg-require-effective-target pthread }
! // { dg-require-gthreads "" }
  
  #include <semaphore>
  
--- 16,23 ----
  // <http://www.gnu.org/licenses/>.
  
  // { dg-do compile { target c++20 } }
! // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
! // { dg-require-effective-target hosted }
  
  #include <semaphore>
  
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc	Sun Jun  1 22:32:48 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc	Sun Jun  8 22:32:51 2025
***************
*** 17,23 ****
  
  // { dg-do run { target c++20 } }
  // { dg-additional-options "-pthread" { target pthread } }
! // { dg-require-gthreads "" }
  // { dg-add-options libatomic }
  
  #include <semaphore>
--- 17,24 ----
  
  // { dg-do run { target c++20 } }
  // { dg-additional-options "-pthread" { target pthread } }
! // { dg-require-effective-target gthreads { target { ! *-*-linux* } } }
! // { dg-require-effective-target hosted }
  // { dg-add-options libatomic }
  
  #include <semaphore>
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/format/functions/format.cc gcc-16-20250608/libstdc++-v3/testsuite/std/format/functions/format.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/format/functions/format.cc	Sun Jun  1 22:32:49 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/std/format/functions/format.cc	Sun Jun  8 22:32:52 2025
*************** test_locale()
*** 261,266 ****
--- 261,276 ----
    s = std::format(eloc, "{0:Le} {0:Lf} {0:Lg}", -nan);
    VERIFY( s == "-nan -nan -nan" );
  
+   // PR libstdc++/120548 format confuses a negative sign for a thousands digit
+   s = std::format(bloc, "{:L}", -123.45);
+   VERIFY( s == "-123.45" );
+   s = std::format(bloc, "{:-L}", -876543.21);
+   VERIFY( s == "-876,543.21" );
+   s = std::format(bloc, "{:+L}", 333.22);
+   VERIFY( s == "+333.22" );
+   s = std::format(bloc, "{: L}", 999.44);
+   VERIFY( s == " 999.44" );
+ 
    // Restore
    std::locale::global(cloc);
  }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,157 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <memory>
+ #include <scoped_allocator>
+ #include <utility>
+ #include <vector>
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_allocator.h>
+ 
+ struct Base {
+   friend constexpr
+   bool operator==(const Base& lhs, const Base& rhs)
+   { return lhs.eq(rhs); }
+ 
+ private:
+   constexpr virtual bool
+   eq(const Base& other) const = 0;
+ };
+ 
+ struct Derived : Base
+ {
+   constexpr Derived()
+    : x(0), y(0), z(0)
+   { }
+ 
+   constexpr Derived(int a, int b, int c)
+    : x(a), y(b), z(c)
+   { }
+       
+ private:
+   constexpr bool
+   eq(const Base& other) const override
+   { 
+     if (auto op = dynamic_cast<const Derived*>(&other))
+       return this->x == op->x && this->y == op->y && this->z == op->z;
+     return false;
+   }
+ 
+   int x;
+   int y;
+   int z;
+ };
+ 
+ using __gnu_test::tracker_allocator;
+ using Counter = __gnu_test::tracker_allocator_counter;
+ using Polymorhic = std::polymorphic<Base, tracker_allocator<Base>>;
+ const Polymorhic src(std::in_place_type<Derived>, 1, 2, 3);
+ 
+ constexpr void
+ test_ctor()
+ {
+   Counter::reset();
+   Polymorhic i1(src);
+   VERIFY( *i1 == *src );
+   VERIFY( &*i1 != &*src );
+   VERIFY( Counter::get_allocation_count() >= sizeof(Derived) );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+   Counter::reset();
+   Polymorhic i2(std::allocator_arg, {}, src);
+   VERIFY( *i2 == *src );
+   VERIFY( &*i2 != &*src );
+   VERIFY( Counter::get_allocation_count() >= sizeof(Derived) );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ constexpr void
+ test_assign()
+ {
+   Counter::reset();
+   Polymorhic i1(std::in_place_type<Derived>);
+   const size_t holderSize = Counter::get_allocation_count();
+   VERIFY( holderSize >= sizeof(Derived) );
+   Counter::reset();
+ 
+   i1 = src;
+   VERIFY( *i1 == *src );
+   VERIFY( &*i1 != &*src );
+   VERIFY( Counter::get_allocation_count() == holderSize );
+   VERIFY( Counter::get_deallocation_count() == holderSize );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   auto(std::move(i1));
+   Counter::reset();
+ 
+   i1 = src;
+   VERIFY( *i1 == *src );
+   VERIFY( &*i1 != &*src );
+   VERIFY( Counter::get_allocation_count() == holderSize );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ constexpr void
+ test_valueless()
+ {
+   Polymorhic e(std::in_place_type<Derived>);
+   auto(std::move(e));
+   VERIFY( e.valueless_after_move() );
+ 
+   Counter::reset();
+   Polymorhic i1(e);
+   VERIFY( i1.valueless_after_move() );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+   Polymorhic i2(std::allocator_arg, {}, e);
+   VERIFY( i2.valueless_after_move() );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+   Polymorhic i3(src);
+   Counter::reset();
+   i3 = e;
+   VERIFY( i3.valueless_after_move() );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() >= sizeof(Derived) );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   Counter::reset();
+   i3 = e;
+   VERIFY( i3.valueless_after_move() );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ constexpr void
+ test_all()
+ {
+   test_ctor();
+   test_assign();
+   test_valueless();
+ }
+ 
+ int main()
+ {
+   test_all();
+ 
+   static_assert([] {
+     test_all();
+     return true;
+   });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,270 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <memory>
+ #include <scoped_allocator>
+ #include <utility>
+ #include <vector>
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_allocator.h>
+ 
+ struct Base {
+   friend constexpr
+   bool operator==(const Base& lhs, const Base& rhs)
+   { return lhs.eq(rhs); }
+ 
+   virtual constexpr int
+   get_alloc_personality() const
+   { return -1; }
+ 
+ private:
+   constexpr virtual bool
+   eq(const Base& other) const = 0;
+ };
+ 
+ template<typename T, typename Allocator>
+ struct VecDerived : Base, std::vector<T, Allocator>
+ {
+   using VecBase = std::vector<T, Allocator>;
+ 
+   using VecBase::VecBase;
+ 
+   constexpr int
+   get_alloc_personality() const override
+   { return this->get_allocator().get_personality(); }
+ 
+ private:
+ 
+   constexpr bool
+   eq(const Base& other) const override
+   { 
+     if (auto op = dynamic_cast<const VecDerived*>(&other))
+       return *static_cast<const VecBase*>(this)
+ 	       == *static_cast<const VecBase*>(op);
+     return false;
+   }
+ };
+ 
+ using __gnu_test::propagating_allocator;
+ using __gnu_test::tracker_allocator;
+ using Counter = __gnu_test::tracker_allocator_counter;
+ 
+ template<bool Propagate>
+ constexpr void
+ test_ctor()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   const Polymorphic src(std::allocator_arg, ScopedAlloc{11, 22},
+ 		     std::in_place_type<Vector>, {1, 2, 3});
+ 
+   Counter::reset();
+   Polymorphic i1(src);
+   VERIFY( *i1 == *src );
+   VERIFY( &*i1 != &*src );
+   if (Propagate)
+   {
+     VERIFY( i1->get_alloc_personality() == 22 );
+     VERIFY( i1.get_allocator().get_personality() == 11 );
+   }
+   else
+   {
+     VERIFY( i1->get_alloc_personality() == 0 );
+     VERIFY( i1.get_allocator().get_personality() == 0 );
+   }
+   VERIFY( Counter::get_allocation_count() >= sizeof(Vector) );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+ 
+   Counter::reset();
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{33, 44}, src);
+   VERIFY( *i2 == *src );
+   VERIFY( &*i2 != &*src );
+   VERIFY( i2->get_alloc_personality() == 44 );
+   VERIFY( i2.get_allocator().get_personality() == 33 );
+   VERIFY( Counter::get_allocation_count() >= sizeof(Vector) );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_assign()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   const Polymorphic src(std::allocator_arg, ScopedAlloc{11, 22},
+ 		     std::in_place_type<Vector>, {1, 2, 3});
+ 
+   Counter::reset();
+   Polymorphic i1(std::allocator_arg, ScopedAlloc{11, 22},
+ 	         std::in_place_type<Vector>);
+   const size_t holderSize = Counter::get_allocation_count();
+   VERIFY( holderSize >= sizeof(Vector) );
+   Counter::reset();
+ 
+   i1 = src;
+   VERIFY( *i1 == *src );
+   VERIFY( &*i1 != &*src );
+   VERIFY( i1->get_alloc_personality() == 22 );
+   VERIFY( i1.get_allocator().get_personality() == 11 );
+   VERIFY( Counter::get_allocation_count() == holderSize );
+   VERIFY( Counter::get_deallocation_count() == holderSize );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{33, 44});
+   Counter::reset();
+ 
+   i2 = src;
+   VERIFY( *i2 == *src );
+   VERIFY( &*i2 != &*src );
+   if (Propagate)
+   {
+     VERIFY( i2->get_alloc_personality() == 22 );
+     VERIFY( i2.get_allocator().get_personality() == 11 );
+   }
+   else
+   {
+     VERIFY( i2->get_alloc_personality() == 44 );
+     VERIFY( i2.get_allocator().get_personality() == 33 );
+   }
+   VERIFY( Counter::get_allocation_count() == holderSize );
+   VERIFY( Counter::get_deallocation_count() == holderSize );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   Polymorphic i3(std::allocator_arg, ScopedAlloc{11, 22});
+   auto(std::move(i3));
+   Counter::reset();
+ 
+   i3 = src;
+   VERIFY( *i3 == *src );
+   VERIFY( &*i3 != &*src );
+   VERIFY( i3->get_alloc_personality() == 22 );
+   VERIFY( i3.get_allocator().get_personality() == 11 );
+   VERIFY( Counter::get_allocation_count() == holderSize );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+   Polymorphic i4(std::allocator_arg, ScopedAlloc{33, 44});
+   auto(std::move(i4));
+   Counter::reset();
+ 
+   i4 = src;
+   VERIFY( *i4 == *src );
+   VERIFY( &*i4 != &*src );
+   if (Propagate)
+   {
+     VERIFY( i4->get_alloc_personality() == 22 );
+     VERIFY( i4.get_allocator().get_personality() == 11 );
+   }
+   else
+   {
+     VERIFY( i4->get_alloc_personality() == 44 );
+     VERIFY( i4.get_allocator().get_personality() == 33 );
+   }
+   VERIFY( Counter::get_allocation_count() == holderSize );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_valueless()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   Polymorphic e(std::allocator_arg, ScopedAlloc{11, 22},
+ 	     std::in_place_type<Vector>);
+   auto(std::move(e));
+   VERIFY( e.valueless_after_move() );
+ 
+   Counter::reset();
+   Polymorphic i1(e);
+   VERIFY( i1.valueless_after_move() );
+   if (Propagate)
+     VERIFY( i1.get_allocator().get_personality() == 11 );
+   else
+     VERIFY( i1.get_allocator().get_personality() == 0 );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+   Counter::reset();
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{33, 44}, e);
+   VERIFY( i2.valueless_after_move() );
+   VERIFY( i2.get_allocator().get_personality() == 33 );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ 
+   Polymorphic i3(std::allocator_arg, ScopedAlloc{33, 44});
+   Counter::reset();
+ 
+   i3 = e;
+   VERIFY( i3.valueless_after_move() );
+   if (Propagate)
+     VERIFY( i3.get_allocator().get_personality() == 11 );
+   else
+     VERIFY( i3.get_allocator().get_personality() == 33 );
+   VERIFY( Counter::get_allocation_count() ==  0 );
+   VERIFY( Counter::get_deallocation_count() >= sizeof(Vector) );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   Counter::reset();
+   i2 = e;
+   VERIFY( i2.valueless_after_move() );
+   if (Propagate)
+     VERIFY( i2.get_allocator().get_personality() == 11 );
+   else
+     VERIFY( i2.get_allocator().get_personality() == 33 );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_all()
+ {
+   test_ctor<Propagate>();
+   test_assign<Propagate>();
+   test_valueless<Propagate>();
+ }
+ 
+ int main()
+ {
+   test_all<true>();
+   test_all<false>();
+ 
+   static_assert([] {
+     test_all<true>();
+     test_all<false>();
+     return true;
+   });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,190 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <memory>
+ #include <scoped_allocator>
+ #include <utility>
+ #include <vector>
+ 
+ #ifndef __cpp_lib_polymorphic
+ # error __cpp_lib_polymorphic feature test macro missing in <memory>
+ #elif __cpp_lib_polymorphic != 202502
+ # error __cpp_lib_polymorphic feature test macro has wrong value in <memory>
+ #endif
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_allocator.h>
+ 
+ using __gnu_test::uneq_allocator;
+ using UneqAlloc = uneq_allocator<int>;
+ using ScopedAlloc = std::scoped_allocator_adaptor<
+   uneq_allocator<std::vector<int, UneqAlloc>>,
+   UneqAlloc>;
+ 
+ struct Obj
+ {
+   int i;
+   char c[2];
+ };
+ 
+ constexpr void
+ test_default_ctor()
+ {
+   using __gnu_test::default_init_allocator;
+ 
+   std::polymorphic<Obj, default_init_allocator<Obj>> i1;
+   default_init_allocator<int> a{};
+ 
+   // The contained object and the allocator should be value-initialized.
+   VERIFY( i1->i == 0 );
+   VERIFY( i1->c[0] == 0 );
+   VERIFY( i1->c[1] == 0 );
+   VERIFY( i1.get_allocator() == a );
+ 
+   a.state = 5;
+   // Allocator-extended default constructor:
+   std::polymorphic<Obj, default_init_allocator<Obj>> i2(std::allocator_arg, a);
+   VERIFY( i2.get_allocator() == a );
+ 
+   // Object is constructed using allocator-aware constructor.
+   std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
+     i3(std::allocator_arg, ScopedAlloc(11, 22));
+   VERIFY( i3->empty() );
+   VERIFY( i3->get_allocator().get_personality() == 22 );
+   VERIFY( i3.get_allocator().get_personality() == 11 );
+ }
+ 
+ constexpr void
+ test_forwarding_ctor()
+ {
+   Obj obj{1, {'2', '3'}};
+   auto verify = [](std::polymorphic<Obj> const& i)
+   {
+     VERIFY( i->i == 1 );
+     VERIFY( i->c[0] == '2' );
+     VERIFY( i->c[1] == '3' );
+   };
+ 
+   std::polymorphic<Obj> i1(std::as_const(obj));
+   verify(i1);
+   std::polymorphic<Obj> i2(std::move(std::as_const(obj)));
+   verify(i2);
+   std::polymorphic<Obj> i3(obj);
+   verify(i3);
+   std::polymorphic<Obj> i4(std::move(obj));
+   verify(i4);
+ 
+   std::polymorphic<Obj> i5({1, {'2', '3'}});
+   verify(i5);
+ 
+   std::vector<int, UneqAlloc> v{1, 2, 3, 4, 5};
+   // Object is constructed using allocator-aware constructor.
+   std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
+     i7(std::allocator_arg, ScopedAlloc(11, 22), v);
+   VERIFY( i7->size() == 5  );
+   VERIFY( v.size() == 5 );
+   VERIFY( i7->get_allocator().get_personality() == 22 );
+   VERIFY( i7.get_allocator().get_personality() == 11 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
+     i8(std::allocator_arg, ScopedAlloc(11, 22), std::move(v));
+   VERIFY( i8->size() == 5  );
+   VERIFY( v.size() == 0 );
+   VERIFY( i8->get_allocator().get_personality() == 22 );
+   VERIFY( i8.get_allocator().get_personality() == 11 );
+ }
+ 
+ constexpr void
+ test_inplace_ctor()
+ {
+   std::polymorphic<Obj> i1(std::in_place_type<Obj>);
+   VERIFY( i1->i == 0 );
+   VERIFY( i1->c[0] == 0 );
+   VERIFY( i1->c[1] == 0 );
+ 
+   std::polymorphic<Obj> i2(std::in_place_type<Obj>, 10);
+   VERIFY( i2->i == 10 );
+   VERIFY( i2->c[0] == 0 );
+   VERIFY( i2->c[1] == 0 );
+ 
+   std::polymorphic<Obj, uneq_allocator<Obj>>
+     i3(std::allocator_arg, 42, std::in_place_type<Obj>);
+   VERIFY( i3->i == 0 );
+   VERIFY( i3->c[0] == 0 );
+   VERIFY( i3->c[1] == 0 );
+   VERIFY( i3.get_allocator().get_personality() == 42 );
+ 
+   std::polymorphic<Obj,  uneq_allocator<Obj>>
+     i4(std::allocator_arg, 42, std::in_place_type<Obj>, 10);
+   VERIFY( i4->i == 10 );
+   VERIFY( i4->c[0] == 0 );
+   VERIFY( i4->c[1] == 0 );
+   VERIFY( i4.get_allocator().get_personality() == 42 );
+ 
+   std::polymorphic<std::vector<int>>
+     i5(std::in_place_type<std::vector<int>>);
+   VERIFY( i5->size() == 0 );
+ 
+   std::polymorphic<std::vector<int>>
+     i6(std::in_place_type<std::vector<int>>, 5, 13);
+   VERIFY( i6->size() == 5 );
+   VERIFY( i6->at(0) == 13 );
+ 
+   std::polymorphic<std::vector<int>>
+     i7(std::in_place_type<std::vector<int>>, {1, 2, 3, 4});
+   VERIFY( i7->size() == 4 );
+   VERIFY( i7->at(2) == 3 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>>
+     i8(std::in_place_type<std::vector<int, UneqAlloc>>, UneqAlloc{42});
+   VERIFY( i8->size() == 0 );
+   VERIFY( i8->get_allocator().get_personality() == 42 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>>
+     i9(std::in_place_type<std::vector<int, UneqAlloc>>, 5, 13, UneqAlloc{42});
+   VERIFY( i9->size() == 5 );
+   VERIFY( i9->at(0) == 13 );
+   VERIFY( i9->get_allocator().get_personality() == 42 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>>
+     i10(std::in_place_type<std::vector<int, UneqAlloc>>, {1, 2, 3, 4}, UneqAlloc{42});
+   VERIFY( i10->size() == 4 );
+   VERIFY( i10->at(2) == 3 );
+   VERIFY( i10->get_allocator().get_personality() == 42 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
+     i14(std::allocator_arg, ScopedAlloc(11, 22),
+ 	std::in_place_type<std::vector<int, UneqAlloc>>);
+   VERIFY( i14->size() == 0 );
+   VERIFY( i14->get_allocator().get_personality() == 22 );
+   VERIFY( i14.get_allocator().get_personality() == 11 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
+     i15(std::allocator_arg, ScopedAlloc(11, 22),
+ 	std::in_place_type<std::vector<int, UneqAlloc>>, 5, 13);
+   VERIFY( i15->size() == 5 );
+   VERIFY( i15->at(0) == 13 );
+   VERIFY( i15->get_allocator().get_personality() == 22 );
+   VERIFY( i15.get_allocator().get_personality() == 11 );
+ 
+   std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
+     i16(std::allocator_arg, ScopedAlloc(11, 22),
+ 	std::in_place_type<std::vector<int, UneqAlloc>>, {1, 2, 3, 4});
+   VERIFY( i16->size() == 4 );
+   VERIFY( i16->at(2) == 3 );
+   VERIFY( i16->get_allocator().get_personality() == 22 );
+   VERIFY( i16.get_allocator().get_personality() == 11 );
+ }
+ 
+ int main()
+ {
+   test_default_ctor();
+   test_forwarding_ctor();
+   test_inplace_ctor();
+ 
+   static_assert([] {
+     test_default_ctor();
+     test_forwarding_ctor();
+     test_inplace_ctor();
+     return true;
+   });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,220 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <memory>
+ #include <scoped_allocator>
+ #include <utility>
+ #include <vector>
+ 
+ #ifndef __cpp_lib_polymorphic
+ # error __cpp_lib_polymorphic feature test macro missing in <memory>
+ #elif __cpp_lib_polymorphic != 202502
+ # error __cpp_lib_polymorphic feature test macro has wrong value in <memory>
+ #endif
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_allocator.h>
+ 
+ struct Base {
+   friend constexpr
+   bool operator==(const Base& lhs, const Base& rhs)
+   { return lhs.eq(rhs); }
+ 
+   virtual constexpr int
+   get_personality() const
+   { return -1; }
+ 
+ private:
+   constexpr virtual bool
+   eq(const Base& other) const
+   { return true; }
+ };
+ 
+ struct ObjDerived : Base
+ {
+   constexpr ObjDerived()
+    : x(0), y(0), z(0)
+   { }
+ 
+   constexpr ObjDerived(int a, int b, int c)
+    : x(a), y(b), z(c)
+   { }
+ 
+   virtual constexpr int
+   get_personality() const
+   { return -2; }
+ 
+ private:
+   constexpr bool
+   eq(const Base& other) const override
+   { 
+     if (auto op = dynamic_cast<const ObjDerived*>(&other))
+       return this->x == op->x && this->y == op->y && this->z == op->z;
+     return false;
+   }
+ 
+   int x;
+   int y;
+   int z;
+ };
+ 
+ template<typename T, typename Allocator>
+ struct VecDerived : Base, std::vector<T, Allocator>
+ {
+   using VecBase = std::vector<T, Allocator>;
+ 
+   using VecBase::VecBase;
+ 
+   constexpr int
+   get_personality() const override
+   { return this->get_allocator().get_personality(); }
+ 
+ private:
+ 
+   constexpr bool
+   eq(const Base& other) const override
+   { 
+     if (auto op = dynamic_cast<const VecDerived*>(&other))
+       return *static_cast<const VecBase*>(this)
+ 	       == *static_cast<const VecBase*>(op);
+     return false;
+   }
+ };
+ 
+ using __gnu_test::uneq_allocator;
+ using UneqAlloc = uneq_allocator<int>;
+ using ScopedAlloc = std::scoped_allocator_adaptor<
+   uneq_allocator<Base>,
+   UneqAlloc>;
+ 
+ constexpr void
+ test_default_ctor()
+ {
+   using __gnu_test::default_init_allocator;
+ 
+   std::polymorphic<Base, default_init_allocator<Base>> i1;
+   default_init_allocator<int> a{};
+ 
+   // The contained object and the allocator should be value-initialized.
+   VERIFY( *i1 == Base() );
+   VERIFY( i1->get_personality() == -1 );
+   VERIFY( i1.get_allocator() == a );
+ 
+   a.state = 5;
+   // Allocator-extended default constructor:
+   std::polymorphic<Base, default_init_allocator<Base>> i2(std::allocator_arg, a);
+   VERIFY( *i1 == Base() );
+   VERIFY( i1->get_personality() == -1 );
+ }
+ 
+ constexpr void
+ test_forwarding_ctor()
+ {
+   const ObjDerived src(1, 2, 3);
+  
+   std::polymorphic<Base> i1(src);
+   VERIFY( *i1 == src );
+   VERIFY( i1->get_personality() == -2 );
+   std::polymorphic<Base> i2(std::move(src));
+   VERIFY( *i2 == src );
+   VERIFY( i2->get_personality() == -2 );
+   
+   ObjDerived obj = src;
+   std::polymorphic<Base> i3(obj);
+   VERIFY( *i3 == src );
+   VERIFY( i3->get_personality() == -2 );
+   std::polymorphic<Base> i4(std::move(obj));
+   VERIFY( *i4 == src );
+   VERIFY( i4->get_personality() == -2 );
+ 
+   const VecDerived<int, UneqAlloc> v{1, 2, 3, 4, 5};
+   // Object is constructed using allocator-aware constructor.
+   std::polymorphic<Base, ScopedAlloc>
+     i5(std::allocator_arg, ScopedAlloc(11, 22), v);
+   VERIFY( *i5 == v );
+   VERIFY( i5->get_personality() == 22 );
+   VERIFY( i5.get_allocator().get_personality() == 11 );
+ 
+   std::polymorphic<Base, ScopedAlloc>
+     i6(std::allocator_arg, ScopedAlloc(11, 22), auto(v));
+   VERIFY( *i6 == v  );
+   VERIFY( i6->get_personality() == 22 );
+   VERIFY( i6.get_allocator().get_personality() == 11 );
+ }
+ 
+ constexpr void
+ test_inplace_ctor()
+ {
+   std::polymorphic<Base> i1(std::in_place_type<ObjDerived>);
+   VERIFY( *i1 == ObjDerived() );
+   VERIFY( i1->get_personality() == -2 );
+ 
+   std::polymorphic<Base> i2(std::in_place_type<ObjDerived>, 10, 20, 30);
+   VERIFY( *i2 == ObjDerived(10, 20, 30) );
+   VERIFY( i2->get_personality() == -2 );
+ 
+   std::polymorphic<Base, uneq_allocator<Base>>
+     i3(std::allocator_arg, 42, std::in_place_type<ObjDerived>);
+   VERIFY( *i3 == ObjDerived() );
+   VERIFY( i3->get_personality() == -2 );
+   VERIFY( i3.get_allocator().get_personality() == 42 );
+ 
+   std::polymorphic<Base, uneq_allocator<Base>>
+     i4(std::allocator_arg, 42, std::in_place_type<ObjDerived>, 10, 20, 30);
+   VERIFY( *i4 == ObjDerived(10, 20, 30) );
+   VERIFY( i4->get_personality() == -2 );
+   VERIFY( i4.get_allocator().get_personality() == 42 );
+ 
+   const VecDerived<int, UneqAlloc> ze;
+   const VecDerived<int, UneqAlloc> fe(5, 13);
+   const VecDerived<int, UneqAlloc> il{1, 2, 3 ,4};
+ 
+   std::polymorphic<Base>
+     i5(std::in_place_type<VecDerived<int, UneqAlloc>>, UneqAlloc{42});
+   VERIFY( *i5 == ze );
+   VERIFY( i5->get_personality() == 42 );
+  
+   std::polymorphic<Base>
+     i6(std::in_place_type<VecDerived<int, UneqAlloc>>, 5, 13, UneqAlloc{42});
+   VERIFY( *i6 == fe );
+   VERIFY( i6->get_personality() == 42 );
+ 
+   std::polymorphic<Base>
+     i7(std::in_place_type<VecDerived<int, UneqAlloc>>, {1, 2, 3, 4}, UneqAlloc{42});
+   VERIFY( *i7 == il  );
+   VERIFY( i7->get_personality() == 42 );
+ 
+   std::polymorphic<Base, ScopedAlloc>
+     i8(std::allocator_arg, ScopedAlloc(11, 22),
+ 	std::in_place_type<VecDerived<int, UneqAlloc>>);
+   VERIFY( *i8 == ze );
+   VERIFY( i8->get_personality() == 22 );
+   VERIFY( i8.get_allocator().get_personality() == 11 );
+ 
+   std::polymorphic<Base, ScopedAlloc>
+     i9(std::allocator_arg, ScopedAlloc(11, 22),
+        std::in_place_type<VecDerived<int, UneqAlloc>>, 5, 13);
+   VERIFY( *i9 == fe );
+   VERIFY( i9->get_personality() == 22 );
+   VERIFY( i9.get_allocator().get_personality() == 11 );
+ 
+   std::polymorphic<Base, ScopedAlloc>
+     i10(std::allocator_arg, ScopedAlloc(11, 22),
+ 	std::in_place_type<VecDerived<int, UneqAlloc>>, {1, 2, 3, 4});
+   VERIFY( *i10 == il );
+   VERIFY( i10->get_personality() == 22 );
+   VERIFY( i10.get_allocator().get_personality() == 11 );
+ }
+ 
+ int main()
+ {
+   test_default_ctor();
+   test_forwarding_ctor();
+   test_inplace_ctor();
+ 
+   static_assert([] {
+     test_default_ctor();
+     test_forwarding_ctor();
+     test_inplace_ctor();
+     return true;
+   });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,13 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <memory>
+ 
+ struct Incomplete;
+ 
+ std::polymorphic<Incomplete>*
+ test_move(std::polymorphic<Incomplete>& i1, std::polymorphic<Incomplete>& i2)
+ {
+   i1 = std::move(i2);
+   swap(i1, i2);
+   return new std::polymorphic<Incomplete>(std::move(i1));
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,28 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <memory>
+ 
+ // In every specialization polymorphic<T, Allocator>, if the type
+ // allocator_traits<Allocator>::value_type is not the same type as T,
+ // the program is ill-formed.
+ using T1 = std::polymorphic<int, std::allocator<long>>::value_type; // { dg-error "here" }
+ 
+ // A program that instantiates the definition of the template
+ // polymorphic<T, Allocator> with a type for the T parameter that is
+ // a non-object type, an array type, in_place_t,
+ // a specialization of in_place_type_t, or a cv-qualified type is ill-formed.
+ 
+ using T2 = std::polymorphic<int&>::value_type; // { dg-error "here" }
+ 
+ using T3 = std::polymorphic<int[1]>::value_type; // { dg-error "here" }
+ 
+ using T4 = std::polymorphic<std::in_place_t>::value_type; // { dg-error "here" }
+ 
+ using T5 = std::polymorphic<std::in_place_type_t<int>>::value_type; // { dg-error "here" }
+ 
+ using T6 = std::polymorphic<const int>::value_type; // { dg-error "here" }
+ 
+ using T7 = std::polymorphic<volatile int>::value_type; // { dg-error "here" }
+ 
+ // { dg-error "static assertion failed" "" { target *-*-* } 0 }
+ // { dg-prune-output "forming pointer to reference" }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,177 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <memory>
+ #include <scoped_allocator>
+ #include <utility>
+ #include <vector>
+ #include <optional>
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_allocator.h>
+ 
+ struct Base {
+   friend constexpr
+   bool operator==(const Base& lhs, const Base& rhs)
+   { return lhs.eq(rhs); }
+ 
+ private:
+   constexpr virtual bool
+   eq(const Base& other) const = 0;
+ };
+ 
+ struct Derived : Base
+ {
+   constexpr Derived()
+    : x(0), y(0), z(0)
+   { }
+ 
+   constexpr Derived(int a, int b, int c)
+    : x(a), y(b), z(c)
+   { }
+       
+ private:
+   constexpr bool
+   eq(const Base& other) const override
+   { 
+     if (auto op = dynamic_cast<const Derived*>(&other))
+       return this->x == op->x && this->y == op->y && this->z == op->z;
+     return false;
+   }
+ 
+   int x;
+   int y;
+   int z;
+ };
+ 
+ using __gnu_test::tracker_allocator;
+ using Counter = __gnu_test::tracker_allocator_counter;
+ using Polymorphic = std::polymorphic<Base, tracker_allocator<Base>>;
+ const Polymorphic val(std::in_place_type<Derived>, 1, 2, 3);
+ 
+ constexpr void
+ verifyNoAllocations()
+ {
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ constexpr void
+ test_ctor()
+ {
+   std::optional<Polymorphic> src;
+   auto make = [&src] -> Polymorphic&& {
+     src.emplace(val);
+     Counter::reset();
+     return std::move(*src);
+   };
+ 
+   Polymorphic i1(make());
+   VERIFY( src->valueless_after_move() );
+   VERIFY( *i1 == *val );
+   verifyNoAllocations();
+ 
+   Polymorphic i2(std::allocator_arg, {}, make());
+   VERIFY( src->valueless_after_move() );
+   VERIFY( *i2 == *val );
+   verifyNoAllocations();
+ }
+ 
+ constexpr void
+ test_assign()
+ {
+   std::optional<Polymorphic> src;
+   auto make = [&src] -> Polymorphic&& {
+     src.emplace(val);
+     Counter::reset();
+     return std::move(*src);
+   };
+ 
+   Polymorphic i1(std::in_place_type<Derived>);
+ 
+   i1 = make();
+   VERIFY( src->valueless_after_move() );
+   VERIFY( *i1 == *val );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() >= sizeof(Derived) );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   auto(std::move(i1));
+   i1 = make();
+   VERIFY( *i1 == *val );
+   VERIFY( src->valueless_after_move() );
+   verifyNoAllocations();
+ }
+ 
+ constexpr void
+ test_swap()
+ {
+   const Polymorphic val1(std::in_place_type<Derived>, 1, 2, 3);
+   const Polymorphic val2(std::in_place_type<Derived>, 2, 4, 6);
+ 
+   Polymorphic i1(val1);
+   Polymorphic i2(val2);
+   Counter::reset();
+   i1.swap(i2);
+   VERIFY( *i2 == *val1 );
+   VERIFY( *i1 == *val2 );
+   verifyNoAllocations();
+ 
+   auto(std::move(i1));
+   
+   Counter::reset();
+   i1.swap(i2);
+   VERIFY( *i1 == *val1 );
+   VERIFY( i2.valueless_after_move() );
+   verifyNoAllocations();
+ }
+ 
+ constexpr void
+ test_valueless()
+ {
+   auto e = [] {
+     Polymorphic res(std::in_place_type<Derived>);
+     auto(std::move(res));
+     Counter::reset();
+     return res;
+   };
+ 
+   Polymorphic i1(e());
+   VERIFY( i1.valueless_after_move() );
+   verifyNoAllocations();
+ 
+   Polymorphic i2(std::allocator_arg, {}, e());
+   VERIFY( i2.valueless_after_move() );
+   verifyNoAllocations();
+ 
+   Polymorphic i3(val);
+   i3 = e();
+   VERIFY( Counter::get_allocation_count() ==  0 );
+   VERIFY( Counter::get_deallocation_count() >= sizeof(Derived) );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   i3 = e();
+   verifyNoAllocations();
+ }
+ 
+ constexpr void
+ test_all()
+ {
+   test_ctor();
+   test_assign();
+   test_swap();
+   test_valueless();
+ }
+ 
+ int main()
+ {
+   test_all();
+ 
+   static_assert([] {
+     test_all();
+     return true;
+   });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,339 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <memory>
+ #include <scoped_allocator>
+ #include <utility>
+ #include <vector>
+ #include <optional>
+ 
+ #include <testsuite_hooks.h>
+ #include <testsuite_allocator.h>
+ 
+ struct Base {
+   friend constexpr
+   bool operator==(const Base& lhs, const Base& rhs)
+   { return lhs.eq(rhs); }
+ 
+   virtual constexpr int
+   get_alloc_personality() const
+   { return -1; }
+ 
+ private:
+   constexpr virtual bool
+   eq(const Base& other) const = 0;
+ };
+ 
+ template<typename T, typename Allocator>
+ struct VecDerived : Base, std::vector<T, Allocator>
+ {
+   using VecBase = std::vector<T, Allocator>;
+ 
+   using VecBase::VecBase;
+ 
+   constexpr int
+   get_alloc_personality() const override
+   { return this->get_allocator().get_personality(); }
+ 
+ private:
+ 
+   constexpr bool
+   eq(const Base& other) const override
+   { 
+     if (auto op = dynamic_cast<const VecDerived*>(&other))
+       return *static_cast<const VecBase*>(this)
+ 	       == *static_cast<const VecBase*>(op);
+     return false;
+   }
+ };
+ 
+ using __gnu_test::propagating_allocator;
+ using __gnu_test::tracker_allocator;
+ using Counter = __gnu_test::tracker_allocator_counter;
+ 
+ constexpr void
+ verifyNoAllocations()
+ {
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_ctor()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   const Polymorphic val(std::in_place_type<Vector>, {1, 2, 3});
+   std::optional<Polymorphic> src;
+   auto make = [&val, &src] -> Polymorphic&& {
+     src.emplace(std::allocator_arg, ScopedAlloc{11, 22}, val);
+     Counter::reset();
+     return std::move(*src);
+   };
+ 
+   Polymorphic i1(make());
+   VERIFY( src->valueless_after_move() );
+   VERIFY( *i1 == *val );
+   VERIFY( i1->get_alloc_personality() == 22 );
+   VERIFY( i1.get_allocator().get_personality() == 11 );
+   verifyNoAllocations();
+ 
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{11, 22}, make());
+   VERIFY( src->valueless_after_move() );
+   VERIFY( *i2 == *val );
+   VERIFY( i2->get_alloc_personality() == 22 );
+   VERIFY( i2.get_allocator().get_personality() == 11 );
+   verifyNoAllocations();
+ 
+   Polymorphic i3(std::allocator_arg, ScopedAlloc{33, 44}, make());
+   // We move-from contained object
+   VERIFY( !src->valueless_after_move() );
+   VERIFY( *i3 == *val );
+   VERIFY( i3->get_alloc_personality() == 44 );
+   VERIFY( i3.get_allocator().get_personality() == 33 );
+   VERIFY( Counter::get_allocation_count() >= sizeof(Vector) );
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_construct_count() == 2 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_assign()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   const Polymorphic val(std::in_place_type<Vector>, {1, 2, 3});
+   std::optional<Polymorphic> src;
+   auto make = [&val, &src] -> Polymorphic&& {
+     src.emplace(std::allocator_arg, ScopedAlloc{11, 22}, val);
+     Counter::reset();
+     return std::move(*src);
+   };
+ 
+   Counter::reset();
+   Polymorphic i1(std::allocator_arg, ScopedAlloc{11, 22});
+   const std::size_t holderSize = Counter::get_allocation_count();
+   VERIFY( holderSize >= sizeof(Vector) );
+ 
+   i1 = make();
+   VERIFY( src->valueless_after_move() );
+   VERIFY( *i1 == *val );
+   VERIFY( i1->get_alloc_personality() == 22 );
+   VERIFY( i1.get_allocator().get_personality() == 11 );
+   VERIFY( Counter::get_allocation_count() == 0 );
+   VERIFY( Counter::get_deallocation_count() == holderSize );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{33, 44});
+ 
+   i2 = make();
+   VERIFY( *i2 == *val );
+   if (Propagate)
+   {
+     VERIFY( src->valueless_after_move() );
+     VERIFY( i2->get_alloc_personality() == 22 );
+     VERIFY( i2.get_allocator().get_personality() == 11 );
+     VERIFY( Counter::get_allocation_count() == 0 );
+     VERIFY( Counter::get_construct_count() == 0 );
+   }
+   else
+   {
+     // We allocate new holder and move-from contained object
+     VERIFY( !src->valueless_after_move() );
+     VERIFY( i2->get_alloc_personality() == 44 );
+     VERIFY( i2.get_allocator().get_personality() == 33 );
+     VERIFY( Counter::get_allocation_count() == holderSize );
+     VERIFY( Counter::get_construct_count() == 2 );
+   }
+   VERIFY( Counter::get_deallocation_count() == holderSize );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   Polymorphic i3(std::allocator_arg, ScopedAlloc{11, 22},
+ 		 std::in_place_type<Vector>);
+   auto(std::move(i3));
+ 
+   i3 = make();
+   VERIFY( *i3 == *val );
+   VERIFY( src->valueless_after_move() );
+   VERIFY( i3->get_alloc_personality() == 22 );
+   VERIFY( i3.get_allocator().get_personality() == 11 );
+   verifyNoAllocations();
+ 
+   Polymorphic i4(std::allocator_arg, ScopedAlloc{33, 44},
+ 		 std::in_place_type<Vector>);
+   auto(std::move(i4));
+ 
+   i4 = make();
+   VERIFY( *i4 == *val );
+   if (Propagate)
+   {
+     VERIFY( src->valueless_after_move() );
+     VERIFY( i4->get_alloc_personality() == 22 );
+     VERIFY( i4.get_allocator().get_personality() == 11 );
+     VERIFY( Counter::get_allocation_count() == 0 );
+     VERIFY( Counter::get_construct_count() == 0 );
+   }
+   else
+   {
+     // We allocate new holder and move-from contained object
+     VERIFY( !src->valueless_after_move() );
+     VERIFY( i4->get_alloc_personality() == 44 );
+     VERIFY( i4.get_allocator().get_personality() == 33 );
+     VERIFY( Counter::get_allocation_count() == holderSize );
+     VERIFY( Counter::get_construct_count() == 2 );
+   }
+   VERIFY( Counter::get_deallocation_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 0 );
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_swap()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   const Polymorphic val1(std::in_place_type<Vector>, {1, 2, 3});
+   const Polymorphic val2(std::in_place_type<Vector>, {2, 4, 6});
+ 
+   Polymorphic i1(std::allocator_arg, ScopedAlloc{11, 22}, val1);
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{11, 22}, val2);
+   Counter::reset();
+   i1.swap(i2);
+   VERIFY( *i2 == *val1 );
+   VERIFY( *i1 == *val2 );
+   verifyNoAllocations();
+ 
+   auto(std::move(i1));
+ 
+   Counter::reset();
+   i1.swap(i2);
+   VERIFY( *i1 == *val1 );
+   VERIFY( i2.valueless_after_move() );
+   verifyNoAllocations();
+ 
+   if (!Propagate)
+     return;
+ 
+   Polymorphic i3(std::allocator_arg, ScopedAlloc{33, 44}, val2);
+   Counter::reset();
+   i1.swap(i3);
+   VERIFY( *i1 == *val2 );
+   VERIFY( i1->get_alloc_personality() == 44 );
+   VERIFY( i1.get_allocator().get_personality() == 33 );
+   VERIFY( *i3 == *val1 );
+   VERIFY( i3->get_alloc_personality() == 22 );
+   VERIFY( i3.get_allocator().get_personality() == 11 );
+   verifyNoAllocations();
+ 
+   i1.swap(i2);
+   VERIFY( i1.valueless_after_move() );
+   VERIFY( i1.get_allocator().get_personality() == 11 );
+   VERIFY( *i2 == *val2 );
+   VERIFY( i2->get_alloc_personality() == 44 );
+   VERIFY( i2.get_allocator().get_personality() == 33 );
+   verifyNoAllocations();
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_valueless()
+ {
+   using PropAlloc = propagating_allocator<int, Propagate>;
+   using Vector = VecDerived<int, PropAlloc>;
+   using ScopedAlloc = std::scoped_allocator_adaptor<
+     propagating_allocator<Vector, Propagate, tracker_allocator<Vector>>,
+     PropAlloc>;
+   using Polymorphic = std::polymorphic<Vector, ScopedAlloc>;
+ 
+   auto e = [] {
+     Polymorphic res(std::allocator_arg, ScopedAlloc{11, 22},
+ 		    std::in_place_type<Vector>);
+     auto(std::move(res));
+     Counter::reset();
+     return res;
+   };
+ 
+   Polymorphic i1(e());
+   VERIFY( i1.valueless_after_move() );
+   VERIFY( i1.get_allocator().get_personality() == 11 );
+   verifyNoAllocations();
+ 
+   Polymorphic i2(std::allocator_arg, ScopedAlloc{33, 44}, e());
+   VERIFY( i2.valueless_after_move() );
+   VERIFY( i2.get_allocator().get_personality() == 33 );
+   verifyNoAllocations();
+ 
+   Polymorphic i3(std::allocator_arg, ScopedAlloc{33, 44});
+ 
+   i3 = e();
+   VERIFY( i3.valueless_after_move() );
+   if (Propagate)
+     VERIFY( i3.get_allocator().get_personality() == 11 );
+   else
+     VERIFY( i3.get_allocator().get_personality() == 33 );
+   VERIFY( Counter::get_allocation_count() ==  0 );
+   VERIFY( Counter::get_deallocation_count() >= sizeof(Vector) );
+   VERIFY( Counter::get_construct_count() == 0 );
+   VERIFY( Counter::get_destruct_count() == 1 );
+ 
+   i2 = e();
+   VERIFY( i2.valueless_after_move() );
+   if (Propagate)
+     VERIFY( i2.get_allocator().get_personality() == 11 );
+   else
+     VERIFY( i2.get_allocator().get_personality() == 33 );
+   verifyNoAllocations();
+ 
+   i3.swap(i2);
+   VERIFY( i2.valueless_after_move() );
+   VERIFY( i1.valueless_after_move() );
+   verifyNoAllocations();
+ 
+   if (!Propagate)
+     return;
+ 
+   Polymorphic i4(std::allocator_arg, ScopedAlloc{33, 44}, e());
+   i4.swap(i1);
+   verifyNoAllocations();
+ }
+ 
+ template<bool Propagate>
+ constexpr void
+ test_all()
+ {
+   test_ctor<Propagate>();
+   test_assign<Propagate>();
+   test_swap<Propagate>();
+   test_valueless<Propagate>();
+ }
+ 
+ int main()
+ {
+   test_all<true>();
+   test_all<false>();
+ 
+   static_assert([] {
+     test_all<true>();
+     test_all<false>();
+     return true;
+   });
+ }
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/time/format/empty_spec.cc gcc-16-20250608/libstdc++-v3/testsuite/std/time/format/empty_spec.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/time/format/empty_spec.cc	Sun Jun  1 22:32:49 2025
--- gcc-16-20250608/libstdc++-v3/testsuite/std/time/format/empty_spec.cc	Sun Jun  8 22:32:52 2025
***************
*** 1,7 ****
  // { dg-do run { target c++20 } }
! // { dg-timeout-factor 2 }
  
  #include <chrono>
  #include <sstream>
  #include <testsuite_hooks.h>
  
--- 1,9 ----
  // { dg-do run { target c++20 } }
! // { dg-require-effective-target hosted }
! // { dg-timeout-factor 5 }
  
  #include <chrono>
+ #include <ranges>
  #include <sstream>
  #include <testsuite_hooks.h>
  
*************** using namespace std::chrono;
*** 10,15 ****
--- 12,57 ----
  #define WIDEN_(C, S) ::std::__format::_Widen<C>(S, L##S)
  #define WIDEN(S) WIDEN_(_CharT, S)
  
+ template<typename CharT, typename T>
+ void
+ test_no_empty_spec()
+ {
+   try
+   {
+     T t{};
+ 
+     if constexpr (std::is_same_v<CharT, char>)
+       (void)std::vformat("{}", std::make_format_args(t));
+ #ifdef _GLIBCXX_USE_WCHAR_T
+     else
+       (void)std::vformat(L"{}", std::make_wformat_args(t));
+ #endif // _GLIBCXX_USE_WCHAR_T
+     VERIFY(false);
+   }
+   catch (const std::format_error&)
+   {
+     VERIFY(true);
+   }
+ }
+ 
+ template<typename T, typename _CharT>
+ void verify(const T& t, std::basic_string_view<_CharT> str)
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{}"), t);
+   VERIFY( res == str );
+ 
+   std::basic_stringstream<_CharT> os;
+   os << t;
+   res = std::move(os).str();
+   VERIFY( res == str );
+ }
+ 
+ template<typename T, typename CharT>
+ void verify(const T& t, const CharT* str)
+ { verify(t, std::basic_string_view<CharT>(str)); }
+ 
  template<typename _CharT>
  void
  test_padding()
*************** test_padding()
*** 35,52 ****
    VERIFY( res == WIDEN("==16 is not a valid month==") );
  }
  
! template<typename T, typename _CharT>
! void verify(const T& t, const _CharT* str)
  {
    std::basic_string<_CharT> res;
  
!   res = std::format(WIDEN("{}"), t);
!   VERIFY( res == str );
  
!   std::basic_stringstream<_CharT> os;
!   os << t;
!   res = std::move(os).str();
!   VERIFY( res == str );
  }
  
  template<typename _CharT>
--- 77,348 ----
    VERIFY( res == WIDEN("==16 is not a valid month==") );
  }
  
! template<typename Ret = void>
! struct Rep
! {
!   using Return
!     = std::conditional_t<std::is_void_v<Ret>, Rep, Ret>;
! 
!   Rep(long v = 0) : val(v) {}
! 
!   operator long() const
!   { return val; }
! 
!   Return
!   operator+() const
!   { return val; }
! 
!   Rep
!   operator-() const
!   { return -val; }
! 
!   friend Rep
!   operator+(Rep lhs, Rep rhs)
!   { return lhs.val + rhs.val; }
! 
!   friend Rep
!   operator-(Rep lhs, Rep rhs)
!   { return lhs.val - rhs.val; }
! 
!   friend Rep
!   operator*(Rep lhs, Rep rhs)
!   { return lhs.val * rhs.val; }
! 
!   friend Rep
!   operator/(Rep lhs, Rep rhs)
!   { return lhs.val / rhs.val; }
! 
!   friend auto operator<=>(Rep, Rep) = default;
! 
!   template<typename _CharT>
!   friend std::basic_ostream<_CharT>&
!   operator<<(std::basic_ostream<_CharT>& os, const Rep& t)
!   { return os << t.val << WIDEN("[via <<]"); }
! 
!   long val;
! };
! 
! template<typename Ret, typename Other>
!   requires std::is_integral_v<Other>
! struct std::common_type<Rep<Ret>, Other>
! {
!   using type = Rep<Ret>;
! };
! 
! template<typename Ret, typename Other>
!   requires std::is_integral_v<Other>
! struct std::common_type<Other, Rep<Ret>>
!   : std::common_type<Rep<Ret>, Other>
! { };
! 
! template<typename Ret>
! struct std::numeric_limits<Rep<Ret>>
!   : std::numeric_limits<long>
! { };
! 
! template<typename Ret, typename _CharT>
! struct std::formatter<Rep<Ret>, _CharT>
!   : std::formatter<long, _CharT>
! {
!   template<typename Out>
!   typename std::basic_format_context<Out, _CharT>::iterator
!   format(const Rep<Ret>& t, std::basic_format_context<Out, _CharT>& ctx) const
!   {
!     constexpr std::basic_string_view<_CharT> suffix = WIDEN("[via format]");
!     auto out = std::formatter<long, _CharT>::format(t.val, ctx);
!     return std::ranges::copy(suffix, out).out;
!   }
! };
! 
! using deciseconds = duration<seconds::rep, std::deci>;
! 
! template<typename _CharT>
! void
! test_duration()
  {
    std::basic_string<_CharT> res;
  
!   const milliseconds di(40);
!   verify( di, WIDEN("40ms") );
!   res = std::format(WIDEN("{:>6}"), di);
!   VERIFY( res == WIDEN("  40ms") );
  
!   verify( -di, WIDEN("-40ms") );
!   res = std::format(WIDEN("{:>6}"), -di);
!   VERIFY( res == WIDEN(" -40ms") );
! 
!   const duration<double> df(11.22);
!   verify( df, WIDEN("11.22s") );
!   res = std::format(WIDEN("{:=^12}"), df);
!   VERIFY( res == WIDEN("===11.22s===") );
! 
!   verify( -df, WIDEN("-11.22s") );
!   res = std::format(WIDEN("{:=^12}"), -df);
!   VERIFY( res == WIDEN("==-11.22s===") );
! }
! 
! template<typename _CharT>
! void
! test_duration_cust()
! {
!   std::basic_string<_CharT> res;
!   const duration<char, std::ratio<1, 10>> charRep(123);
!   verify( charRep, WIDEN("123ds") );
! 
!   // +asLong returns long, so formatted as long
!   const duration<Rep<long>> asLong(20);
!   verify( asLong, WIDEN("20s") );
!   res = std::format(WIDEN("{:>6}"), asLong);
!   VERIFY( res == WIDEN("   20s") );
! 
!   verify( -asLong, WIDEN("-20s") );
!   res = std::format(WIDEN("{:>6}"), -asLong);
!   VERIFY( res == WIDEN("  -20s") );
! 
!   res = std::format(WIDEN("{:%Q}"), asLong);
!   VERIFY( res == WIDEN("20") );
!   res = std::format(WIDEN("{:+<7%Q}"), asLong);
!   VERIFY( res == WIDEN("20+++++") );
! 
!   // +asRep returns Rep<>, so formatted as Rep<>
!   const duration<Rep<>> asRep(10);
!   verify( asRep, WIDEN("10[via <<]s") );
!   res = std::format(WIDEN("{:=^15}"), asRep);
!   VERIFY( res == WIDEN("==10[via <<]s==") );
! 
!   verify( -asRep, WIDEN("-10[via <<]s") );
!   res = std::format(WIDEN("{:=^15}"), -asRep);
!   VERIFY( res == WIDEN("=-10[via <<]s==") );
! 
!   res = std::format(WIDEN("{:%Q}"), asRep);
!   VERIFY( res == WIDEN("10[via format]") );
!   res = std::format(WIDEN("{:=^18%Q}"), asRep);
!   VERIFY( res == WIDEN("==10[via format]==") );
! 
!   const duration<Rep<>, std::milli> milliRep(10);
!   verify( milliRep, WIDEN("10[via <<]ms") );
!   res = std::format(WIDEN("{:=^15}"), milliRep);
!   VERIFY( res == WIDEN("=10[via <<]ms==") );
! 
!   verify( -milliRep, WIDEN("-10[via <<]ms") );
!   res = std::format(WIDEN("{:=^15}"), -milliRep);
!   VERIFY( res == WIDEN("=-10[via <<]ms=") );
! 
!   res = std::format(WIDEN("{:%Q}"), milliRep);
!   VERIFY( res == WIDEN("10[via format]") );
!   res = std::format(WIDEN("{:=^18%Q}"), milliRep);
!   VERIFY( res == WIDEN("==10[via format]==") );
! }
! 
! template<typename Ratio, typename Rep, typename Period>
! constexpr auto
! hms(const duration<Rep, Period>& d)
! {
!   using Dur = duration<Rep, typename Ratio::period>;
!   return hh_mm_ss<Dur>(duration_cast<Dur>(d));
! }
! 
! template<typename _CharT>
! void
! test_hh_mm_ss()
! {
!   auto dt = 22h + 24min + 54s + 111222333ns;
!   verify( hms<nanoseconds>(dt),
! 	  WIDEN("22:24:54.111222333") );
!   verify( hms<microseconds>(dt),
! 	  WIDEN("22:24:54.111222") );
!   verify( hms<milliseconds>(dt),
! 	  WIDEN("22:24:54.111") );
!   verify( hms<deciseconds>(dt),
! 	  WIDEN("22:24:54.1") );
!   verify( hms<seconds>(dt),
! 	  WIDEN("22:24:54") );
!   verify( hms<minutes>(dt),
! 	  WIDEN("22:24:00") );
!   verify( hms<hours>(dt),
! 	  WIDEN("22:00:00") );
!   verify( hms<nanoseconds>(-dt),
! 	  WIDEN("-22:24:54.111222333") );
!   verify( hms<microseconds>(-dt),
! 	  WIDEN("-22:24:54.111222") );
!   verify( hms<milliseconds>(-dt),
! 	  WIDEN("-22:24:54.111") );
!   verify( hms<deciseconds>(-dt),
! 	  WIDEN("-22:24:54.1") );
!   verify( hms<seconds>(-dt),
! 	  WIDEN("-22:24:54") );
!   verify( hms<minutes>(-dt),
! 	  WIDEN("-22:24:00") );
!   verify( hms<hours>(-dt),
! 	  WIDEN("-22:00:00") );
! 
!   verify( hms<nanoseconds>(-dt),
! 	  WIDEN("-22:24:54.111222333") );
! 
!   dt += 300h;
!   verify( hms<nanoseconds>(dt),
! 	  WIDEN("322:24:54.111222333") );
!   verify( hms<nanoseconds>(-dt),
! 	  WIDEN("-322:24:54.111222333") );
! 
!   dt += 14000h;
!   verify( hms<nanoseconds>(dt),
! 	  WIDEN("14322:24:54.111222333") );
!   verify( hms<nanoseconds>(-dt),
! 	  WIDEN("-14322:24:54.111222333") );
! }
! 
! template<typename _CharT>
! void
! test_hh_mm_ss_cust()
! {
!   const duration<char, deciseconds::period> charRep(123);
!   verify( hms<deciseconds>(charRep),
! 	  WIDEN("00:00:12.3") );
!   verify( hms<seconds>(charRep),
! 	  WIDEN("00:00:12") );
! 
!   auto dt = 22h + 24min + 54s + 123ms;
!   // +plus returns long, so formatted as long
!   const duration<Rep<long>, std::milli> asLong(dt.count());
!   verify( hms<milliseconds>(asLong),
! 	  WIDEN("22:24:54.123[via format]") );
!   verify( hms<deciseconds>(asLong),
! 	  WIDEN("22:24:54.1[via format]") );
!   verify( hms<seconds>(asLong),
! 	  WIDEN("22:24:54") );
!   verify( hms<milliseconds>(-asLong),
! 	  WIDEN("-22:24:54.123[via format]") );
!   verify( hms<deciseconds>(-asLong),
! 	  WIDEN("-22:24:54.1[via format]") );
!   verify( hms<seconds>(-asLong),
! 	  WIDEN("-22:24:54") );
! 
!   // +asRep returns Rep<>, so formatted as Rep<>
!   const duration<Rep<>, std::milli> asRep(dt.count());
!   verify( hms<milliseconds>(asRep),
! 	  WIDEN("22:24:54.123[via format]") );
!   verify( hms<deciseconds>(asRep),
! 	  WIDEN("22:24:54.1[via format]") );
!   verify( hms<seconds>(asLong),
! 	  WIDEN("22:24:54") );
!   verify( hms<milliseconds>(-asLong),
! 	  WIDEN("-22:24:54.123[via format]") );
!   verify( hms<deciseconds>(-asLong),
! 	  WIDEN("-22:24:54.1[via format]") );
!   verify( hms<seconds>(-asLong),
! 	  WIDEN("-22:24:54") );
! }
! 
! template<typename CharT>
! void
! test_durations()
! {
!   test_duration<CharT>();
!   test_duration_cust<CharT>();
! 
!   test_hh_mm_ss<CharT>();
!   test_hh_mm_ss_cust<CharT>();
  }
  
  template<typename _CharT>
*************** test_year_month_day()
*** 196,214 ****
    verify( year(2024)/month(1)/30,
  	  WIDEN("2024-01-30") );
    verify( year(-100)/month(14)/1,
! 	  // Should be -0100-14-01
! 	  WIDEN("-100-14-01 is not a valid date") );
    verify( year(2025)/month(11)/100,
! 	  // Should be 2025-11-100 ?
! 	  WIDEN("2025-11-99 is not a valid date") );
    verify( year(-32768)/month(2)/10,
  	  WIDEN("-32768-02-10 is not a valid date") );
    verify( year(-32768)/month(212)/10,
! 	  // Should be 32768-212-10?
! 	  WIDEN("-32768-84-10 is not a valid date") );
    verify( year(-32768)/month(2)/105,
!           // Should be 32768-02-99?
! 	  WIDEN("-32768-02-99 is not a valid date") );
    verify( year(-32768)/month(14)/55,
  	  WIDEN("-32768-14-55 is not a valid date") );
  }
--- 492,506 ----
    verify( year(2024)/month(1)/30,
  	  WIDEN("2024-01-30") );
    verify( year(-100)/month(14)/1,
! 	  WIDEN("-0100-14-01 is not a valid date") );
    verify( year(2025)/month(11)/100,
! 	  WIDEN("2025-11-100 is not a valid date") );
    verify( year(-32768)/month(2)/10,
  	  WIDEN("-32768-02-10 is not a valid date") );
    verify( year(-32768)/month(212)/10,
! 	  WIDEN("-32768-212-10 is not a valid date") );
    verify( year(-32768)/month(2)/105,
! 	  WIDEN("-32768-02-105 is not a valid date") );
    verify( year(-32768)/month(14)/55,
  	  WIDEN("-32768-14-55 is not a valid date") );
  }
*************** test_calendar()
*** 283,294 ****
--- 575,850 ----
    test_year_month_weekday_last<CharT>();
  }
  
+ template<typename Clock, typename Dur, typename Dur2>
+ constexpr auto
+ wall_cast(const local_time<Dur2>& tp)
+ {
+   using TP = time_point<Clock, std::common_type_t<Dur, days>>;
+   if constexpr (std::is_same_v<Clock, utc_clock> || std::is_same_v<Clock, file_clock>)
+     return clock_cast<Clock>(wall_cast<system_clock, Dur>(tp));
+   else if constexpr (std::is_same_v<Clock, tai_clock>)
+     return TP(floor<Dur>(tp.time_since_epoch()) + days(4383));
+   else if constexpr (std::is_same_v<Clock, gps_clock>)
+     return TP(floor<Dur>(tp.time_since_epoch()) - days(3657));
+   else // system_clock, local_t
+     return time_point<Clock, Dur>(floor<Dur>(tp.time_since_epoch()));
+ }
+ 
+ using decadays = duration<days::rep, std::ratio_multiply<std::deca, days::period>>;
+ using kilodays = duration<days::rep, std::ratio_multiply<std::kilo, days::period>>;
+ 
+ template<typename _CharT, typename Clock>
+ void
+ test_time_point(bool daysAsTime)
+ {
+   std::basic_string<_CharT> res;
+ 
+   const auto lt = local_days(2024y/March/22) + 13h + 24min + 54s + 111222333ns;
+   auto strip_time = [daysAsTime](std::basic_string_view<_CharT> sv)
+   { return daysAsTime ? sv : sv.substr(0, 10); };
+ 
+   verify( wall_cast<Clock, nanoseconds>(lt),
+ 	  WIDEN("2024-03-22 13:24:54.111222333") );
+   verify( wall_cast<Clock, microseconds>(lt),
+ 	  WIDEN("2024-03-22 13:24:54.111222") );
+   verify( wall_cast<Clock, milliseconds>(lt),
+ 	  WIDEN("2024-03-22 13:24:54.111") );
+   verify( wall_cast<Clock, seconds>(lt),
+ 	  WIDEN("2024-03-22 13:24:54") );
+   verify( wall_cast<Clock, minutes>(lt),
+ 	  WIDEN("2024-03-22 13:24:00") );
+   verify( wall_cast<Clock, hours>(lt),
+ 	  WIDEN("2024-03-22 13:00:00") );
+   verify( wall_cast<Clock, days>(lt),
+ 	  strip_time(WIDEN("2024-03-22 00:00:00")) );
+   verify( wall_cast<Clock, decadays>(lt),
+ 	  strip_time(WIDEN("2024-03-18 00:00:00")) );
+   verify( wall_cast<Clock, kilodays>(lt),
+ 	  strip_time(WIDEN("2022-01-08 00:00:00")) );
+ }
+ 
+ template<typename _CharT>
+ void
+ test_leap_second()
+ {
+   std::basic_string<_CharT> res;
+ 
+   const auto st = sys_days(2012y/June/30) + 23h + 59min + 59s + 111222333ns;
+   auto tp = clock_cast<utc_clock>(st);
+   tp += 1s;
+ 
+   verify( floor<nanoseconds>(tp),
+ 	  WIDEN("2012-06-30 23:59:60.111222333") );
+   verify( floor<microseconds>(tp),
+ 	  WIDEN("2012-06-30 23:59:60.111222") );
+   verify( floor<milliseconds>(tp),
+ 	  WIDEN("2012-06-30 23:59:60.111") );
+   verify( floor<seconds>(tp),
+ 	  WIDEN("2012-06-30 23:59:60") );
+ }
+ 
+ #if _GLIBCXX_USE_CXX11_ABI || !_GLIBCXX_USE_DUAL_ABI
+ template<typename Dur, typename Dur2>
+ auto
+ make_zoned(const sys_time<Dur2>& st, const time_zone* tz)
+ { return zoned_time<Dur>(tz, floor<Dur>(st)); }
+ 
+ template<typename _CharT>
+ void
+ test_zoned_time()
+ {
+   const auto st = sys_days(2024y/March/22) + 13h + 24min + 54s + 111222333ns;
+   const time_zone* tz = locate_zone("Europe/Sofia");
+   VERIFY( tz != nullptr );
+ 
+   verify( make_zoned<nanoseconds>(st, tz),
+ 	  WIDEN("2024-03-22 15:24:54.111222333 EET") );
+   verify( make_zoned<microseconds>(st, tz),
+ 	  WIDEN("2024-03-22 15:24:54.111222 EET") );
+   verify( make_zoned<milliseconds>(st, tz),
+ 	  WIDEN("2024-03-22 15:24:54.111 EET") );
+   verify( make_zoned<seconds>(st, tz),
+ 	  WIDEN("2024-03-22 15:24:54 EET") );
+   verify( make_zoned<minutes>(st, tz),
+ 	  WIDEN("2024-03-22 15:24:00 EET") );
+   verify( make_zoned<hours>(st, tz),
+ 	  WIDEN("2024-03-22 15:00:00 EET") );
+   verify( make_zoned<days>(st, tz),
+ 	  WIDEN("2024-03-22 02:00:00 EET") );
+   verify( make_zoned<decadays>(st, tz),
+ 	  WIDEN("2024-03-18 02:00:00 EET") );
+   verify( make_zoned<kilodays>(st, tz),
+ 	  WIDEN("2022-01-08 02:00:00 EET") );
+ }
+ #endif
+ 
+ template<typename Dur, typename Dur2>
+ auto
+ local_fmt(const local_time<Dur2>& lt, std::string* zone)
+ { return local_time_format(floor<Dur>(lt), zone); }
+ 
+ template<typename _CharT>
+ void
+ test_local_time_format()
+ {
+   std::basic_string<_CharT> res;
+ 
+   std::string abbrev = "Zone";
+   const auto lt = local_days(2024y/March/22) + 13h + 24min + 54s + 111222333ns;
+ 
+   res = std::format(WIDEN("{}"), local_fmt<nanoseconds>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 13:24:54.111222333 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<microseconds>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 13:24:54.111222 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<milliseconds>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 13:24:54.111 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<seconds>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 13:24:54 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<minutes>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 13:24:00 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<hours>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 13:00:00 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<days>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-22 00:00:00 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<decadays>(lt, &abbrev));
+   VERIFY( res == WIDEN("2024-03-18 00:00:00 Zone") );
+   res = std::format(WIDEN("{}"), local_fmt<kilodays>(lt, &abbrev));
+   VERIFY( res == WIDEN("2022-01-08 00:00:00 Zone") );
+ }
+ 
+ template<typename CharT>
+ void
+ test_time_points()
+ {
+   test_time_point<CharT, local_t>(false);
+   test_time_point<CharT, system_clock>(false);
+   test_time_point<CharT, utc_clock>(true);
+   test_time_point<CharT, tai_clock>(true);
+   test_time_point<CharT, gps_clock>(true);
+   test_time_point<CharT, file_clock>(true);
+   test_leap_second<CharT>();
+ #if _GLIBCXX_USE_CXX11_ABI || !_GLIBCXX_USE_DUAL_ABI
+   test_zoned_time<CharT>();
+ #endif
+   test_local_time_format<CharT>();
+ 
+   test_no_empty_spec<CharT, sys_time<years>>();
+   test_no_empty_spec<CharT, sys_time<duration<float>>>();
+ }
+ 
+ #if _GLIBCXX_USE_CXX11_ABI || !_GLIBCXX_USE_DUAL_ABI
+ template<typename _CharT>
+ void
+ test_sys_info()
+ {
+   const sys_info si
+   {
+     sys_days(2024y/March/22) + 2h,
+     sys_days(2025y/April/11) + 23h + 15min + 10s,
+     2h + 13min + 4s,
+     15min,
+     "Zone"
+   };
+   const std::basic_string_view<_CharT> txt
+     = WIDEN("[2024-03-22 02:00:00,2025-04-11 23:15:10,02:13:04,15min,Zone]");
+ 
+   verify( si, txt );
+ 
+   std::basic_string<_CharT> res;
+   std::basic_string_view<_CharT> sv;
+ 
+   sv = res = std::format(WIDEN("{:65}"), si);
+   VERIFY( sv.ends_with(WIDEN("    ")) );
+   sv.remove_suffix(4);
+   VERIFY( sv == txt );
+ 
+   sv = res = std::format(WIDEN("{:=^67}"), si);
+   VERIFY( sv.starts_with(WIDEN("===")) );
+   VERIFY( sv.ends_with(WIDEN("===")) );
+   sv.remove_prefix(3);
+   sv.remove_suffix(3);
+   VERIFY( sv == txt );
+ }
+ 
+ template<typename _CharT>
+ void test_local_info()
+ {
+   using String = std::basic_string<_CharT>;
+   using StringView = std::basic_string_view<_CharT>;
+ 
+   const sys_info s1
+   {
+     sys_days(2015y/September/11) + 2h,
+     sys_days(2016y/March/13) + 2h,
+     -5h,
+     0h,
+     "EET"
+   };
+   const sys_info s2
+   {
+     sys_days(2016y/March/13) + 2h,
+     sys_days(2015y/September/15) + 2h,
+     -4h,
+     1h,
+     "EDT"
+   };
+ 
+   const StringView single
+     = WIDEN("[2015-09-11 02:00:00,2016-03-13 02:00:00,-05:00:00,0min,EET]");
+   const StringView both
+     = WIDEN(" local time between "
+ 	    "[2015-09-11 02:00:00,2016-03-13 02:00:00,-05:00:00,0min,EET]"
+ 	    " and "
+ 	    "[2016-03-13 02:00:00,2015-09-15 02:00:00,-04:00:00,60min,EDT]");
+ 
+   const local_info l1{local_info::nonexistent, s1, s2};
+   auto exp = WIDEN("[nonexistent") + String(both) + WIDEN("]");
+   verify( l1, StringView(exp) );
+ 
+   const local_info l2{local_info::ambiguous, s1, s2};
+   exp = WIDEN("[ambiguous") + String(both) + WIDEN("]");
+   verify( l2, StringView(exp) );
+ 
+   const local_info l3{local_info::unique, s1, s1};
+   exp = WIDEN("[") + String(single) + WIDEN("]");
+   verify( l3, StringView(exp) );
+ 
+   String res;
+   StringView sv;
+ 
+   sv = res = std::format(WIDEN("{:65}"), l3);
+   VERIFY( sv.ends_with(WIDEN("   ")) );
+   sv.remove_suffix(3);
+   VERIFY( sv == exp );
+ 
+   sv = res = std::format(WIDEN("{:=^67}"), l3);
+   VERIFY( sv.starts_with(WIDEN("==")) );
+   VERIFY( sv.ends_with(WIDEN("===")) );
+   sv.remove_prefix(2);
+   sv.remove_suffix(3);
+   VERIFY( sv == exp );
+ }
+ 
+ template<typename CharT>
+ void
+ test_infos()
+ {
+   test_sys_info<CharT>();
+   test_local_info<CharT>();
+ }
+ #endif
+ 
  template<typename CharT>
  void
  test_all()
  {
    test_padding<CharT>();
+   test_durations<CharT>();
    test_calendar<CharT>();
+   test_time_points<CharT>();
+ #if _GLIBCXX_USE_CXX11_ABI || !_GLIBCXX_USE_DUAL_ABI
+   test_infos<CharT>();
+ #endif
  }
  
  int main()
diff -Nrcpad gcc-16-20250601/libstdc++-v3/testsuite/std/time/format/pr120481.cc gcc-16-20250608/libstdc++-v3/testsuite/std/time/format/pr120481.cc
*** gcc-16-20250601/libstdc++-v3/testsuite/std/time/format/pr120481.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20250608/libstdc++-v3/testsuite/std/time/format/pr120481.cc	Sun Jun  8 22:32:52 2025
***************
*** 0 ****
--- 1,324 ----
+ // { dg-do run { target c++23 } }
+ // { dg-options "-fexec-charset=UTF-8" }
+ // { dg-timeout-factor 2 }
+ 
+ #include <algorithm>
+ #include <chrono>
+ #include <testsuite_hooks.h>
+ 
+ #define WIDEN_(C, S) ::std::__format::_Widen<C>(S, L##S)
+ #define WIDEN(S) WIDEN_(_CharT, S)
+ 
+ using namespace std::chrono;
+ 
+ template<typename _CharT>
+ void
+ test_year()
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{:%Y}"), year(0));
+   VERIFY( res == WIDEN("0000") );
+   res = std::format(WIDEN("{:%C}"), year(0));
+   VERIFY( res == WIDEN("00") );
+   res = std::format(WIDEN("{:%y}"), year(0));
+   VERIFY( res == WIDEN("00") );
+ 
+   res = std::format(WIDEN("{:%Y}"), year(5));
+   VERIFY( res == WIDEN("0005") );
+   res = std::format(WIDEN("{:%C}"), year(5));
+   VERIFY( res == WIDEN("00") );
+   res = std::format(WIDEN("{:%y}"), year(5));
+   VERIFY( res == WIDEN("05") );
+   res = std::format(WIDEN("{:%Y}"), year(-5));
+   VERIFY( res == WIDEN("-0005") );
+   res = std::format(WIDEN("{:%C}"), year(-5));
+   VERIFY( res == WIDEN("-01") );
+   res = std::format(WIDEN("{:%y}"), year(-5));
+   VERIFY( res == WIDEN("05") );
+ 
+   res = std::format(WIDEN("{:%Y}"), year(213));
+   VERIFY( res == WIDEN("0213") );
+   res = std::format(WIDEN("{:%C}"), year(213));
+   VERIFY( res == WIDEN("02") );
+   res = std::format(WIDEN("{:%y}"), year(213));
+   VERIFY( res == WIDEN("13") );
+   res = std::format(WIDEN("{:%Y}"), year(-213));
+   VERIFY( res == WIDEN("-0213") );
+   res = std::format(WIDEN("{:%C}"), year(-213));
+   VERIFY( res == WIDEN("-03") );
+   res = std::format(WIDEN("{:%y}"), year(-213));
+   VERIFY( res == WIDEN("13") );
+ 
+   res = std::format(WIDEN("{:%Y}"), year(7100));
+   VERIFY( res == WIDEN("7100") );
+   res = std::format(WIDEN("{:%C}"), year(7100));
+   VERIFY( res == WIDEN("71") );
+   res = std::format(WIDEN("{:%y}"), year(7100));
+   VERIFY( res == WIDEN("00") );
+   res = std::format(WIDEN("{:%Y}"), year(-7100));
+   VERIFY( res == WIDEN("-7100") );
+   res = std::format(WIDEN("{:%C}"), year(-7100));
+   VERIFY( res == WIDEN("-71") );
+   res = std::format(WIDEN("{:%y}"), year(-7100));
+   VERIFY( res == WIDEN("00") );
+ 
+   res = std::format(WIDEN("{:%Y}"), year(12101));
+   VERIFY( res == WIDEN("12101") );
+   res = std::format(WIDEN("{:%C}"), year(12101));
+   VERIFY( res == WIDEN("121") );
+   res = std::format(WIDEN("{:%y}"), year(12101));
+   VERIFY( res == WIDEN("01") );
+   res = std::format(WIDEN("{:%Y}"), year(-12101));
+   VERIFY( res == WIDEN("-12101") );
+   res = std::format(WIDEN("{:%C}"), year(-12101));
+   VERIFY( res == WIDEN("-122") );
+   res = std::format(WIDEN("{:%y}"), year(-12101));
+   VERIFY( res == WIDEN("01") );
+ }
+ 
+ template<typename _CharT>
+ void
+ test_month()
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{:%m}"), month(5));
+   VERIFY( res == WIDEN("05") );
+   res = std::format(WIDEN("{:%m}"), month(50));
+   VERIFY( res == WIDEN("50") );
+   res = std::format(WIDEN("{:%m}"), month(127));
+   VERIFY( res == WIDEN("127") );
+   res = std::format(WIDEN("{:%m}"), month(254));
+   VERIFY( res == WIDEN("254") );
+ }
+ 
+ template<typename _CharT>
+ void
+ test_day()
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{:%d}"), day(3));
+   VERIFY( res == WIDEN("03") );
+   res = std::format(WIDEN("{:%d}"), day(22));
+   VERIFY( res == WIDEN("22") );
+   res = std::format(WIDEN("{:%d}"), day(100));
+   VERIFY( res == WIDEN("100") );
+   res = std::format(WIDEN("{:%d}"), day(207));
+   VERIFY( res == WIDEN("207") );
+ 
+   res = std::format(WIDEN("{:%e}"), day(5));
+   VERIFY( res == WIDEN(" 5") );
+   res = std::format(WIDEN("{:%e}"), day(99));
+   VERIFY( res == WIDEN("99") );
+   res = std::format(WIDEN("{:%e}"), day(183));
+   VERIFY( res == WIDEN("183") );
+   res = std::format(WIDEN("{:%e}"), day(214));
+   VERIFY( res == WIDEN("214") );
+ }
+ 
+ template<typename _CharT>
+ void
+ test_date()
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{:%F}"), year(-22)/month(10)/day(20));
+   VERIFY( res == WIDEN("-0022-10-20") );
+   res = std::format(WIDEN("{:%D}"), year(-22)/month(10)/day(20));
+   VERIFY( res == WIDEN("10/20/22") );
+ 
+   res = std::format(WIDEN("{:%F}"), year(-2020)/month(123)/day(44));
+   VERIFY( res == WIDEN("-2020-123-44") );
+   res = std::format(WIDEN("{:%D}"), year(-2020)/month(123)/day(44));
+   VERIFY( res == WIDEN("123/44/20") );
+ 
+   res = std::format(WIDEN("{:%F}"), year(-23404)/month(99)/day(223));
+   VERIFY( res == WIDEN("-23404-99-223") );
+   res = std::format(WIDEN("{:%D}"), year(-23404)/month(99)/day(223));
+   VERIFY( res == WIDEN("99/223/04") );
+ 
+   res = std::format(WIDEN("{:%F}"), year(10000)/month(220)/day(100));
+   VERIFY( res == WIDEN("10000-220-100") );
+   res = std::format(WIDEN("{:%D}"), year(10000)/month(220)/day(100));
+   VERIFY( res == WIDEN("220/100/00") );
+ }
+ 
+ template<typename _CharT>
+ void
+ test_weekday()
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(0));
+   VERIFY( res == WIDEN("0") );
+   res = std::format(WIDEN("{:%u}"), weekday(0));
+   VERIFY( res == WIDEN("7") );
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(7));
+   VERIFY( res == WIDEN("0") );
+   res = std::format(WIDEN("{:%u}"), weekday(7));
+   VERIFY( res == WIDEN("7") );
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(8));
+   VERIFY( res == WIDEN("8") );
+   res = std::format(WIDEN("{:%u}"), weekday(8));
+   VERIFY( res == WIDEN("8") );
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(10));
+   VERIFY( res == WIDEN("10") );
+   res = std::format(WIDEN("{:%u}"), weekday(10));
+   VERIFY( res == WIDEN("10") );
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(76));
+   VERIFY( res == WIDEN("76") );
+   res = std::format(WIDEN("{:%u}"), weekday(76));
+   VERIFY( res == WIDEN("76") );
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(100));
+   VERIFY( res == WIDEN("100") );
+   res = std::format(WIDEN("{:%u}"), weekday(100));
+   VERIFY( res == WIDEN("100") );
+ 
+   res = std::format(WIDEN("{:%w}"), weekday(202));
+   VERIFY( res == WIDEN("202") );
+   res = std::format(WIDEN("{:%u}"), weekday(202));
+   VERIFY( res == WIDEN("202") );
+ }
+ 
+ template<typename _CharT>
+ void
+ test_hour()
+ {
+   std::basic_string<_CharT> res;
+ 
+   res = std::format(WIDEN("{:%H}"), 0h + 5min + 6s);
+   VERIFY( res == WIDEN("00") );
+   res = std::format(WIDEN("{:%R}"), 0h + 5min + 6s);
+   VERIFY( res == WIDEN("00:05") );
+   res = std::format(WIDEN("{:%T}"), 0h + 5min + 6s);
+   VERIFY( res == WIDEN("00:05:06") );
+   res = std::format(WIDEN("{:%I}"), 0h + 5min + 6s);
+   VERIFY( res == WIDEN("12") );
+   res = std::format(WIDEN("{:%p}"), 0h + 5min + 6s);
+   VERIFY( res == WIDEN("AM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 7h + 15min + 6s);
+   VERIFY( res == WIDEN("07") );
+   res = std::format(WIDEN("{:%R}"), 7h + 15min + 6s);
+   VERIFY( res == WIDEN("07:15") );
+   res = std::format(WIDEN("{:%T}"), 7h + 15min + 6s);
+   VERIFY( res == WIDEN("07:15:06") );
+   res = std::format(WIDEN("{:%I}"), 7h + 15min + 6s);
+   VERIFY( res == WIDEN("07") );
+   res = std::format(WIDEN("{:%p}"), 7h + 15min + 6s);
+   VERIFY( res == WIDEN("AM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 15h + 55min + 26s);
+   VERIFY( res == WIDEN("15") );
+   res = std::format(WIDEN("{:%R}"), 15h + 55min + 26s);
+   VERIFY( res == WIDEN("15:55") );
+   res = std::format(WIDEN("{:%T}"), 15h + 55min + 26s);
+   VERIFY( res == WIDEN("15:55:26") );
+   res = std::format(WIDEN("{:%I}"), 15h + 55min + 26s);
+   VERIFY( res == WIDEN("03") );
+   res = std::format(WIDEN("{:%p}"), 15h + 55min + 26s);
+   VERIFY( res == WIDEN("PM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 50h + 33min + 37s);
+   VERIFY( res == WIDEN("50") );
+   res = std::format(WIDEN("{:%R}"), 50h + 33min + 37s);
+   VERIFY( res == WIDEN("50:33") );
+   res = std::format(WIDEN("{:%T}"), 50h + 33min + 37s);
+   VERIFY( res == WIDEN("50:33:37") );
+   res = std::format(WIDEN("{:%I}"), 50h + 33min + 37s);
+   VERIFY( res == WIDEN("02") );
+   res = std::format(WIDEN("{:%p}"), 50h + 33min + 37s);
+   VERIFY( res == WIDEN("AM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 100h + 21min + 48s);
+   VERIFY( res == WIDEN("100") );
+   res = std::format(WIDEN("{:%R}"), 100h + 21min + 48s);
+   VERIFY( res == WIDEN("100:21") );
+   res = std::format(WIDEN("{:%T}"), 100h + 21min + 48s);
+   VERIFY( res == WIDEN("100:21:48") );
+   res = std::format(WIDEN("{:%I}"), 100h + 21min + 48s);
+   VERIFY( res == WIDEN("04") );
+   res = std::format(WIDEN("{:%p}"), 100h + 21min + 48s);
+   VERIFY( res == WIDEN("AM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 228h + 45min + 33s);
+   VERIFY( res == WIDEN("228") );
+   res = std::format(WIDEN("{:%R}"), 228h + 45min + 33s);
+   VERIFY( res == WIDEN("228:45") );
+   res = std::format(WIDEN("{:%T}"), 228h + 45min + 33s);
+   VERIFY( res == WIDEN("228:45:33") );
+   res = std::format(WIDEN("{:%I}"), 228h + 4min + 33s);
+   VERIFY( res == WIDEN("12") );
+   res = std::format(WIDEN("{:%p}"), 228h + 4min + 33s);
+   VERIFY( res == WIDEN("PM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 1024h + 3min);
+   VERIFY( res == WIDEN("1024") );
+   res = std::format(WIDEN("{:%R}"), 1024h + 3min);
+   VERIFY( res == WIDEN("1024:03") );
+   res = std::format(WIDEN("{:%T}"), 1024h + 3min);
+   VERIFY( res == WIDEN("1024:03:00") );
+   res = std::format(WIDEN("{:%I}"), 1024h + 3min);
+   VERIFY( res == WIDEN("04") );
+   res = std::format(WIDEN("{:%p}"), 1024h + 3min);
+   VERIFY( res == WIDEN("PM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 2039h);
+   VERIFY( res == WIDEN("2039") );
+   res = std::format(WIDEN("{:%R}"), 2039h);
+   VERIFY( res == WIDEN("2039:00") );
+   res = std::format(WIDEN("{:%T}"), 2039h);
+   VERIFY( res == WIDEN("2039:00:00") );
+   res = std::format(WIDEN("{:%I}"), 2039h);
+   VERIFY( res == WIDEN("11") );
+   res = std::format(WIDEN("{:%p}"), 2039h);
+   VERIFY( res == WIDEN("PM") );
+ 
+   res = std::format(WIDEN("{:%H}"), 22111h + 59min + 59s);
+   VERIFY( res == WIDEN("22111") );
+   res = std::format(WIDEN("{:%R}"), 22111h + 59min + 59s);
+   VERIFY( res == WIDEN("22111:59") );
+   res = std::format(WIDEN("{:%T}"), 22111h + 59min + 59s);
+   VERIFY( res == WIDEN("22111:59:59") );
+   res = std::format(WIDEN("{:%I}"), 22111h + 59min + 59s);
+   VERIFY( res == WIDEN("07") );
+   res = std::format(WIDEN("{:%p}"), 22111h + 59min + 59s);
+   VERIFY( res == WIDEN("AM") );
+ 
+   res = std::format(WIDEN("{:%H}"), -22111h - 59min - 59s);
+   VERIFY( res == WIDEN("-22111") );
+   res = std::format(WIDEN("{:%R}"), -22111h - 59min - 59s);
+   VERIFY( res == WIDEN("-22111:59") );
+   res = std::format(WIDEN("{:%T}"), -22111h - 59min - 59s);
+   VERIFY( res == WIDEN("-22111:59:59") );
+   res = std::format(WIDEN("{:%I}"), -22111h - 59min - 59s);
+   VERIFY( res == WIDEN("-07") );
+   res = std::format(WIDEN("{:%p}"), -22111h - 59min - 59s);
+   VERIFY( res == WIDEN("AM") );
+ }
+ 
+ int main()
+ {
+   test_year<char>();
+   test_month<char>();
+   test_day<char>();
+   test_date<char>();
+   test_weekday<char>();
+   test_hour<char>();
+ 
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   test_year<wchar_t>();
+   test_month<wchar_t>();
+   test_day<wchar_t>();
+   test_date<wchar_t>();
+   test_weekday<wchar_t>();
+   test_hour<wchar_t>();
+ #endif // _GLIBCXX_USE_WCHAR_T
+ }
