================
@@ -1482,3 +1482,10 @@ bool CapturedStmt::capturesVariable(const VarDecl *Var) 
const {
 
   return false;
 }
+
+Stmt *LoopControlStmt::getLabelTarget() const {
+  Stmt *Target = TargetLabel->getStmt();
+  while (isa_and_present<LabelStmt>(Target))
+    Target = cast<LabelStmt>(Target)->getSubStmt();
+  return Target;
----------------
erichkeane wrote:

The name similarity between `TargetLabel` (which stores the label) and 
`LabelTarget` is pretty confusing/awkward.  It seems that this is attempting to 
get the control statement kind that this refers to, right?  So the 
`for`/`while`/`switch`/etc?

I wonder if INSTEAD this should JUST return the `TargetLabel`, and add a 
function to `LabelStmt` that is `getInnermostLabeledStmt` or something (choose 
a better name).  This way it is more clear what is actually going on here (this 
is/was quite confusing for me so far).

https://github.com/llvm/llvm-project/pull/152870
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to