Signed-off-by: Jose E. Marchesi <[email protected]>

gcc/algol68/ChangeLog

        * a68-low.cc (a68_demangle_symbol): Fix typo, 'p' is the mangling
        of '%', not of '+'.

gcc/testsuite/ChangeLog

        * algol68/execute/modules/module1.a68: Add an operator %.
        * algol68/execute/modules/program-1.a68: Use operator %.
---
 gcc/algol68/a68-low.cc                              | 2 +-
 gcc/testsuite/algol68/execute/modules/module1.a68   | 2 ++
 gcc/testsuite/algol68/execute/modules/program-1.a68 | 3 +++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gcc/algol68/a68-low.cc b/gcc/algol68/a68-low.cc
index 83c740cc774..de7f21dc910 100644
--- a/gcc/algol68/a68-low.cc
+++ b/gcc/algol68/a68-low.cc
@@ -207,7 +207,7 @@ a68_demangle_symbol (const char *mname, const char *symbol,
        {
          switch (symbol[i])
            {
-           case 'p': demangled[o++] = '+'; break;
+           case 'p': demangled[o++] = '%'; break;
            case 'c': demangled[o++] = '^'; break;
            case 'a': demangled[o++] = '&'; break;
            case 'u': demangled[o++] = '+'; break;
diff --git a/gcc/testsuite/algol68/execute/modules/module1.a68 
b/gcc/testsuite/algol68/execute/modules/module1.a68
index 7fad6e54cf7..c3e249710b8 100644
--- a/gcc/testsuite/algol68/execute/modules/module1.a68
+++ b/gcc/testsuite/algol68/execute/modules/module1.a68
@@ -3,6 +3,8 @@ def
     pub mode MyInt = int, MyOtherInt = int;
     pub int beast_number := 666, angelic_number := 777;
     pub string who = "jemarch", whoelse = "pietro";
+    pub mode SomeStruct = struct (int a,b);
+    pub op % = (SomeStruct a,b) SomeStruct: (10, 20);
     puts ("Hello from module'n")
 postlude
     puts ("Bye from module'n")
diff --git a/gcc/testsuite/algol68/execute/modules/program-1.a68 
b/gcc/testsuite/algol68/execute/modules/program-1.a68
index 4b3616b743e..ccff2a0f598 100644
--- a/gcc/testsuite/algol68/execute/modules/program-1.a68
+++ b/gcc/testsuite/algol68/execute/modules/program-1.a68
@@ -15,6 +15,9 @@ begin string je = access Module1 begin who end;
       assert (aa = "jemarch");
       assert (bb = "jemarch");
       assert (cc = "jemarch");
+      SomeStruct u,v;
+      SomeStruct z = u%v;
+      assert (a'z = 10 AND b'z = 20);
       access Module1 to 1 do assert (who = "jemarch" AND whoelse = "pietro") 
od;
       access Module1 (assert (beast_number = 666 AND angelic_number = 777));
       access Module1 (MyInt a = 1; MyOtherInt b = 1; assert (a + b = 2))
-- 
2.39.5

Reply via email to