GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
algol68

a68: Fix regression in are_modes_equivalent

Corrects a regression in the Algol-68 compiler that caused incorrect mode equivalence checks.

This commit fixes a regression in the Algol-68 compiler’s mode equivalence checking. The function are_modes_equivalent was incorrectly comparing ‘INDICANTs’ as strings, leading to false negatives in mode equivalence. The fix involves changing this comparison to avoid string comparisons for INDICANTs, restoring correct behavior and passing a new test case.

In Details

The Algol-68 front-end regression, identified as a problem in a68-parser-moids-equivalence.cc's are_modes_equivalent function, stemmed from incorrectly string-comparing 'INDICANTs'. This function is responsible for determining if two modes are equivalent. The fix involves altering the comparison logic to avoid treating INDICANTs as strings, which should restore correct mode equivalence detection and address the identified regression.

For Context
Algol-68
A historically significant imperative programming language known for its powerful type system and innovative features, influencing many later languages.
mode
In Algol-68, 'mode' is the term for a type.
INDICANT
A specific construct or type within Algol-68, likely related to a form of dereferencing or indirection.
regression
A bug that reappears after being fixed, or a change that causes previously working functionality to break.
Filed Under: algol68compilerregressionbugfix