[gcc r14-9381] modula2: Add constant aggregate tests
Gaius Mulley
gaius@gcc.gnu.org
Fri Mar 8 06:27:34 GMT 2024
https://gcc.gnu.org/g:131d1753ac71eb62f0b14fa9a1cb0e125e9a3ca1
commit r14-9381-g131d1753ac71eb62f0b14fa9a1cb0e125e9a3ca1
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date: Fri Mar 8 06:26:55 2024 +0000
modula2: Add constant aggregate tests
This patch adds four constant aggregate tests and assignment of
arrays by a constant in two different scopes.
gcc/testsuite/ChangeLog:
* gm2/iso/pass/arrayconst.mod: New test.
* gm2/iso/pass/arrayconst2.mod: New test.
* gm2/iso/pass/arrayconst3.mod: New test.
* gm2/iso/pass/arrayconst4.mod: New test.
Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
Diff:
---
gcc/testsuite/gm2/iso/pass/arrayconst.mod | 31 ++++++++++++++++++++++++++
gcc/testsuite/gm2/iso/pass/arrayconst2.mod | 31 ++++++++++++++++++++++++++
gcc/testsuite/gm2/iso/pass/arrayconst3.mod | 35 ++++++++++++++++++++++++++++++
gcc/testsuite/gm2/iso/pass/arrayconst4.mod | 35 ++++++++++++++++++++++++++++++
4 files changed, 132 insertions(+)
diff --git a/gcc/testsuite/gm2/iso/pass/arrayconst.mod b/gcc/testsuite/gm2/iso/pass/arrayconst.mod
new file mode 100644
index 00000000000..05ce4c911d1
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/arrayconst.mod
@@ -0,0 +1,31 @@
+MODULE arrayconst ;
+
+
+PROCEDURE foo ;
+TYPE
+ array = ARRAY [0..3] OF REAL ;
+CONST
+ value = array {1.0, 2.0, 3.0, 4.0} ;
+VAR
+ r: REAL ;
+BEGIN
+ r := value[1] ;
+END foo ;
+
+
+PROCEDURE bar ;
+TYPE
+ array = ARRAY [0..3] OF REAL ;
+CONST
+ value = array {5.0, 6.0, 7.0, 8.0} ;
+VAR
+ r: REAL ;
+BEGIN
+ r := value[1] ;
+END bar ;
+
+
+BEGIN
+ foo ;
+ bar
+END arrayconst.
diff --git a/gcc/testsuite/gm2/iso/pass/arrayconst2.mod b/gcc/testsuite/gm2/iso/pass/arrayconst2.mod
new file mode 100644
index 00000000000..cee4b1457cb
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/arrayconst2.mod
@@ -0,0 +1,31 @@
+MODULE arrayconst ;
+
+
+PROCEDURE foo ;
+TYPE
+ array = ARRAY [0..3] OF REAL ;
+CONST
+ value = array {1.0, 2.0, 3.0, 4.0} ;
+VAR
+ c: array ;
+BEGIN
+ c := value
+END foo ;
+
+
+PROCEDURE bar ;
+TYPE
+ array = ARRAY [0..3] OF REAL ;
+CONST
+ value = array {5.0, 6.0, 7.0, 8.0} ;
+VAR
+ c: array ;
+BEGIN
+ c := value
+END bar ;
+
+
+BEGIN
+ foo ;
+ bar
+END arrayconst.
diff --git a/gcc/testsuite/gm2/iso/pass/arrayconst3.mod b/gcc/testsuite/gm2/iso/pass/arrayconst3.mod
new file mode 100644
index 00000000000..0402e6f6bac
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/arrayconst3.mod
@@ -0,0 +1,35 @@
+MODULE arrayconst3 ;
+
+
+PROCEDURE foo ;
+CONST
+ len = 4 ;
+TYPE
+ array = ARRAY [0..len -1] OF REAL ;
+CONST
+ value = array {1.0, 2.0, 3.0, 4.0} ;
+VAR
+ r: REAL ;
+BEGIN
+ r := value[1] ;
+END foo ;
+
+
+PROCEDURE bar ;
+CONST
+ len = 2 ;
+TYPE
+ array = ARRAY [0..len -1] OF REAL ;
+CONST
+ value = array {5.0, 6.0} ;
+VAR
+ r: REAL ;
+BEGIN
+ r := value[1] ;
+END bar ;
+
+
+BEGIN
+ foo ;
+ bar
+END arrayconst3.
diff --git a/gcc/testsuite/gm2/iso/pass/arrayconst4.mod b/gcc/testsuite/gm2/iso/pass/arrayconst4.mod
new file mode 100644
index 00000000000..0b14229cd8a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/arrayconst4.mod
@@ -0,0 +1,35 @@
+MODULE arrayconst4 ;
+
+
+PROCEDURE foo ;
+CONST
+ len = 4 ;
+TYPE
+ array = ARRAY [0..len -1] OF REAL ;
+CONST
+ value = array {1.0, 2.0, 3.0, 4.0} ;
+VAR
+ c: array ;
+BEGIN
+ c := value
+END foo ;
+
+
+PROCEDURE bar ;
+CONST
+ len = 2 ;
+TYPE
+ array = ARRAY [0..len -1] OF REAL ;
+CONST
+ value = array {5.0, 6.0} ;
+VAR
+ c: array ;
+BEGIN
+ c := value
+END bar ;
+
+
+BEGIN
+ foo ;
+ bar
+END arrayconst4.
More information about the Gcc-cvs
mailing list