--- gcc/ada/sem_prag.adb +++ gcc/ada/sem_prag.adb @@ -25608,6 +25608,12 @@ package body Sem_Prag is Ent := Underlying_Type (Ent); end if; + -- The pragma applies to entities with addresses. + + if Is_Type (Ent) then + Error_Pragma ("pragma applies to objects and subprograms"); + end if; + -- The only processing required is to link this item on to the -- list of rep items for the given entity. This is accomplished -- by the call to Rep_Item_Too_Late (when no error is detected --- /dev/null new file mode 100644 +++ gcc/testsuite/gnat.dg/weak3.adb @@ -0,0 +1,11 @@ +-- { dg-do compile } + +package body Weak3 is + + type T is new Integer; + pragma Weak_External (T); -- { dg-error "pragma applies to objects and subprograms" } + X : T; + + procedure Foo is null; + +end Weak3; --- /dev/null new file mode 100644 +++ gcc/testsuite/gnat.dg/weak3.ads @@ -0,0 +1,3 @@ +package Weak3 is + procedure Foo; +end Weak3;