https://gcc.gnu.org/g:66fad1a77fa71fe4a81f50f117c93c829d39558b
commit r17-1538-g66fad1a77fa71fe4a81f50f117c93c829d39558b Author: Jose E. Marchesi <[email protected]> Date: Sun Jun 14 00:27:45 2026 +0200 a68: fix typo in a68_demangle_symbol 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 %. Diff: --- 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 83c740cc774c..de7f21dc9108 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 7fad6e54cf70..c3e249710b86 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 4b3616b743e3..ccff2a0f5988 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))
