Ignore:
Timestamp:
Dec 1, 2024, 9:04:12 PM (10 months ago)
Author:
JiadaL <j82liang@…>
Branches:
master
Children:
eae8b37
Parents:
3e2e9b2 (diff), 1c0a3a4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Unify.cpp

    r3e2e9b2 r509ec82  
    292292                if ( !array2 ) return;
    293293
    294                 if ( array->isVarLen != array2->isVarLen ) return;
    295                 if ( (array->dimension != nullptr) != (array2->dimension != nullptr) ) return;
    296 
    297                 if ( array->dimension ) {
     294                // Permit cases where one side has a dimension or isVarLen,
     295                // while the other side is the opposite.
     296                // Acheves a wildcard-iterpretation semantics, where lack of
     297                // dimension (`float a[]` or `float a[25][*]`) means
     298                // "anything here is fine."
     299                // Sole known case where a verbatim-match semantics is intended
     300                // is typedef redefinition, for which extra checking is added
     301                // in src/Validate/ReplaceTypedef.cpp.
     302
     303                if ( array->dimension && array2->dimension ) {
    298304                        assert( array2->dimension );
    299305                        // type unification calls expression unification (mutual recursion)
Note: See TracChangeset for help on using the changeset viewer.