aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2008-07-31 15:26:40 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-07-31 15:26:40 +0200
commit8198b93da51f3930d16298c7b9fd72f36a3343b7 (patch)
tree39385686d227c1824b61034d537f30ebe4580e17
parentb8f2b5d9acf05785e007cdf15ee4c14f1895c01a (diff)
downloadgcc-8198b93da51f3930d16298c7b9fd72f36a3343b7.zip
gcc-8198b93da51f3930d16298c7b9fd72f36a3343b7.tar.gz
gcc-8198b93da51f3930d16298c7b9fd72f36a3343b7.tar.bz2
sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the corresponding spec is a primitive wrapper.
2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the corresponding spec is a primitive wrapper. Update comment. From-SVN: r138406
-rw-r--r--gcc/ada/sem_ch6.adb9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index 33cb73d..6583b72 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -1564,9 +1564,14 @@ package body Sem_Ch6 is
-- Subprogram_Specification. In such cases, we undo the change
-- made by the analysis of the specification and try to find the
-- spec again.
+ -- Note that wrappers already have their corresponding specs and
+ -- bodies set during their creation, so if the candidate spec is
+ -- a wrapper, then we definately need to swap all types to their
+ -- original concurrent status.
- if No (Spec_N) then
-
+ if No (Spec_N)
+ or else Is_Primitive_Wrapper (Spec_N)
+ then
-- Restore all references of corresponding record types to the
-- original concurrent types.