]> git.ipfire.org Git - thirdparty/gcc.git/commit
[Ada] Avoid namespace pollution for Next and Previous
authorBob Duff <duff@adacore.com>
Tue, 21 Jun 2022 18:32:37 +0000 (14:32 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 12 Jul 2022 12:24:11 +0000 (12:24 +0000)
commit7ce2938ccff9e1cdfcd0ad63d3653dc671335620
tree0f794b8f73d9eaa218e623a7c34568fdd642d3be
parent1710ba9e5d09493690c5f474a5c37b5c8f5d7b19
[Ada] Avoid namespace pollution for Next and Previous

This patch renames Next and Previous in a-convec.ads and other
containers to be _Next and _Previous, to avoid namespace pollution.  The
compiler now uses the leading-underscore names to look them up.

The scanner is changed to allow this.

gcc/ada/

* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use _Next and
_Previous in the optimized expansion of "for ... of".  No longer
need to check parameter profiles for these, because the
leading-underscore names are unique.
* libgnat/a-convec.ads (_Next, _Previous): Renamings of Next and
Previous, to avoid namespace pollution.
* libgnat/a-cbdlli.ads, libgnat/a-cbhama.ads,
libgnat/a-cbhase.ads, libgnat/a-cbmutr.ads,
libgnat/a-cborma.ads, libgnat/a-cborse.ads,
libgnat/a-cdlili.ads, libgnat/a-cidlli.ads,
libgnat/a-cihama.ads, libgnat/a-cihase.ads,
libgnat/a-cimutr.ads, libgnat/a-ciorma.ads,
libgnat/a-ciorse.ads, libgnat/a-cobove.ads,
libgnat/a-cohama.ads, libgnat/a-cohase.ads,
libgnat/a-coinve.ads, libgnat/a-comutr.ads,
libgnat/a-coorma.ads, libgnat/a-coorse.ads: Likewise.  Also,
remove duplicated comments -- refer to one comment about _Next,
_Previous, Pseudo_Reference in libgnat/a-convec.ads. DRY.
* scng.adb (Scan): Allow leading underscores in identifiers in
the run-time library.
* snames.ads-tmpl (Name_uNext, Name_uPrevious): New names with
leading underscores.
24 files changed:
gcc/ada/exp_ch5.adb
gcc/ada/libgnat/a-cbdlli.ads
gcc/ada/libgnat/a-cbhama.ads
gcc/ada/libgnat/a-cbhase.ads
gcc/ada/libgnat/a-cbmutr.ads
gcc/ada/libgnat/a-cborma.ads
gcc/ada/libgnat/a-cborse.ads
gcc/ada/libgnat/a-cdlili.ads
gcc/ada/libgnat/a-cidlli.ads
gcc/ada/libgnat/a-cihama.ads
gcc/ada/libgnat/a-cihase.ads
gcc/ada/libgnat/a-cimutr.ads
gcc/ada/libgnat/a-ciorma.ads
gcc/ada/libgnat/a-ciorse.ads
gcc/ada/libgnat/a-cobove.ads
gcc/ada/libgnat/a-cohama.ads
gcc/ada/libgnat/a-cohase.ads
gcc/ada/libgnat/a-coinve.ads
gcc/ada/libgnat/a-comutr.ads
gcc/ada/libgnat/a-convec.ads
gcc/ada/libgnat/a-coorma.ads
gcc/ada/libgnat/a-coorse.ads
gcc/ada/scng.adb
gcc/ada/snames.ads-tmpl