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