diff options
author | Martin Clochard <clochard@adacore.com> | 2024-06-07 11:44:45 +0200 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-06-27 10:19:12 +0200 |
commit | 60ca71044e8e4d492c74f65f6093fbcf46d238bb (patch) | |
tree | ebad5d5f90bcd3da323086c57d3f539d30dd5514 /gcc/gimple-range-cache.h | |
parent | 3cb7e22ad965bbbb672f51a437c0a30a4c95f558 (diff) | |
download | gcc-60ca71044e8e4d492c74f65f6093fbcf46d238bb.zip gcc-60ca71044e8e4d492c74f65f6093fbcf46d238bb.tar.gz gcc-60ca71044e8e4d492c74f65f6093fbcf46d238bb.tar.bz2 |
ada: Overridden operation field not correctly set for controlling result wrappers
Implicit wrapper overridings generated for functions with
controlling result when deriving with null extension may
have field Overridden_Operation incorrectly set, when making
several such derivations in succession. This happens because
overridings were assumed to come from source, and entities
generated by Derive_Subprograms were also assumed to be
derived from source subprograms. Overridden_Operation could
be set to the entity generated by Derive_Subprograms for the
same type, resulting in a cycle between Overriden_Operation
and Alias fields, causing non-termination in GNATprove.
gcc/ada/
* sem_ch6.adb (Check_Overriding_Indicator) Remove Comes_From_Source filter.
(New_Overloaded_Entity) Move up special case of LSP_Subprogram,
and remove Comes_From_Source filter.
Diffstat (limited to 'gcc/gimple-range-cache.h')
0 files changed, 0 insertions, 0 deletions