https://gcc.gnu.org/g:9fc6eedace2607c5e322f4b874f290975f0d2b0e

commit r16-1159-g9fc6eedace2607c5e322f4b874f290975f0d2b0e
Author: Javier Miranda <mira...@adacore.com>
Date:   Tue Feb 4 19:41:53 2025 +0000

    ada: Missing error on expression function returning incomplete type
    
    When the type of the expression of an expression function is
    an incomplete type, the frontend does not report the expected
    error.
    
    gcc/ada/ChangeLog:
    
            * sem_ch6.adb (Analyze_Expression_Function): Add missing check
            on premature use of incomplete type.

Diff:
---
 gcc/ada/sem_ch6.adb | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index 0cfcc1cb263b..d4e6d1693263 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -591,6 +591,11 @@ package body Sem_Ch6 is
             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

Reply via email to