[cfe-dev] Patch: Implement break and continue
Chris Lattner
clattner at apple.com
Sun Jul 15 22:02:18 PDT 2007
On Jul 15, 2007, at 9:05 PM, Anders Carlsson wrote:
> Hello,
> here's a patch that implements break and continue in for, while and
> do loops.
>
> Since this is my first encounter ever with LLVM and cfe, the patch
> could very well be completely wrong :) I'd love any feedback it
> though.
I have to say that this is *not* how I envisioned implementing this:
it's actually a much better approach.
Overall, I really like the patch. Some suggestions:
1. Instead of having separate break/continue stacks, I'd suggest
merging them and using a SmallVector<std::pair> (or a custom struct
instead of a pair if you prefer). For switch stmts (when we support
them), we'd just use null as the continue point.
2. Two minor style issues:
+void CodeGenFunction::EmitBreakStmt()
+{
Please put the { on the same line as the function.
+ assert(!BreakStack.empty());
Please include some sort of message in the assert so that we know
"why" that condition should be true. This doesn't need to be
something particularly deep, just something like this should be
sufficient:
+ assert(!BreakStack.empty() && "break stmt not in a loop or
switch?");
3. Some extremely minor typographic stuff:
Minor typo: "foo":
+ // If the foor loop doesn't have an increment we can just use the
Please end sentences with a period: :)
+ // If the foor loop doesn't have an increment we can just use the
+ // condition as the continue block
Otherwise the patch looks great. Please update and resubmit, (not
bad for a first encounter ;-)
-Chris
More information about the cfe-dev
mailing list