Author: Sander de Smalen Date: 2021-01-25T11:26:56Z New Revision: d196f9e2fca3ff767aa7d2dcaf4654724a79e18c
URL: https://github.com/llvm/llvm-project/commit/d196f9e2fca3ff767aa7d2dcaf4654724a79e18c DIFF: https://github.com/llvm/llvm-project/commit/d196f9e2fca3ff767aa7d2dcaf4654724a79e18c.diff LOG: [InstructionCost] Prevent InstructionCost being created with CostState. For a function that returns InstructionCost, it is very tempting to write: return InstructionCost::Invalid; But that actually returns InstructionCost(1 /* int value of Invalid */)) which has a totally different meaning. By marking this constructor as `delete`, this can no longer happen. Added: Modified: llvm/include/llvm/Support/InstructionCost.h Removed: ################################################################################ diff --git a/llvm/include/llvm/Support/InstructionCost.h b/llvm/include/llvm/Support/InstructionCost.h index 725f8495ac09..fbc898b878bb 100644 --- a/llvm/include/llvm/Support/InstructionCost.h +++ b/llvm/include/llvm/Support/InstructionCost.h @@ -47,6 +47,7 @@ class InstructionCost { public: InstructionCost() = default; + InstructionCost(CostState) = delete; InstructionCost(CostType Val) : Value(Val), State(Valid) {} static InstructionCost getInvalid(CostType Val = 0) { _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits