mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-10 21:25:15 +08:00
ada: Spurious error on Lock_Free protected type with discriminants
This patch corrects an issue in the compiler whereby unprefixed discriminants appearing in protected subprograms were unable to be properly resolved - leading to spurious resolution errors. gcc/ada/ * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually resetting the entity field of a non-prefixed discriminant reference.
This commit is contained in:
parent
8313c5f600
commit
2aa5f94243
@ -4891,14 +4891,16 @@ package body Sem_Ch8 is
|
||||
then
|
||||
null;
|
||||
|
||||
-- Don't replace the discriminant in strict preanalysis mode since
|
||||
-- it can lead to errors during full analysis when the discriminant
|
||||
-- gets referenced later.
|
||||
-- Don't replace a non-qualified discriminant in strict preanalysis
|
||||
-- mode since it can lead to errors during full analysis when the
|
||||
-- discriminant gets referenced later.
|
||||
|
||||
-- This can occur in situations where a protected type contains
|
||||
-- an expression function which references a discriminant.
|
||||
-- an expression function which references a non-prefixed
|
||||
-- discriminant.
|
||||
|
||||
elsif Preanalysis_Active
|
||||
elsif No (P)
|
||||
and then Preanalysis_Active
|
||||
and then Inside_Preanalysis_Without_Freezing = 0
|
||||
then
|
||||
null;
|
||||
|
Loading…
Reference in New Issue
Block a user