aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2018-05-31 10:46:17 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-31 10:46:17 +0000
commit7366d29a546c6ea55a6fe8d2a131dc16c892f4b3 (patch)
tree5849e0224885534be42afc8a5370b15b55a7909d
parent81a95941f966dd1c0e4e2d368e0d7441f0776482 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/ada/sem_prag.adb1
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);