@@ -601,16 +601,17 @@ error_at_directive(PySTEntryObject *ste, PyObject *name)
601
601
global: set of all symbol names explicitly declared as global
602
602
*/
603
603
604
- #define SET_SCOPE (DICT , NAME , I ) { \
605
- PyObject *o = PyLong_FromLong(I); \
606
- if (!o) \
607
- return 0; \
608
- if (PyDict_SetItem((DICT), (NAME), o) < 0) { \
604
+ #define SET_SCOPE (DICT , NAME , I ) \
605
+ do { \
606
+ PyObject *o = PyLong_FromLong(I); \
607
+ if (!o) \
608
+ return 0; \
609
+ if (PyDict_SetItem((DICT), (NAME), o) < 0) { \
610
+ Py_DECREF(o); \
611
+ return 0; \
612
+ } \
609
613
Py_DECREF(o); \
610
- return 0; \
611
- } \
612
- Py_DECREF(o); \
613
- }
614
+ } while(0)
614
615
615
616
/* Decide on scope of name, given flags.
616
617
@@ -1562,39 +1563,45 @@ symtable_enter_type_param_block(struct symtable *st, identifier name,
1562
1563
return --(ST)->recursion_depth,(X)
1563
1564
1564
1565
#define VISIT (ST , TYPE , V ) \
1565
- if (!symtable_visit_ ## TYPE((ST), (V))) \
1566
- VISIT_QUIT((ST), 0);
1567
-
1568
- #define VISIT_SEQ (ST , TYPE , SEQ ) { \
1569
- int i; \
1570
- asdl_ ## TYPE ## _seq *seq = (SEQ); /* avoid variable capture */ \
1571
- for (i = 0; i < asdl_seq_LEN(seq); i++) { \
1572
- TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
1573
- if (!symtable_visit_ ## TYPE((ST), elt)) \
1574
- VISIT_QUIT((ST), 0); \
1575
- } \
1576
- }
1577
-
1578
- #define VISIT_SEQ_TAIL (ST , TYPE , SEQ , START ) { \
1579
- int i; \
1580
- asdl_ ## TYPE ## _seq *seq = (SEQ); /* avoid variable capture */ \
1581
- for (i = (START); i < asdl_seq_LEN(seq); i++) { \
1582
- TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
1583
- if (!symtable_visit_ ## TYPE((ST), elt)) \
1584
- VISIT_QUIT((ST), 0); \
1585
- } \
1586
- }
1587
-
1588
- #define VISIT_SEQ_WITH_NULL (ST , TYPE , SEQ ) { \
1589
- int i = 0; \
1590
- asdl_ ## TYPE ## _seq *seq = (SEQ); /* avoid variable capture */ \
1591
- for (i = 0; i < asdl_seq_LEN(seq); i++) { \
1592
- TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
1593
- if (!elt) continue; /* can be NULL */ \
1594
- if (!symtable_visit_ ## TYPE((ST), elt)) \
1595
- VISIT_QUIT((ST), 0); \
1596
- } \
1597
- }
1566
+ do { \
1567
+ if (!symtable_visit_ ## TYPE((ST), (V))) { \
1568
+ VISIT_QUIT((ST), 0); \
1569
+ } \
1570
+ } while(0)
1571
+
1572
+ #define VISIT_SEQ (ST , TYPE , SEQ ) \
1573
+ do { \
1574
+ int i; \
1575
+ asdl_ ## TYPE ## _seq *seq = (SEQ); /* avoid variable capture */ \
1576
+ for (i = 0; i < asdl_seq_LEN(seq); i++) { \
1577
+ TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
1578
+ if (!symtable_visit_ ## TYPE((ST), elt)) \
1579
+ VISIT_QUIT((ST), 0); \
1580
+ } \
1581
+ } while(0)
1582
+
1583
+ #define VISIT_SEQ_TAIL (ST , TYPE , SEQ , START ) \
1584
+ do { \
1585
+ int i; \
1586
+ asdl_ ## TYPE ## _seq *seq = (SEQ); /* avoid variable capture */ \
1587
+ for (i = (START); i < asdl_seq_LEN(seq); i++) { \
1588
+ TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
1589
+ if (!symtable_visit_ ## TYPE((ST), elt)) \
1590
+ VISIT_QUIT((ST), 0); \
1591
+ } \
1592
+ } while(0)
1593
+
1594
+ #define VISIT_SEQ_WITH_NULL (ST , TYPE , SEQ ) \
1595
+ do { \
1596
+ int i = 0; \
1597
+ asdl_ ## TYPE ## _seq *seq = (SEQ); /* avoid variable capture */ \
1598
+ for (i = 0; i < asdl_seq_LEN(seq); i++) { \
1599
+ TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
1600
+ if (!elt) continue; /* can be NULL */ \
1601
+ if (!symtable_visit_ ## TYPE((ST), elt)) \
1602
+ VISIT_QUIT((ST), 0); \
1603
+ } \
1604
+ } while(0)
1598
1605
1599
1606
static int
1600
1607
symtable_record_directive (struct symtable * st , identifier name , int lineno ,
@@ -2261,11 +2268,11 @@ symtable_visit_expr(struct symtable *st, expr_ty e)
2261
2268
break ;
2262
2269
case Slice_kind :
2263
2270
if (e -> v .Slice .lower )
2264
- VISIT (st , expr , e -> v .Slice .lower )
2271
+ VISIT (st , expr , e -> v .Slice .lower );
2265
2272
if (e -> v .Slice .upper )
2266
- VISIT (st , expr , e -> v .Slice .upper )
2273
+ VISIT (st , expr , e -> v .Slice .upper );
2267
2274
if (e -> v .Slice .step )
2268
- VISIT (st , expr , e -> v .Slice .step )
2275
+ VISIT (st , expr , e -> v .Slice .step );
2269
2276
break ;
2270
2277
case Name_kind :
2271
2278
if (!symtable_add_def (st , e -> v .Name .id ,
0 commit comments