Skip to content

Commit 31914a8

Browse files
authored
Merge pull request #62692 from valeriyvan/AliasAnalysis.cpp
[Gardening] Simplify excessive conditional expression: (A && !B) || (!A && B) is equivalent to bool(A) != bool(B)
2 parents 3720257 + 3b3ad1f commit 31914a8

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/SILOptimizer/Analysis/AliasAnalysis.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -471,24 +471,24 @@ static bool typedAccessTBAAMayAlias(SILType LTy, SILType RTy,
471471
// Tuples do not alias non-tuples.
472472
bool LTyTT = LTy.is<TupleType>();
473473
bool RTyTT = RTy.is<TupleType>();
474-
if ((LTyTT && !RTyTT) || (!LTyTT && RTyTT))
474+
if (LTyTT != RTyTT)
475475
return false;
476476

477477
// Structs do not alias non-structs.
478478
StructDecl *LTyStruct = LTy.getStructOrBoundGenericStruct();
479479
StructDecl *RTyStruct = RTy.getStructOrBoundGenericStruct();
480-
if ((LTyStruct && !RTyStruct) || (!LTyStruct && RTyStruct))
480+
if ((LTyStruct != nullptr) != (RTyStruct != nullptr))
481481
return false;
482482

483483
// Enums do not alias non-enums.
484484
EnumDecl *LTyEnum = LTy.getEnumOrBoundGenericEnum();
485485
EnumDecl *RTyEnum = RTy.getEnumOrBoundGenericEnum();
486-
if ((LTyEnum && !RTyEnum) || (!LTyEnum && RTyEnum))
486+
if ((LTyEnum != nullptr) != (RTyEnum != nullptr))
487487
return false;
488488

489489
// Classes do not alias non-classes.
490490
ClassDecl *RTyClass = RTy.getClassOrBoundGenericClass();
491-
if ((LTyClass && !RTyClass) || (!LTyClass && RTyClass))
491+
if ((LTyClass != nullptr) != (RTyClass != nullptr))
492492
return false;
493493

494494
// Classes with separate class hierarchies do not alias.

0 commit comments

Comments
 (0)