tweak local_size comparison a bit (#2456)

no longer causes an incorrect error if the current unit has local_size
set, but the incoming unit does not
This commit is contained in:
Malcolm Bechard 2020-11-12 15:55:50 -05:00 committed by GitHub
parent fb53f83503
commit beec2e4a7c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -196,12 +196,14 @@ void TIntermediate::mergeModes(TInfoSink& infoSink, TIntermediate& unit)
MERGE_TRUE(pointMode);
for (int i = 0; i < 3; ++i) {
if (!localSizeNotDefault[i] && unit.localSizeNotDefault[i]) {
localSize[i] = unit.localSize[i];
localSizeNotDefault[i] = true;
if (unit.localSizeNotDefault[i]) {
if (!localSizeNotDefault[i]) {
localSize[i] = unit.localSize[i];
localSizeNotDefault[i] = true;
}
else if (localSize[i] != unit.localSize[i])
error(infoSink, "Contradictory local size");
}
else if (localSize[i] != unit.localSize[i])
error(infoSink, "Contradictory local size");
if (localSizeSpecId[i] == TQualifier::layoutNotSet)
localSizeSpecId[i] = unit.localSizeSpecId[i];