Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Unify.cpp

    r81e768d rb6f2e7ab  
    292292                if ( !array2 ) return;
    293293
    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 ) {
     294                if ( array->isVarLen != array2->isVarLen ) return;
     295                if ( (array->dimension != nullptr) != (array2->dimension != nullptr) ) return;
     296
     297                if ( array->dimension ) {
    304298                        assert( array2->dimension );
    305299                        // type unification calls expression unification (mutual recursion)
Note: See TracChangeset for help on using the changeset viewer.