mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
ada: No extra formals on anonymous access types of C subprograms
Extra formals must not be added to anonymous access to subprogram types defined in the profile of imported C subprograms. gcc/ada/ChangeLog: * sem_ch6.adb (Create_Extra_Formals): Do not add extra formals to anonymous access to subprogram types defined in the profile of subprograms that have foreign convention.
This commit is contained in:
committed by
Marc Poulhiès
parent
0c8271742f
commit
f656344f5f
@@ -9077,6 +9077,17 @@ package body Sem_Ch6 is
|
||||
then
|
||||
Freeze_Extra_Formals (E);
|
||||
return;
|
||||
|
||||
elsif Ekind (Ref_E) in E_Subprogram_Type
|
||||
and then Is_Itype (Ref_E)
|
||||
and then Nkind (Associated_Node_For_Itype (Ref_E)) in
|
||||
N_Function_Specification
|
||||
| N_Procedure_Specification
|
||||
and then Has_Foreign_Convention
|
||||
(Defining_Entity (Associated_Node_For_Itype (Ref_E)))
|
||||
then
|
||||
Freeze_Extra_Formals (E);
|
||||
return;
|
||||
end if;
|
||||
|
||||
-- If the subprogram is a predefined dispatching subprogram then don't
|
||||
|
||||
Reference in New Issue
Block a user