@@ -163,17 +163,20 @@ def g():
163163 r5 :: str
164164 r6 :: object
165165 r7 :: str
166- r8, r9 :: object
167- r10 :: bit
168- r11 :: None
166+ r8 :: object
167+ r9 :: object[1]
168+ r10 :: object_ptr
169+ r11 :: object
170+ r12 :: bit
171+ r13 :: None
169172L0:
170173L1:
171174 r0 = builtins :: module
172175 r1 = 'object'
173176 r2 = CPyObject_GetAttr(r0, r1)
174177 if is_error(r2) goto L3 (error at g:3) else goto L2
175178L2:
176- r3 = PyObject_CallFunctionObjArgs (r2, 0)
179+ r3 = PyObject_Vectorcall (r2, 0, 0 , 0)
177180 dec_ref r2
178181 if is_error(r3) goto L3 (error at g:3) else goto L10
179182L3:
@@ -184,30 +187,32 @@ L3:
184187 r8 = CPyObject_GetAttr(r6, r7)
185188 if is_error(r8) goto L6 (error at g:5) else goto L4
186189L4:
187- r9 = PyObject_CallFunctionObjArgs(r8, r5, 0)
190+ r9 = [r5]
191+ r10 = load_address r9
192+ r11 = PyObject_Vectorcall(r8, r10, 1, 0)
188193 dec_ref r8
189- if is_error(r9 ) goto L6 (error at g:5) else goto L11
194+ if is_error(r11 ) goto L6 (error at g:5) else goto L11
190195L5:
191196 CPy_RestoreExcInfo(r4)
192197 dec_ref r4
193198 goto L8
194199L6:
195200 CPy_RestoreExcInfo(r4)
196201 dec_ref r4
197- r10 = CPy_KeepPropagating()
198- if not r10 goto L9 else goto L7 :: bool
202+ r12 = CPy_KeepPropagating()
203+ if not r12 goto L9 else goto L7 :: bool
199204L7:
200205 unreachable
201206L8:
202207 return 1
203208L9:
204- r11 = <error> :: None
205- return r11
209+ r13 = <error> :: None
210+ return r13
206211L10:
207212 dec_ref r3
208213 goto L8
209214L11:
210- dec_ref r9
215+ dec_ref r11
211216 goto L5
212217
213218[case testGenopsTryFinally]
@@ -229,17 +234,20 @@ def a():
229234 r10 :: str
230235 r11 :: object
231236 r12 :: str
232- r13, r14 :: object
233- r15 :: bit
234- r16 :: str
237+ r13 :: object
238+ r14 :: object[1]
239+ r15 :: object_ptr
240+ r16 :: object
241+ r17 :: bit
242+ r18 :: str
235243L0:
236244L1:
237245 r0 = builtins :: module
238246 r1 = 'print'
239247 r2 = CPyObject_GetAttr(r0, r1)
240248 if is_error(r2) goto L5 (error at a:3) else goto L2
241249L2:
242- r3 = PyObject_CallFunctionObjArgs (r2, 0)
250+ r3 = PyObject_Vectorcall (r2, 0, 0 , 0)
243251 dec_ref r2
244252 if is_error(r3) goto L5 (error at a:3) else goto L19
245253L3:
262270 r13 = CPyObject_GetAttr(r11, r12)
263271 if is_error(r13) goto L20 (error at a:6) else goto L7
264272L7:
265- r14 = PyObject_CallFunctionObjArgs(r13, r10, 0)
273+ r14 = [r10]
274+ r15 = load_address r14
275+ r16 = PyObject_Vectorcall(r13, r15, 1, 0)
266276 dec_ref r13
267- if is_error(r14 ) goto L20 (error at a:6) else goto L21
277+ if is_error(r16 ) goto L20 (error at a:6) else goto L21
268278L8:
269279 if is_error(r7) goto L11 else goto L22
270280L9:
@@ -282,23 +292,23 @@ L14:
282292 CPy_RestoreExcInfo(r7)
283293 xdec_ref r7
284294L15:
285- r15 = CPy_KeepPropagating()
286- if not r15 goto L18 else goto L16 :: bool
295+ r17 = CPy_KeepPropagating()
296+ if not r17 goto L18 else goto L16 :: bool
287297L16:
288298 unreachable
289299L17:
290300 unreachable
291301L18:
292- r16 = <error> :: str
293- return r16
302+ r18 = <error> :: str
303+ return r18
294304L19:
295305 dec_ref r3
296306 goto L3
297307L20:
298308 xdec_ref r5
299309 goto L13
300310L21:
301- dec_ref r14
311+ dec_ref r16
302312 goto L8
303313L22:
304314 xdec_ref r5
@@ -446,59 +456,71 @@ def f(b):
446456 r6 :: str
447457 r7 :: object
448458 r8 :: bool
449- r9 :: object
450- r10 :: None
459+ r9 :: object[1]
460+ r10 :: object_ptr
461+ r11 :: object
462+ r12 :: bool
463+ r13 :: None
451464L0:
452465 r0 = <error> :: str
453466 v = r0
454467 r1 = 'a'
455468 inc_ref r1
456469 u = r1
457470L1:
458- if b goto L10 else goto L11 :: bool
471+ if b goto L13 else goto L14 :: bool
459472L2:
460473 r2 = 'b'
461474 inc_ref r2
462475 v = r2
463476 r3 = v == u
464477 r4 = r3 ^ 1
465- if r4 goto L11 else goto L1 :: bool
478+ if r4 goto L14 else goto L1 :: bool
466479L3:
467480 r5 = builtins :: module
468481 r6 = 'print'
469482 r7 = CPyObject_GetAttr(r5, r6)
470- if is_error(r7) goto L12 (error at f:7) else goto L4
483+ if is_error(r7) goto L15 (error at f:7) else goto L4
471484L4:
472- if is_error(v) goto L13 else goto L7
485+ if is_error(v) goto L16 else goto L7
473486L5:
474487 r8 = raise UnboundLocalError('local variable "v" referenced before assignment')
475- if not r8 goto L9 (error at f:7 ) else goto L6 :: bool
488+ if not r8 goto L12 (error at f:-1 ) else goto L6 :: bool
476489L6:
477490 unreachable
478491L7:
479- r9 = PyObject_CallFunctionObjArgs(r7, v, 0)
492+ r9 = [v]
493+ r10 = load_address r9
494+ r11 = PyObject_Vectorcall(r7, r10, 1, 0)
480495 dec_ref r7
481- xdec_ref v
482- if is_error(r9) goto L9 (error at f:7) else goto L14
496+ if is_error(r11) goto L15 (error at f:7) else goto L17
483497L8:
484- return 1
498+ if is_error(v) goto L9 else goto L11
485499L9:
486- r10 = <error> :: None
487- return r10
500+ r12 = raise UnboundLocalError('local variable "v" referenced before assignment')
501+ if not r12 goto L12 (error at f:-1) else goto L10 :: bool
488502L10:
503+ unreachable
504+ L11:
505+ xdec_ref v
506+ return 1
507+ L12:
508+ r13 = <error> :: None
509+ return r13
510+ L13:
489511 xdec_ref v
490512 goto L2
491- L11 :
513+ L14 :
492514 dec_ref u
493515 goto L3
494- L12 :
516+ L15 :
495517 xdec_ref v
496- goto L9
497- L13 :
518+ goto L12
519+ L16 :
498520 dec_ref r7
499521 goto L5
500- L14 :
501- dec_ref r9
522+ L17 :
523+ dec_ref r11
502524 goto L8
503525
504526[case testExceptionWithOverlappingErrorValue]
0 commit comments