diff mbox series

[Ada] Crash on overriding of an abstract primitive on an incomplete type

Message ID 20210617143311.GA10904@adacore.com
State New
Headers show
Series [Ada] Crash on overriding of an abstract primitive on an incomplete type | expand

Commit Message

Pierre-Marie de Rodat June 17, 2021, 2:33 p.m. UTC
This combination breaks an assumption in
Sem_Ch3.Check_Ops_From_Incomplete_Type.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against
	no Primitive_Operations.
diff mbox series

Patch

diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -3072,6 +3072,7 @@  package body Sem_Ch3 is
            and then Ekind (Prev) = E_Incomplete_Type
            and then Is_Tagged_Type (Prev)
            and then Is_Tagged_Type (T)
+           and then Present (Primitive_Operations (Prev))
          then
             Elmt := First_Elmt (Primitive_Operations (Prev));
             while Present (Elmt) loop