Changeset 3780 in CLRX


Ignore:
Timestamp:
Feb 13, 2018, 2:54:21 PM (17 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmExpr?: Set tryLater while comparing relatives (withSection, if not prepared yet and relatives has relSpaces).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/AsmExpression.cpp

    r3779 r3780  
    152152            std::vector<RelMultiply>& relatives,
    153153            const Array<RelMultiply>& relatives2, bool withSectionDiffs,
    154             bool sectDiffsPrepared)
     154            bool sectDiffsPrepared, bool& tryLater)
    155155{
    156156    if (!withSectionDiffs || sectDiffsPrepared) // otherwise is not equal
     
    169169                     { return sections[r.sectionId].relSpace == UINT_MAX; });
    170170        // now compare
    171         return checkRelativesEqualityInt(orels1, orels2);
     171        bool equal = checkRelativesEqualityInt(orels1, orels2);
     172        if (equal && (orels1.size()!=relatives.size() || orels2.size()!=relatives2.size()))
     173            tryLater = true;
     174        return equal;
    172175    }
    173176}
     
    717720                    {
    718721                        if (!checkRelativesEquality(assembler, relatives, relatives2,
    719                                     withSectionDiffs, sectDiffsPrepared))
     722                                    withSectionDiffs, sectDiffsPrepared, tryLater))
    720723                            ASMX_FAILED_BY_ERROR(sourcePos, "For comparisons "
    721724                                        "two values must have this same relatives!")
    722                         else if (withSectionDiffs && !sectDiffsPrepared)
    723                             tryLater = true; // must be evaluated later
    724725                        relatives.clear();
    725726                        switch(op)
Note: See TracChangeset for help on using the changeset viewer.