diff options
author | Steve Baird <baird@adacore.com> | 2024-09-05 13:42:20 -0700 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-10-08 10:37:13 +0200 |
commit | 0f7e027e7773fbab82b24e08f60c6da7d3f913a5 (patch) | |
tree | 3298d9b863baa53ece1df2aec200b6fba5907505 /libcpp | |
parent | 0171938cfc357ed43c2b95ddee504f614cac7982 (diff) | |
download | gcc-0f7e027e7773fbab82b24e08f60c6da7d3f913a5.zip gcc-0f7e027e7773fbab82b24e08f60c6da7d3f913a5.tar.gz gcc-0f7e027e7773fbab82b24e08f60c6da7d3f913a5.tar.bz2 |
ada: Improved support for incomplete parameter types
Fix two bugs uncovered by a recent ACATS test C3A1005: a freezing problem
and a case where a user-defined equality function for an incomplete type
was incorrectly hidden from use-clause visibility by the "corresponding"
predefined op (which doesn't actually exist).
gcc/ada/ChangeLog:
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Don't freeze here
if Has_Delayed_Freeze returns True.
* sem_type.adb (Valid_Equality_Arg): Treat an incomplete type like
a limited type because neither has an implicitly-defined equality
primitive.
(Covers): If either argument is an incomplete type
whose full view is available, then look through to the full view.
* sem_res.adb (Resolve_Actuals): If the actual parameter type is
complete and the formal parameter type is not, then update the
formal parameter type to use the complete view.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions