diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2018-05-31 10:46:17 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-05-31 10:46:17 +0000 |
commit | 7366d29a546c6ea55a6fe8d2a131dc16c892f4b3 (patch) | |
tree | 5849e0224885534be42afc8a5370b15b55a7909d | |
parent | 81a95941f966dd1c0e4e2d368e0d7441f0776482 (diff) | |
download | gcc-7366d29a546c6ea55a6fe8d2a131dc16c892f4b3.zip gcc-7366d29a546c6ea55a6fe8d2a131dc16c892f4b3.tar.gz gcc-7366d29a546c6ea55a6fe8d2a131dc16c892f4b3.tar.bz2 |
[Ada] Set Etype on rewriteen Max_Queue_Length expressions
Rewriting of Max_Queue_Length expression into N_Integer_Literal should probably
be done in expansion and not in analysis, but anyway it should not strip the
expression from its Etype because backends (e.g. GNATprove) expect that Etype
to be present.
No frontend test is provided, because GNAT doesn't care about the missing
Etype decoration. This patch allows to simplify AST processing in GNATprove.
2018-05-31 Piotr Trojanek <trojanek@adacore.com>
gcc/ada/
* sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten
Max_Queue_Length expression.
From-SVN: r261002
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/sem_prag.adb | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 45a4bfd..a58cfe8 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2018-05-31 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten + Max_Queue_Length expression. + 2018-05-31 Sergey Rybin <rybin@adacore.com> * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index b75b318..e80c297 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -18833,6 +18833,7 @@ package body Sem_Prag is if Nkind (Arg) /= N_Integer_Literal then Rewrite (Arg, Make_Integer_Literal (Sloc (Arg), Val)); + Set_Etype (Arg, Etype (Original_Node (Arg))); end if; Record_Rep_Item (Entry_Id, N); |