https://gcc.gnu.org/g:1542e8a44cc35e63233d3557afbf501c5ff84c55

commit r14-9602-g1542e8a44cc35e63233d3557afbf501c5ff84c55
Author: Gaius Mulley <gaiusm...@gmail.com>
Date:   Fri Mar 22 01:47:31 2024 +0000

    PR modula2/114422 Attempting to declare a set of unknown type causes ICE
    
    This patch corrects an error message directive which did not
    escape the { character.  The patch also contains test cases
    to stress set declaration errors.
    
    gcc/m2/ChangeLog:
    
            PR modula2/114422
            * gm2-compiler/M2Quads.mod (BuildConstructor): Add escape
            character.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/114422
            * gm2/iso/fail/badset.mod: New test.
            * gm2/iso/fail/badset2.mod: New test.
            * gm2/iso/fail/badset3.mod: New test.
    
    Signed-off-by: Gaius Mulley <gaiusm...@gmail.com>

Diff:
---
 gcc/m2/gm2-compiler/M2Quads.mod        | 2 +-
 gcc/testsuite/gm2/iso/fail/badset.mod  | 7 +++++++
 gcc/testsuite/gm2/iso/fail/badset2.mod | 9 +++++++++
 gcc/testsuite/gm2/iso/fail/badset3.mod | 9 +++++++++
 4 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index ac654e89c91..52d72f6cd62 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -12172,7 +12172,7 @@ BEGIN
    IF type = NulSym
    THEN
       MetaErrorT0 (tokcbrpos,
-                   '{%E}constructor requires a type before the opening {')
+                   '{%E}constructor requires a type before the opening %{')
    ELSE
       ChangeToConstructor (tok, type) ;
       PutConstructorFrom (constValue, type) ;
diff --git a/gcc/testsuite/gm2/iso/fail/badset.mod 
b/gcc/testsuite/gm2/iso/fail/badset.mod
new file mode 100644
index 00000000000..8bfc49f948e
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badset.mod
@@ -0,0 +1,7 @@
+MODULE badset ;
+
+VAR
+   set: set ;
+BEGIN
+
+END badset.
diff --git a/gcc/testsuite/gm2/iso/fail/badset2.mod 
b/gcc/testsuite/gm2/iso/fail/badset2.mod
new file mode 100644
index 00000000000..d883d1ffe75
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badset2.mod
@@ -0,0 +1,9 @@
+MODULE badset2 ;
+
+TYPE
+   userset = SET OF CHAR ;
+VAR
+   set: userset ;
+BEGIN
+   set := set {}
+END badset2.
diff --git a/gcc/testsuite/gm2/iso/fail/badset3.mod 
b/gcc/testsuite/gm2/iso/fail/badset3.mod
new file mode 100644
index 00000000000..29131ff4c5a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badset3.mod
@@ -0,0 +1,9 @@
+MODULE badset3 ;
+
+TYPE
+   userset = SET OF CHAR ;
+VAR
+   set: userset ;
+BEGIN
+   set := unknown {}
+END badset3.

Reply via email to