Skip to content

Commit 82e8707

Browse files
committed
Fix code gen for operator= with single-statement body
Encapsulate `current_functions` for lifetime safety... otherwise nested functions can invalidate epilog references before we can use them
1 parent 51851c8 commit 82e8707

8 files changed

+123
-92
lines changed

regression-tests/test-results/clang-12/mixed-float-literals.cpp.output

Lines changed: 17 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -164,78 +164,54 @@ mixed-float-literals.cpp2:74:3: warning: expression result unused [-Wunused-valu
164164
123'456.0f;
165165
^~~~~~~~~~
166166
mixed-float-literals.cpp2:75:3: warning: expression result unused [-Wunused-value]
167-
123'456.f;
168-
^~~~~~~~~
169-
mixed-float-literals.cpp2:76:3: warning: expression result unused [-Wunused-value]
170167
456.0;
171168
^~~~~
172-
mixed-float-literals.cpp2:77:3: warning: expression result unused [-Wunused-value]
173-
456.;
174-
^~~~
175-
mixed-float-literals.cpp2:78:3: warning: expression result unused [-Wunused-value]
169+
mixed-float-literals.cpp2:76:3: warning: expression result unused [-Wunused-value]
176170
1.0e10;
177171
^~~~~~
178-
mixed-float-literals.cpp2:79:3: warning: expression result unused [-Wunused-value]
172+
mixed-float-literals.cpp2:77:3: warning: expression result unused [-Wunused-value]
179173
1.0e+10;
180174
^~~~~~~
181-
mixed-float-literals.cpp2:80:3: warning: expression result unused [-Wunused-value]
175+
mixed-float-literals.cpp2:78:3: warning: expression result unused [-Wunused-value]
182176
1.0e-10;
183177
^~~~~~~
184-
mixed-float-literals.cpp2:81:3: warning: expression result unused [-Wunused-value]
178+
mixed-float-literals.cpp2:79:3: warning: expression result unused [-Wunused-value]
185179
1.0e-10f;
186180
^~~~~~~~
187-
mixed-float-literals.cpp2:82:3: warning: expression result unused [-Wunused-value]
188-
1.e-10;
189-
^~~~~~
190-
mixed-float-literals.cpp2:83:3: warning: expression result unused [-Wunused-value]
191-
1.e-10f;
192-
^~~~~~~
193-
mixed-float-literals.cpp2:84:3: warning: expression result unused [-Wunused-value]
181+
mixed-float-literals.cpp2:80:3: warning: expression result unused [-Wunused-value]
194182
1e-10;
195183
^~~~~
196-
mixed-float-literals.cpp2:85:3: warning: expression result unused [-Wunused-value]
184+
mixed-float-literals.cpp2:81:3: warning: expression result unused [-Wunused-value]
197185
1e-10f;
198186
^~~~~~
199-
mixed-float-literals.cpp2:86:3: warning: expression result unused [-Wunused-value]
187+
mixed-float-literals.cpp2:82:3: warning: expression result unused [-Wunused-value]
200188
1e-1'0;
201189
^~~~~~
202-
mixed-float-literals.cpp2:87:3: warning: expression result unused [-Wunused-value]
190+
mixed-float-literals.cpp2:83:3: warning: expression result unused [-Wunused-value]
203191
123'456.0F;
204192
^~~~~~~~~~
205-
mixed-float-literals.cpp2:88:3: warning: expression result unused [-Wunused-value]
206-
123'456.F;
207-
^~~~~~~~~
208-
mixed-float-literals.cpp2:89:3: warning: expression result unused [-Wunused-value]
193+
mixed-float-literals.cpp2:84:3: warning: expression result unused [-Wunused-value]
209194
456.0;
210195
^~~~~
211-
mixed-float-literals.cpp2:90:3: warning: expression result unused [-Wunused-value]
212-
456.;
213-
^~~~
214-
mixed-float-literals.cpp2:91:3: warning: expression result unused [-Wunused-value]
196+
mixed-float-literals.cpp2:85:3: warning: expression result unused [-Wunused-value]
215197
1.0E10;
216198
^~~~~~
217-
mixed-float-literals.cpp2:92:3: warning: expression result unused [-Wunused-value]
199+
mixed-float-literals.cpp2:86:3: warning: expression result unused [-Wunused-value]
218200
1.0E+10;
219201
^~~~~~~
220-
mixed-float-literals.cpp2:93:3: warning: expression result unused [-Wunused-value]
202+
mixed-float-literals.cpp2:87:3: warning: expression result unused [-Wunused-value]
221203
1.0E-10;
222204
^~~~~~~
223-
mixed-float-literals.cpp2:94:3: warning: expression result unused [-Wunused-value]
205+
mixed-float-literals.cpp2:88:3: warning: expression result unused [-Wunused-value]
224206
1.0E-10F;
225207
^~~~~~~~
226-
mixed-float-literals.cpp2:95:3: warning: expression result unused [-Wunused-value]
227-
1.E-10;
228-
^~~~~~
229-
mixed-float-literals.cpp2:96:3: warning: expression result unused [-Wunused-value]
230-
1.E-10F;
231-
^~~~~~~
232-
mixed-float-literals.cpp2:97:3: warning: expression result unused [-Wunused-value]
208+
mixed-float-literals.cpp2:89:3: warning: expression result unused [-Wunused-value]
233209
1E-10;
234210
^~~~~
235-
mixed-float-literals.cpp2:98:3: warning: expression result unused [-Wunused-value]
211+
mixed-float-literals.cpp2:90:3: warning: expression result unused [-Wunused-value]
236212
1E-10F;
237213
^~~~~~
238-
mixed-float-literals.cpp2:99:3: warning: expression result unused [-Wunused-value]
214+
mixed-float-literals.cpp2:91:3: warning: expression result unused [-Wunused-value]
239215
1E-1'0;
240216
^~~~~~
241-
80 warnings generated.
217+
72 warnings generated.

regression-tests/test-results/mixed-multiple-return-values.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,5 @@ bool flip_a_coin() {
5555
}
5656

5757
auto print(cpp2::in<std::string> name, auto const& value) -> void {
58-
std::cout << name << " is " << value << "\n"; }
58+
std::cout << name << " is " << value << "\n"; }
5959

regression-tests/test-results/pure2-types-smf-and-that-1-provide-everything.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class myclass {
7474
cpp2::in<std::string_view> prefix,
7575
cpp2::in<std::string_view> suffix
7676
) const -> void {
77-
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
77+
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
7878

7979
};
8080

regression-tests/test-results/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class myclass {
7979
cpp2::in<std::string_view> prefix,
8080
cpp2::in<std::string_view> suffix
8181
) const -> void {
82-
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
82+
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
8383

8484
};
8585

regression-tests/test-results/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class myclass {
7878
cpp2::in<std::string_view> prefix,
7979
cpp2::in<std::string_view> suffix
8080
) const -> void {
81-
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
81+
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
8282

8383
};
8484

regression-tests/test-results/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class myclass {
7878
cpp2::in<std::string_view> prefix,
7979
cpp2::in<std::string_view> suffix
8080
) const -> void {
81-
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
81+
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
8282

8383
};
8484

regression-tests/test-results/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class myclass {
8686
cpp2::in<std::string_view> prefix,
8787
cpp2::in<std::string_view> suffix
8888
) const -> void {
89-
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
89+
std::cout << prefix << "[ " + cpp2::to_string(name) + " | " + cpp2::to_string(addr) + " ]" << suffix; }
9090

9191
};
9292

0 commit comments

Comments
 (0)