| OLD | NEW |
| 1 /* Header for code translation functions | 1 /* Header for code translation functions |
| 2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software | 2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
| 3 Foundation, Inc. | 3 Free Software Foundation, Inc. |
| 4 Contributed by Paul Brook | 4 Contributed by Paul Brook |
| 5 | 5 |
| 6 This file is part of GCC. | 6 This file is part of GCC. |
| 7 | 7 |
| 8 GCC is free software; you can redistribute it and/or modify it under | 8 GCC is free software; you can redistribute it and/or modify it under |
| 9 the terms of the GNU General Public License as published by the Free | 9 the terms of the GNU General Public License as published by the Free |
| 10 Software Foundation; either version 3, or (at your option) any later | 10 Software Foundation; either version 3, or (at your option) any later |
| 11 version. | 11 version. |
| 12 | 12 |
| 13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY | 13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 pointer assignments. */ | 64 pointer assignments. */ |
| 65 unsigned direct_byref:1; | 65 unsigned direct_byref:1; |
| 66 | 66 |
| 67 /* Ignore absent optional arguments. Used for some intrinsics. */ | 67 /* Ignore absent optional arguments. Used for some intrinsics. */ |
| 68 unsigned ignore_optional:1; | 68 unsigned ignore_optional:1; |
| 69 | 69 |
| 70 /* When this is set the data and offset fields of the returned descriptor | 70 /* When this is set the data and offset fields of the returned descriptor |
| 71 are NULL. Used by intrinsic size. */ | 71 are NULL. Used by intrinsic size. */ |
| 72 unsigned data_not_needed:1; | 72 unsigned data_not_needed:1; |
| 73 | 73 |
| 74 /* If set, gfc_conv_function_call does not put byref calls into se->pre. */ | 74 /* If set, gfc_conv_procedure_call does not put byref calls into se->pre. */ |
| 75 unsigned no_function_call:1; | 75 unsigned no_function_call:1; |
| 76 | 76 |
| 77 /* Scalarization parameters. */ | 77 /* Scalarization parameters. */ |
| 78 struct gfc_se *parent; | 78 struct gfc_se *parent; |
| 79 struct gfc_ss *ss; | 79 struct gfc_ss *ss; |
| 80 struct gfc_loopinfo *loop; | 80 struct gfc_loopinfo *loop; |
| 81 } | 81 } |
| 82 gfc_se; | 82 gfc_se; |
| 83 | 83 |
| 84 | 84 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 int dim[GFC_MAX_DIMENSIONS]; | 119 int dim[GFC_MAX_DIMENSIONS]; |
| 120 } | 120 } |
| 121 gfc_ss_info; | 121 gfc_ss_info; |
| 122 | 122 |
| 123 typedef enum | 123 typedef enum |
| 124 { | 124 { |
| 125 /* A scalar value. This will be evaluated before entering the | 125 /* A scalar value. This will be evaluated before entering the |
| 126 scalarization loop. */ | 126 scalarization loop. */ |
| 127 GFC_SS_SCALAR, | 127 GFC_SS_SCALAR, |
| 128 | 128 |
| 129 /* Like GFC_SS_SCALAR except it evaluates a pointer to the expression. | 129 /* Like GFC_SS_SCALAR it evaluates the expression outside the |
| 130 Used for elemental function parameters. */ | 130 loop. Is always evaluated as a reference to the temporary. |
| 131 Used for elemental function arguments. */ |
| 131 GFC_SS_REFERENCE, | 132 GFC_SS_REFERENCE, |
| 132 | 133 |
| 133 /* An array section. Scalarization indices will be substituted during | 134 /* An array section. Scalarization indices will be substituted during |
| 134 expression translation. */ | 135 expression translation. */ |
| 135 GFC_SS_SECTION, | 136 GFC_SS_SECTION, |
| 136 | 137 |
| 137 /* A non-elemental function call returning an array. The call is executed | 138 /* A non-elemental function call returning an array. The call is executed |
| 138 before entering the scalarization loop, storing the result in a | 139 before entering the scalarization loop, storing the result in a |
| 139 temporary. This temporary is then used inside the scalarization loop. | 140 temporary. This temporary is then used inside the scalarization loop. |
| 140 Simple assignments, e.g. a(:) = fn(), are handled without a temporary | 141 Simple assignments, e.g. a(:) = fn(), are handled without a temporary |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 void gfc_conv_label_variable (gfc_se * se, gfc_expr * expr); | 304 void gfc_conv_label_variable (gfc_se * se, gfc_expr * expr); |
| 304 /* If the value is not constant, Create a temporary and copy the value. */ | 305 /* If the value is not constant, Create a temporary and copy the value. */ |
| 305 tree gfc_evaluate_now (tree, stmtblock_t *); | 306 tree gfc_evaluate_now (tree, stmtblock_t *); |
| 306 | 307 |
| 307 /* Intrinsic function handling. */ | 308 /* Intrinsic function handling. */ |
| 308 void gfc_conv_intrinsic_function (gfc_se *, gfc_expr *); | 309 void gfc_conv_intrinsic_function (gfc_se *, gfc_expr *); |
| 309 | 310 |
| 310 /* Does an intrinsic map directly to an external library call. */ | 311 /* Does an intrinsic map directly to an external library call. */ |
| 311 int gfc_is_intrinsic_libcall (gfc_expr *); | 312 int gfc_is_intrinsic_libcall (gfc_expr *); |
| 312 | 313 |
| 313 /* Also used to CALL subroutines. */ | 314 /* Used to call ordinary functions/subroutines |
| 314 int gfc_conv_function_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *, | 315 and procedure pointer components. */ |
| 315 » » » tree); | 316 int gfc_conv_procedure_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *, |
| 317 » » » gfc_expr *, tree); |
| 316 | 318 |
| 317 void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent); | 319 void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent, bool); |
| 318 | 320 |
| 319 /* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */ | 321 /* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */ |
| 320 | 322 |
| 321 /* Generate code for a scalar assignment. */ | 323 /* Generate code for a scalar assignment. */ |
| 322 tree gfc_trans_scalar_assign (gfc_se *, gfc_se *, gfc_typespec, bool, bool); | 324 tree gfc_trans_scalar_assign (gfc_se *, gfc_se *, gfc_typespec, bool, bool); |
| 323 | 325 |
| 324 /* Translate COMMON blocks. */ | 326 /* Translate COMMON blocks. */ |
| 325 void gfc_trans_common (gfc_namespace *); | 327 void gfc_trans_common (gfc_namespace *); |
| 326 | 328 |
| 327 /* Translate a derived type constructor. */ | 329 /* Translate a derived type constructor. */ |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 | 403 |
| 402 /* Assign a default initializer to a derived type. */ | 404 /* Assign a default initializer to a derived type. */ |
| 403 tree gfc_init_default_dt (gfc_symbol *, tree); | 405 tree gfc_init_default_dt (gfc_symbol *, tree); |
| 404 | 406 |
| 405 /* Substitute a temporary variable in place of the real one. */ | 407 /* Substitute a temporary variable in place of the real one. */ |
| 406 void gfc_shadow_sym (gfc_symbol *, tree, gfc_saved_var *); | 408 void gfc_shadow_sym (gfc_symbol *, tree, gfc_saved_var *); |
| 407 | 409 |
| 408 /* Restore the original variable. */ | 410 /* Restore the original variable. */ |
| 409 void gfc_restore_sym (gfc_symbol *, gfc_saved_var *); | 411 void gfc_restore_sym (gfc_symbol *, gfc_saved_var *); |
| 410 | 412 |
| 413 /* Setting a decl assembler name, mangling it according to target rules |
| 414 (like Windows @NN decorations). */ |
| 415 void gfc_set_decl_assembler_name (tree, tree); |
| 416 |
| 411 /* Returns true if a variable of specified size should go on the stack. */ | 417 /* Returns true if a variable of specified size should go on the stack. */ |
| 412 int gfc_can_put_var_on_stack (tree); | 418 int gfc_can_put_var_on_stack (tree); |
| 413 | 419 |
| 414 /* Allocate the lang-specific part of a decl node. */ | 420 /* Allocate the lang-specific part of a decl node. */ |
| 415 void gfc_allocate_lang_decl (tree); | 421 void gfc_allocate_lang_decl (tree); |
| 416 | 422 |
| 417 /* Advance along a TREE_CHAIN. */ | 423 /* Advance along a TREE_CHAIN. */ |
| 418 tree gfc_advance_chain (tree, int); | 424 tree gfc_advance_chain (tree, int); |
| 419 | 425 |
| 420 /* Create a decl for a function. */ | 426 /* Create a decl for a function. */ |
| 421 void gfc_create_function_decl (gfc_namespace *); | 427 void gfc_create_function_decl (gfc_namespace *); |
| 422 /* Generate the code for a function. */ | 428 /* Generate the code for a function. */ |
| 423 void gfc_generate_function_code (gfc_namespace *); | 429 void gfc_generate_function_code (gfc_namespace *); |
| 424 /* Output a BLOCK DATA program unit. */ | 430 /* Output a BLOCK DATA program unit. */ |
| 425 void gfc_generate_block_data (gfc_namespace *); | 431 void gfc_generate_block_data (gfc_namespace *); |
| 426 /* Output a decl for a module variable. */ | 432 /* Output a decl for a module variable. */ |
| 427 void gfc_generate_module_vars (gfc_namespace *); | 433 void gfc_generate_module_vars (gfc_namespace *); |
| 428 | 434 |
| 429 struct module_htab_entry GTY(()) | 435 struct GTY(()) module_htab_entry { |
| 430 { | |
| 431 const char *name; | 436 const char *name; |
| 432 tree namespace_decl; | 437 tree namespace_decl; |
| 433 htab_t GTY ((param_is (union tree_node))) decls; | 438 htab_t GTY ((param_is (union tree_node))) decls; |
| 434 }; | 439 }; |
| 435 | 440 |
| 436 struct module_htab_entry *gfc_find_module (const char *); | 441 struct module_htab_entry *gfc_find_module (const char *); |
| 437 void gfc_module_add_decl (struct module_htab_entry *, tree); | 442 void gfc_module_add_decl (struct module_htab_entry *, tree); |
| 438 | 443 |
| 439 /* Get and set the current location. */ | 444 /* Get and set the current location. */ |
| 440 void gfc_set_backend_locus (locus *); | 445 void gfc_set_backend_locus (locus *); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 tree gfc_trans_pointer_assignment (gfc_expr *, gfc_expr *); | 492 tree gfc_trans_pointer_assignment (gfc_expr *, gfc_expr *); |
| 488 | 493 |
| 489 /* Initialize function decls for library functions. */ | 494 /* Initialize function decls for library functions. */ |
| 490 void gfc_build_intrinsic_lib_fndecls (void); | 495 void gfc_build_intrinsic_lib_fndecls (void); |
| 491 /* Create function decls for IO library functions. */ | 496 /* Create function decls for IO library functions. */ |
| 492 void gfc_trans_io_runtime_check (tree, tree, int, const char *, stmtblock_t *); | 497 void gfc_trans_io_runtime_check (tree, tree, int, const char *, stmtblock_t *); |
| 493 void gfc_build_io_library_fndecls (void); | 498 void gfc_build_io_library_fndecls (void); |
| 494 /* Build a function decl for a library function. */ | 499 /* Build a function decl for a library function. */ |
| 495 tree gfc_build_library_function_decl (tree, tree, int, ...); | 500 tree gfc_build_library_function_decl (tree, tree, int, ...); |
| 496 | 501 |
| 502 /* Process the local variable decls of a block construct. */ |
| 503 void gfc_process_block_locals (gfc_namespace*); |
| 504 |
| 505 /* Output initialization/clean-up code that was deferred. */ |
| 506 tree gfc_trans_deferred_vars (gfc_symbol*, tree); |
| 507 |
| 497 /* somewhere! */ | 508 /* somewhere! */ |
| 498 tree pushdecl (tree); | 509 tree pushdecl (tree); |
| 499 tree pushdecl_top_level (tree); | 510 tree pushdecl_top_level (tree); |
| 500 void pushlevel (int); | 511 void pushlevel (int); |
| 501 tree poplevel (int, int, int); | 512 tree poplevel (int, int, int); |
| 502 tree getdecls (void); | 513 tree getdecls (void); |
| 503 tree gfc_truthvalue_conversion (tree); | 514 tree gfc_truthvalue_conversion (tree); |
| 504 tree gfc_builtin_function (tree); | 515 tree gfc_builtin_function (tree); |
| 505 struct array_descr_info; | 516 struct array_descr_info; |
| 506 bool gfc_get_array_descr_info (const_tree, struct array_descr_info *); | 517 bool gfc_get_array_descr_info (const_tree, struct array_descr_info *); |
| 507 | 518 |
| 508 /* In trans-openmp.c */ | 519 /* In trans-openmp.c */ |
| 509 bool gfc_omp_privatize_by_reference (const_tree); | 520 bool gfc_omp_privatize_by_reference (const_tree); |
| 510 enum omp_clause_default_kind gfc_omp_predetermined_sharing (tree); | 521 enum omp_clause_default_kind gfc_omp_predetermined_sharing (tree); |
| 522 tree gfc_omp_report_decl (tree); |
| 511 tree gfc_omp_clause_default_ctor (tree, tree, tree); | 523 tree gfc_omp_clause_default_ctor (tree, tree, tree); |
| 512 tree gfc_omp_clause_copy_ctor (tree, tree, tree); | 524 tree gfc_omp_clause_copy_ctor (tree, tree, tree); |
| 513 tree gfc_omp_clause_assign_op (tree, tree, tree); | 525 tree gfc_omp_clause_assign_op (tree, tree, tree); |
| 514 tree gfc_omp_clause_dtor (tree, tree); | 526 tree gfc_omp_clause_dtor (tree, tree); |
| 515 bool gfc_omp_disregard_value_expr (tree, bool); | 527 bool gfc_omp_disregard_value_expr (tree, bool); |
| 516 bool gfc_omp_private_debug_clause (tree, bool); | 528 bool gfc_omp_private_debug_clause (tree, bool); |
| 517 bool gfc_omp_private_outer_ref (tree); | 529 bool gfc_omp_private_outer_ref (tree); |
| 518 struct gimplify_omp_ctx; | 530 struct gimplify_omp_ctx; |
| 519 void gfc_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, tree); | 531 void gfc_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, tree); |
| 520 | 532 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 533 extern GTY(()) tree gfor_fndecl_ttynam; | 545 extern GTY(()) tree gfor_fndecl_ttynam; |
| 534 extern GTY(()) tree gfor_fndecl_ctime; | 546 extern GTY(()) tree gfor_fndecl_ctime; |
| 535 extern GTY(()) tree gfor_fndecl_fdate; | 547 extern GTY(()) tree gfor_fndecl_fdate; |
| 536 extern GTY(()) tree gfor_fndecl_in_pack; | 548 extern GTY(()) tree gfor_fndecl_in_pack; |
| 537 extern GTY(()) tree gfor_fndecl_in_unpack; | 549 extern GTY(()) tree gfor_fndecl_in_unpack; |
| 538 extern GTY(()) tree gfor_fndecl_associated; | 550 extern GTY(()) tree gfor_fndecl_associated; |
| 539 | 551 |
| 540 /* Math functions. Many other math functions are handled in | 552 /* Math functions. Many other math functions are handled in |
| 541 trans-intrinsic.c. */ | 553 trans-intrinsic.c. */ |
| 542 | 554 |
| 543 typedef struct gfc_powdecl_list GTY(()) | 555 typedef struct GTY(()) gfc_powdecl_list { |
| 544 { | |
| 545 tree integer; | 556 tree integer; |
| 546 tree real; | 557 tree real; |
| 547 tree cmplx; | 558 tree cmplx; |
| 548 } | 559 } |
| 549 gfc_powdecl_list; | 560 gfc_powdecl_list; |
| 550 | 561 |
| 551 extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[4][3]; | 562 extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[4][3]; |
| 552 extern GTY(()) tree gfor_fndecl_math_ishftc4; | 563 extern GTY(()) tree gfor_fndecl_math_ishftc4; |
| 553 extern GTY(()) tree gfor_fndecl_math_ishftc8; | 564 extern GTY(()) tree gfor_fndecl_math_ishftc8; |
| 554 extern GTY(()) tree gfor_fndecl_math_ishftc16; | 565 extern GTY(()) tree gfor_fndecl_math_ishftc16; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 607 | 618 |
| 608 enum gfc_array_kind | 619 enum gfc_array_kind |
| 609 { | 620 { |
| 610 GFC_ARRAY_UNKNOWN, | 621 GFC_ARRAY_UNKNOWN, |
| 611 GFC_ARRAY_ASSUMED_SHAPE, | 622 GFC_ARRAY_ASSUMED_SHAPE, |
| 612 GFC_ARRAY_ALLOCATABLE, | 623 GFC_ARRAY_ALLOCATABLE, |
| 613 GFC_ARRAY_POINTER | 624 GFC_ARRAY_POINTER |
| 614 }; | 625 }; |
| 615 | 626 |
| 616 /* Array types only. */ | 627 /* Array types only. */ |
| 617 struct lang_type» » GTY(()) | 628 struct GTY(())» lang_type» { |
| 618 { | |
| 619 int rank; | 629 int rank; |
| 620 enum gfc_array_kind akind; | 630 enum gfc_array_kind akind; |
| 621 tree lbound[GFC_MAX_DIMENSIONS]; | 631 tree lbound[GFC_MAX_DIMENSIONS]; |
| 622 tree ubound[GFC_MAX_DIMENSIONS]; | 632 tree ubound[GFC_MAX_DIMENSIONS]; |
| 623 tree stride[GFC_MAX_DIMENSIONS]; | 633 tree stride[GFC_MAX_DIMENSIONS]; |
| 624 tree size; | 634 tree size; |
| 625 tree offset; | 635 tree offset; |
| 626 tree dtype; | 636 tree dtype; |
| 627 tree dataptr_type; | 637 tree dataptr_type; |
| 628 tree span; | 638 tree span; |
| 639 tree base_decl[2]; |
| 629 }; | 640 }; |
| 630 | 641 |
| 631 struct lang_decl» » GTY(()) | 642 struct GTY(()) lang_decl { |
| 632 { | |
| 633 /* Dummy variables. */ | 643 /* Dummy variables. */ |
| 634 tree saved_descriptor; | 644 tree saved_descriptor; |
| 635 /* Assigned integer nodes. Stringlength is the IO format string's length. | 645 /* Assigned integer nodes. Stringlength is the IO format string's length. |
| 636 Addr is the address of the string or the target label. Stringlength is | 646 Addr is the address of the string or the target label. Stringlength is |
| 637 initialized to -2 and assigned to -1 when addr is assigned to the | 647 initialized to -2 and assigned to -1 when addr is assigned to the |
| 638 address of target label. */ | 648 address of target label. */ |
| 639 tree stringlen; | 649 tree stringlen; |
| 640 tree addr; | 650 tree addr; |
| 641 tree span; | 651 tree span; |
| 642 }; | 652 }; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 672 #define GFC_TYPE_ARRAY_RANK(node) (TYPE_LANG_SPECIFIC(node)->rank) | 682 #define GFC_TYPE_ARRAY_RANK(node) (TYPE_LANG_SPECIFIC(node)->rank) |
| 673 #define GFC_TYPE_ARRAY_SIZE(node) (TYPE_LANG_SPECIFIC(node)->size) | 683 #define GFC_TYPE_ARRAY_SIZE(node) (TYPE_LANG_SPECIFIC(node)->size) |
| 674 #define GFC_TYPE_ARRAY_OFFSET(node) (TYPE_LANG_SPECIFIC(node)->offset) | 684 #define GFC_TYPE_ARRAY_OFFSET(node) (TYPE_LANG_SPECIFIC(node)->offset) |
| 675 #define GFC_TYPE_ARRAY_AKIND(node) (TYPE_LANG_SPECIFIC(node)->akind) | 685 #define GFC_TYPE_ARRAY_AKIND(node) (TYPE_LANG_SPECIFIC(node)->akind) |
| 676 /* Code should use gfc_get_dtype instead of accessing this directly. It may | 686 /* Code should use gfc_get_dtype instead of accessing this directly. It may |
| 677 not be known when the type is created. */ | 687 not be known when the type is created. */ |
| 678 #define GFC_TYPE_ARRAY_DTYPE(node) (TYPE_LANG_SPECIFIC(node)->dtype) | 688 #define GFC_TYPE_ARRAY_DTYPE(node) (TYPE_LANG_SPECIFIC(node)->dtype) |
| 679 #define GFC_TYPE_ARRAY_DATAPTR_TYPE(node) \ | 689 #define GFC_TYPE_ARRAY_DATAPTR_TYPE(node) \ |
| 680 (TYPE_LANG_SPECIFIC(node)->dataptr_type) | 690 (TYPE_LANG_SPECIFIC(node)->dataptr_type) |
| 681 #define GFC_TYPE_ARRAY_SPAN(node) (TYPE_LANG_SPECIFIC(node)->span) | 691 #define GFC_TYPE_ARRAY_SPAN(node) (TYPE_LANG_SPECIFIC(node)->span) |
| 692 #define GFC_TYPE_ARRAY_BASE_DECL(node, internal) \ |
| 693 (TYPE_LANG_SPECIFIC(node)->base_decl[(internal)]) |
| 682 | 694 |
| 683 /* Build an expression with void type. */ | 695 /* Build an expression with void type. */ |
| 684 #define build1_v(code, arg) fold_build1(code, void_type_node, arg) | 696 #define build1_v(code, arg) fold_build1(code, void_type_node, arg) |
| 685 #define build2_v(code, arg1, arg2) fold_build2(code, void_type_node, \ | 697 #define build2_v(code, arg1, arg2) fold_build2(code, void_type_node, \ |
| 686 arg1, arg2) | 698 arg1, arg2) |
| 687 #define build3_v(code, arg1, arg2, arg3) fold_build3(code, void_type_node, \ | 699 #define build3_v(code, arg1, arg2, arg3) fold_build3(code, void_type_node, \ |
| 688 arg1, arg2, arg3) | 700 arg1, arg2, arg3) |
| 689 #define build4_v(code, arg1, arg2, arg3, arg4) build4(code, void_type_node, \ | 701 #define build4_v(code, arg1, arg2, arg3, arg4) build4(code, void_type_node, \ |
| 690 arg1, arg2, arg3, arg4) | 702 arg1, arg2, arg3, arg4) |
| 691 | 703 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 754 void gfc_free_interface_mapping (gfc_interface_mapping *); | 766 void gfc_free_interface_mapping (gfc_interface_mapping *); |
| 755 void gfc_add_interface_mapping (gfc_interface_mapping *, | 767 void gfc_add_interface_mapping (gfc_interface_mapping *, |
| 756 gfc_symbol *, gfc_se *, gfc_expr *); | 768 gfc_symbol *, gfc_se *, gfc_expr *); |
| 757 void gfc_finish_interface_mapping (gfc_interface_mapping *, | 769 void gfc_finish_interface_mapping (gfc_interface_mapping *, |
| 758 stmtblock_t *, stmtblock_t *); | 770 stmtblock_t *, stmtblock_t *); |
| 759 void gfc_apply_interface_mapping (gfc_interface_mapping *, | 771 void gfc_apply_interface_mapping (gfc_interface_mapping *, |
| 760 gfc_se *, gfc_expr *); | 772 gfc_se *, gfc_expr *); |
| 761 | 773 |
| 762 | 774 |
| 763 /* Standard error messages used in all the trans-*.c files. */ | 775 /* Standard error messages used in all the trans-*.c files. */ |
| 764 extern const char gfc_msg_bounds[]; | |
| 765 extern const char gfc_msg_fault[]; | 776 extern const char gfc_msg_fault[]; |
| 766 extern const char gfc_msg_wrong_return[]; | 777 extern const char gfc_msg_wrong_return[]; |
| 767 | 778 |
| 779 #define OMPWS_WORKSHARE_FLAG 1 /* Set if in a workshare construct. */ |
| 780 #define OMPWS_CURR_SINGLEUNIT 2 /* Set if current gfc_code in workshare |
| 781 construct is not workshared. */ |
| 782 #define OMPWS_SCALARIZER_WS 4 /* Set if scalarizer should attempt |
| 783 to create parallel loops. */ |
| 784 #define OMPWS_NOWAIT 8 /* Use NOWAIT on OMP_FOR. */ |
| 785 extern int ompws_flags; |
| 768 | 786 |
| 769 #endif /* GFC_TRANS_H */ | 787 #endif /* GFC_TRANS_H */ |
| OLD | NEW |