Skip to content

Commit 1076a7a

Browse files
committed
Avoid compiler warnings about unused break/continue labels
1 parent 8609922 commit 1076a7a

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

include/cpp2util.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,8 @@
227227

228228
#define CPP2_TYPEOF(x) std::remove_cvref_t<decltype(x)>
229229
#define CPP2_FORWARD(x) std::forward<decltype(x)>(x)
230-
#define CPP2_BREAK_CONTINUE(NAME) goto CONTINUE_##NAME; BREAK_##NAME: break; CONTINUE_##NAME: continue;
230+
#define CPP2_CONTINUE_BREAK(NAME) goto CONTINUE_##NAME; CONTINUE_##NAME: continue; goto BREAK_##NAME; BREAK_##NAME: break;
231+
// these redundant goto's to avoid 'unused label' warnings
231232

232233

233234
namespace cpp2 {

regression-tests/test-results/pure2-break-continue.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ auto while_continue_inner() -> void
6363
goto CONTINUE_25_9;
6464
}
6565
std::cout << "inner ";
66-
} CPP2_BREAK_CONTINUE(25_9) }
66+
} CPP2_CONTINUE_BREAK(25_9) }
6767
std::cout << "outer ";
68-
} CPP2_BREAK_CONTINUE(23_5) }
68+
} CPP2_CONTINUE_BREAK(23_5) }
6969
}
7070

7171
auto while_continue_outer() -> void
@@ -79,9 +79,9 @@ auto while_continue_outer() -> void
7979
goto CONTINUE_39_5;
8080
}
8181
std::cout << "inner ";
82-
} CPP2_BREAK_CONTINUE(41_9) }
82+
} CPP2_CONTINUE_BREAK(41_9) }
8383
std::cout << "outer ";
84-
} CPP2_BREAK_CONTINUE(39_5) }
84+
} CPP2_CONTINUE_BREAK(39_5) }
8585
}
8686

8787
auto while_break_inner() -> void
@@ -95,9 +95,9 @@ auto while_break_inner() -> void
9595
goto BREAK_57_9;
9696
}
9797
std::cout << "inner ";
98-
} CPP2_BREAK_CONTINUE(57_9) }
98+
} CPP2_CONTINUE_BREAK(57_9) }
9999
std::cout << "outer ";
100-
} CPP2_BREAK_CONTINUE(55_5) }
100+
} CPP2_CONTINUE_BREAK(55_5) }
101101
}
102102

103103
auto while_break_outer() -> void
@@ -111,9 +111,9 @@ auto while_break_outer() -> void
111111
goto BREAK_71_5;
112112
}
113113
std::cout << "inner ";
114-
} CPP2_BREAK_CONTINUE(73_9) }
114+
} CPP2_CONTINUE_BREAK(73_9) }
115115
std::cout << "outer ";
116-
} CPP2_BREAK_CONTINUE(71_5) }
116+
} CPP2_CONTINUE_BREAK(71_5) }
117117
}
118118

119119
auto do_continue_inner() -> void
@@ -127,11 +127,11 @@ auto do_continue_inner() -> void
127127
goto CONTINUE_89_9;
128128
}
129129
std::cout << "inner ";
130-
} CPP2_BREAK_CONTINUE(89_9) } while (
130+
} CPP2_CONTINUE_BREAK(89_9) } while (
131131
cpp2::cmp_less(j,3) && [&]{ ++j ; return true; }() );
132132

133133
std::cout << "outer ";
134-
} CPP2_BREAK_CONTINUE(87_5) } while (
134+
} CPP2_CONTINUE_BREAK(87_5) } while (
135135
cpp2::cmp_less(i,3) && [&]{ ++i ; return true; }() );
136136
}
137137

@@ -146,11 +146,11 @@ auto do_continue_outer() -> void
146146
goto CONTINUE_106_5;
147147
}
148148
std::cout << "inner ";
149-
} CPP2_BREAK_CONTINUE(108_9) } while (
149+
} CPP2_CONTINUE_BREAK(108_9) } while (
150150
cpp2::cmp_less(j,3) && [&]{ ++j ; return true; }() );
151151

152152
std::cout << "outer ";
153-
} CPP2_BREAK_CONTINUE(106_5) } while (
153+
} CPP2_CONTINUE_BREAK(106_5) } while (
154154
cpp2::cmp_less(i,3) && [&]{ ++i ; return true; }() );
155155
}
156156

@@ -165,11 +165,11 @@ auto do_break_inner() -> void
165165
goto BREAK_127_9;
166166
}
167167
std::cout << "inner ";
168-
} CPP2_BREAK_CONTINUE(127_9) } while (
168+
} CPP2_CONTINUE_BREAK(127_9) } while (
169169
cpp2::cmp_less(j,3) && [&]{ ++j ; return true; }() );
170170

171171
std::cout << "outer ";
172-
} CPP2_BREAK_CONTINUE(125_5) } while (
172+
} CPP2_CONTINUE_BREAK(125_5) } while (
173173
cpp2::cmp_less(i,3) && [&]{ ++i ; return true; }() );
174174
}
175175

@@ -184,11 +184,11 @@ auto do_break_outer() -> void
184184
goto BREAK_144_5;
185185
}
186186
std::cout << "inner ";
187-
} CPP2_BREAK_CONTINUE(146_9) } while (
187+
} CPP2_CONTINUE_BREAK(146_9) } while (
188188
cpp2::cmp_less(j,3) && [&]{ ++j ; return true; }() );
189189

190190
std::cout << "outer ";
191-
} CPP2_BREAK_CONTINUE(144_5) } while (
191+
} CPP2_CONTINUE_BREAK(144_5) } while (
192192
cpp2::cmp_less(i,3) && [&]{ ++i ; return true; }() );
193193
}
194194

@@ -204,10 +204,10 @@ auto for_continue_inner() -> void
204204
goto CONTINUE_166_9;
205205
}
206206
std::cout << "inner ";
207-
} CPP2_BREAK_CONTINUE(166_9) }
207+
} CPP2_CONTINUE_BREAK(166_9) }
208208

209209
std::cout << "outer ";
210-
} while (false); ++counter; } CPP2_BREAK_CONTINUE(164_5) }
210+
} while (false); ++counter; } CPP2_CONTINUE_BREAK(164_5) }
211211
}
212212

213213
auto for_continue_outer() -> void
@@ -222,10 +222,10 @@ auto for_continue_outer() -> void
222222
goto CONTINUE_182_5;
223223
}
224224
std::cout << "inner ";
225-
} CPP2_BREAK_CONTINUE(184_9) }
225+
} CPP2_CONTINUE_BREAK(184_9) }
226226

227227
std::cout << "outer ";
228-
} while (false); ++counter; } CPP2_BREAK_CONTINUE(182_5) }
228+
} while (false); ++counter; } CPP2_CONTINUE_BREAK(182_5) }
229229
}
230230

231231
auto for_break_inner() -> void
@@ -240,10 +240,10 @@ auto for_break_inner() -> void
240240
goto BREAK_202_9;
241241
}
242242
std::cout << "inner ";
243-
} CPP2_BREAK_CONTINUE(202_9) }
243+
} CPP2_CONTINUE_BREAK(202_9) }
244244

245245
std::cout << "outer ";
246-
} while (false); ++counter; } CPP2_BREAK_CONTINUE(200_5) }
246+
} while (false); ++counter; } CPP2_CONTINUE_BREAK(200_5) }
247247
}
248248

249249
auto for_break_outer() -> void
@@ -258,9 +258,9 @@ auto for_break_outer() -> void
258258
goto BREAK_218_5;
259259
}
260260
std::cout << "inner ";
261-
} CPP2_BREAK_CONTINUE(220_9) }
261+
} CPP2_CONTINUE_BREAK(220_9) }
262262

263263
std::cout << "outer ";
264-
} while (false); ++counter; } CPP2_BREAK_CONTINUE(218_5) }
264+
} while (false); ++counter; } CPP2_CONTINUE_BREAK(218_5) }
265265
}
266266

source/cppfront.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,7 +1501,7 @@ class cppfront
15011501
}
15021502
emit(*n.statement);
15031503
if (!labelname.empty()) {
1504-
printer.print_extra(" CPP2_BREAK_CONTINUE("+labelname+") }");
1504+
printer.print_extra(" CPP2_CONTINUE_BREAK("+labelname+") }");
15051505
}
15061506

15071507
in_non_rvalue_context.pop_back();
@@ -1518,7 +1518,7 @@ class cppfront
15181518
}
15191519
emit(*n.statement);
15201520
if (!labelname.empty()) {
1521-
printer.print_extra(" CPP2_BREAK_CONTINUE("+labelname+") }");
1521+
printer.print_extra(" CPP2_CONTINUE_BREAK("+labelname+") }");
15221522
}
15231523
printer.print_cpp2(" while ( ", n.position());
15241524
emit(*n.condition);
@@ -1566,7 +1566,7 @@ class cppfront
15661566

15671567
printer.print_cpp2("", n.position());
15681568
if (!labelname.empty()) {
1569-
printer.print_extra(" CPP2_BREAK_CONTINUE("+labelname+") }");
1569+
printer.print_extra(" CPP2_CONTINUE_BREAK("+labelname+") }");
15701570
}
15711571

15721572
in_non_rvalue_context.pop_back();

0 commit comments

Comments
 (0)