diff options
author | Yannick Moy <moy@adacore.com> | 2019-12-13 09:04:58 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-12-13 09:04:58 +0000 |
commit | de12d07e93ca47cacbbeda1107e7cc3b6af9ad63 (patch) | |
tree | 7239ff004511d31c45c55a907996fe19b50ad350 /gcc | |
parent | 8973b987b6e8a33560a20723d2d32275ee86e907 (diff) | |
download | gcc-de12d07e93ca47cacbbeda1107e7cc3b6af9ad63.zip gcc-de12d07e93ca47cacbbeda1107e7cc3b6af9ad63.tar.gz gcc-de12d07e93ca47cacbbeda1107e7cc3b6af9ad63.tar.bz2 |
[Ada] Avoid spurious mismatch error of assertion policy in generics
2019-12-13 Yannick Moy <moy@adacore.com>
gcc/ada/
* sem_util.adb (Original_Aspect_Pragma_Name): Go through
Original_Node for pragma.
From-SVN: r279359
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/sem_util.adb | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 9af0c43..3ec76a2 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2019-12-13 Yannick Moy <moy@adacore.com> + + * sem_util.adb (Original_Aspect_Pragma_Name): Go through + Original_Node for pragma. + 2019-12-13 Piotr Trojanek <trojanek@adacore.com> * exp_aggr.adb, exp_unst.adb: Minor fix typo in comment. diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 03ce7c0..e29360f 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -23326,13 +23326,16 @@ package body Sem_Util is Item := Corresponding_Aspect (Item); end if; - -- Retrieve the name of the aspect/pragma. Note that Pre, Pre_Class, + -- Retrieve the name of the aspect/pragma. As assertion pragmas from + -- a generic instantiation might have been rewritten into pragma Check, + -- we look at the original node for Item. Note also that Pre, Pre_Class, -- Post and Post_Class rewrite their pragma identifier to preserve the - -- original name. + -- original name, so we look at the original node for the identifier. -- ??? this is kludgey if Nkind (Item) = N_Pragma then - Item_Nam := Chars (Original_Node (Pragma_Identifier (Item))); + Item_Nam := + Chars (Original_Node (Pragma_Identifier (Original_Node (Item)))); else pragma Assert (Nkind (Item) = N_Aspect_Specification); |