Patch #1550800: make exec a function.
diff --git a/Include/Python-ast.h b/Include/Python-ast.h
index 390b8ea..2b817c6 100644
--- a/Include/Python-ast.h
+++ b/Include/Python-ast.h
@@ -64,8 +64,8 @@
                   For_kind=8, While_kind=9, If_kind=10, With_kind=11,
                   Raise_kind=12, TryExcept_kind=13, TryFinally_kind=14,
                   Assert_kind=15, Import_kind=16, ImportFrom_kind=17,
-                  Exec_kind=18, Global_kind=19, Expr_kind=20, Pass_kind=21,
-                  Break_kind=22, Continue_kind=23};
+                  Global_kind=18, Expr_kind=19, Pass_kind=20, Break_kind=21,
+                  Continue_kind=22};
 struct _stmt {
         enum _stmt_kind kind;
         union {
@@ -165,12 +165,6 @@
                 } ImportFrom;
                 
                 struct {
-                        expr_ty body;
-                        expr_ty globals;
-                        expr_ty locals;
-                } Exec;
-                
-                struct {
                         asdl_seq *names;
                 } Global;
                 
@@ -384,8 +378,6 @@
 stmt_ty Import(asdl_seq * names, int lineno, int col_offset, PyArena *arena);
 stmt_ty ImportFrom(identifier module, asdl_seq * names, int level, int lineno,
                    int col_offset, PyArena *arena);
-stmt_ty Exec(expr_ty body, expr_ty globals, expr_ty locals, int lineno, int
-             col_offset, PyArena *arena);
 stmt_ty Global(asdl_seq * names, int lineno, int col_offset, PyArena *arena);
 stmt_ty Expr(expr_ty value, int lineno, int col_offset, PyArena *arena);
 stmt_ty Pass(int lineno, int col_offset, PyArena *arena);
diff --git a/Include/graminit.h b/Include/graminit.h
index f4701a6..61c0814 100644
--- a/Include/graminit.h
+++ b/Include/graminit.h
@@ -31,54 +31,53 @@
 #define dotted_as_names 286
 #define dotted_name 287
 #define global_stmt 288
-#define exec_stmt 289
-#define assert_stmt 290
-#define compound_stmt 291
-#define if_stmt 292
-#define while_stmt 293
-#define for_stmt 294
-#define try_stmt 295
-#define with_stmt 296
-#define with_var 297
-#define except_clause 298
-#define suite 299
-#define testlist_safe 300
-#define old_test 301
-#define old_lambdef 302
-#define test 303
-#define or_test 304
-#define and_test 305
-#define not_test 306
-#define comparison 307
-#define comp_op 308
-#define expr 309
-#define xor_expr 310
-#define and_expr 311
-#define shift_expr 312
-#define arith_expr 313
-#define term 314
-#define factor 315
-#define power 316
-#define atom 317
-#define listmaker 318
-#define testlist_gexp 319
-#define lambdef 320
-#define trailer 321
-#define subscriptlist 322
-#define subscript 323
-#define sliceop 324
-#define exprlist 325
-#define testlist 326
-#define dictsetmaker 327
-#define classdef 328
-#define arglist 329
-#define argument 330
-#define list_iter 331
-#define list_for 332
-#define list_if 333
-#define gen_iter 334
-#define gen_for 335
-#define gen_if 336
-#define testlist1 337
-#define encoding_decl 338
-#define yield_expr 339
+#define assert_stmt 289
+#define compound_stmt 290
+#define if_stmt 291
+#define while_stmt 292
+#define for_stmt 293
+#define try_stmt 294
+#define with_stmt 295
+#define with_var 296
+#define except_clause 297
+#define suite 298
+#define testlist_safe 299
+#define old_test 300
+#define old_lambdef 301
+#define test 302
+#define or_test 303
+#define and_test 304
+#define not_test 305
+#define comparison 306
+#define comp_op 307
+#define expr 308
+#define xor_expr 309
+#define and_expr 310
+#define shift_expr 311
+#define arith_expr 312
+#define term 313
+#define factor 314
+#define power 315
+#define atom 316
+#define listmaker 317
+#define testlist_gexp 318
+#define lambdef 319
+#define trailer 320
+#define subscriptlist 321
+#define subscript 322
+#define sliceop 323
+#define exprlist 324
+#define testlist 325
+#define dictsetmaker 326
+#define classdef 327
+#define arglist 328
+#define argument 329
+#define list_iter 330
+#define list_for 331
+#define list_if 332
+#define gen_iter 333
+#define gen_for 334
+#define gen_if 335
+#define testlist1 336
+#define encoding_decl 337
+#define yield_expr 338
diff --git a/Include/opcode.h b/Include/opcode.h
index 4c823d9..04675dd 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -75,7 +75,7 @@
 #define LOAD_LOCALS	82
 #define RETURN_VALUE	83
 #define IMPORT_STAR	84
-#define EXEC_STMT	85
+
 #define YIELD_VALUE	86
 #define POP_BLOCK	87
 #define END_FINALLY	88
diff --git a/Include/symtable.h b/Include/symtable.h
index 1e5996d..f40bfa4 100644
--- a/Include/symtable.h
+++ b/Include/symtable.h
@@ -88,11 +88,9 @@
 #define FREE 4
 #define CELL 5
 
-/* The following three names are used for the ste_unoptimized bit field */
+/* The following two names are used for the ste_unoptimized bit field */
 #define OPT_IMPORT_STAR 1
-#define OPT_EXEC 2
-#define OPT_BARE_EXEC 4
-#define OPT_TOPLEVEL 8  /* top-level names, including eval and exec */
+#define OPT_TOPLEVEL 2  /* top-level names, including eval and exec */
 
 #define GENERATOR 1
 #define GENERATOR_EXPRESSION 2