aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2022-05-23 14:27:41 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2022-07-05 08:28:18 +0000
commit1f85342b42b4bf9fee3cd23bc38498a3565bc9f1 (patch)
tree6cf1c37dbb540331c713b60083ad5f0684056759
parent69a70b0acbf01387ec1d1e85d2c7ed0d588d799e (diff)
downloadgcc-1f85342b42b4bf9fee3cd23bc38498a3565bc9f1.zip
gcc-1f85342b42b4bf9fee3cd23bc38498a3565bc9f1.tar.gz
gcc-1f85342b42b4bf9fee3cd23bc38498a3565bc9f1.tar.bz2
[Ada] Spurious error on qualified prefix in Pack.Func'Result
When using a qualified name such as Pack.Func as the prefix of a 'Result attribute reference, the prefix is not fully resolved and may contain a chain of homonyms. Look for the expected function in the homonym chain instead of issuing an error if the first one is not the expected one. gcc/ada/ * sem_attr.adb (Analyze_Attribute): Take into account the possibility of homonyms.
-rw-r--r--gcc/ada/sem_attr.adb6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index 6a35358..b8d878c 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -5835,6 +5835,12 @@ package body Sem_Attr is
elsif Present (Over_Id) and then Pref_Id = Over_Id then
return True;
+
+ -- When a qualified name is used for the prefix, homonyms may come
+ -- before the current function in the homonym chain.
+
+ elsif Has_Homonym (Pref_Id) then
+ return Denote_Same_Function (Homonym (Pref_Id), Spec_Id);
end if;
-- Otherwise the prefix does not denote the related subprogram