martong added a comment.

Actually, you already have a logic for checking if there is a contradiction in 
your D103096 <https://reviews.llvm.org/D103096> patch, in 
ConstraintAssignor::updateExistingConstraints:

  // Update constraints in the map which bitwidth is equal or lower then
  // `MinBitWidth`.
  if (CM) {
    for (auto &Item : *CM) {
      // Stop after reaching a bigger bitwidth.
      if (Item.first > MinBitWidth)
        break;
      RangeSet RS = RangeFactory.intersect(Item.second, CastTo(Item.first));
      // If the intersection is empty, then the branch is infisible.
      if (RS.isEmpty()) {
        State = nullptr;
        return false;
      }
      NewCM = CMF.add(NewCM, Item.first, RS);
    }
  }

So, the intersection should be empty in the above mentioned ambiguous case, 
shouldn't' it?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126481/new/

https://reviews.llvm.org/D126481

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to