Commit Graph

370 Commits

Author SHA1 Message Date
Tobias Burnus
cf651ca2e5 re PR fortran/51207 ([OOP] Mark __def_init_... as FL_PARAMETER)
2011-11-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51207
        * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
        and hence as TREE_READONLY; add subroutine attribute to
        __copy_ procedure.

        PR fortran/50640
        * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
        * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab
        as GFC_DECL_PUSH_TOPLEVEL.
        (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
        (build_function_decl): Push __copy_ procedure to the toplevel.

From-SVN: r181505
2011-11-19 10:26:33 +01:00
Tobias Burnus
c3f3495248 re PR fortran/39427 (F2003: Procedures with same name as types/type constructors)
gcc/fortran
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * decl.c (match_data_constant, match_data_constant,
        * variable_decl,
        gfc_match_decl_type_spec, access_attr_decl,
        check_extended_derived_type, gfc_match_derived_decl,
        gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
        with DT constructors.
        * gfortran.h (gfc_find_dt_in_generic,
        gfc_convert_to_structure_constructor): New function prototypes.
        * interface.c (check_interface0, check_interface1,
        gfc_search_interface): Ignore DT constructors in generic list.
        * match.h (gfc_match_structure_constructor): Update prototype.
        * match.c (match_derived_type_spec): Ensure that one uses the DT
        not the generic function.
        * module.c (MOD_VERSION): Bump.
        (dt_lower_string, dt_upper_string): New functions.
        (find_use_name_n, find_use_operator, compare_true_names,
        find_true_name, add_true_name, fix_mio_expr, load_needed,
        read_module, write_dt_extensions, write_symbol): Changes to deal with
        different symtree vs. sym names.
        (create_derived_type): Create also generic procedure.
        * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and
        * generic
        function as the same.
        * primary.c (gfc_convert_to_structure_constructor): New
        * function.
        (gfc_match_structure_constructor): Restructured; calls
        gfc_convert_to_structure_constructor.
        (build_actual_constructor, gfc_match_rvalue): Update for DT generic
        functions.
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
        is_illegal_recursion, resolve_generic_f, resolve_variable,
        resolve_fl_variable_derived, resolve_fl_derived0,
        resolve_symbol): Handle DT and DT generic constructors.
        * symbol.c (gfc_use_derived, gfc_undo_symbols,
        gen_special_c_interop_ptr, gen_cptr_param,
        generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
        derived-types, which are hidden in the generic type.
        (gfc_find_dt_in_generic): New function
        * trans-array.c (gfc_conv_array_initializer): Replace
        * FL_PARAMETER
        expr by actual value.
        * trans-decl.c (gfc_get_module_backend_decl,
        * gfc_trans_use_stmts):
        Ensure that we use the DT and not the generic function.
        * trans-types.c (gfc_get_derived_type): Ensure that we use the
        * DT
        and not the generic procedure.

gcc/testsuite/
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * gfortran.dg/constructor_1.f90: New.
        * gfortran.dg/constructor_2.f90: New.
        * gfortran.dg/constructor_3.f90: New.
        * gfortran.dg/constructor_4.f90: New.
        * gfortran.dg/constructor_5.f90: New.
        * gfortran.dg/constructor_6.f90: New.
        * gfortran.dg/use_only_5.f90: New.
        * gfortran.dg/c_ptr_tests_17.f90: New.
        * gfortran.dg/c_ptr_tests_18.f90: New.
        * gfortran.dg/used_types_25.f90: New.
        * gfortran.dg/used_types_26.f90: New
        * gfortran.dg/type_decl_3.f90: New.
        * gfortran.dg/function_types_3.f90: Update dg-error.
        * gfortran.dg/result_1.f90: Ditto.
        * gfortran.dg/structure_constructor_3.f03: Ditto.
        * gfortran.dg/structure_constructor_4.f03: Ditto.

From-SVN: r181425
2011-11-16 22:37:43 +01:00
Tobias Burnus
107a9bc92c re PR fortran/51073 (_gfortran_caf_register incorrectly assumes malloc(0) returns non-NULL)
2011-11-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51073
        * trans-decl.c (generate_coarray_sym_init): Handle zero-sized
        * arrays.

From-SVN: r181348
2011-11-14 09:15:09 +01:00
Tobias Burnus
1e4b137661 re PR fortran/50960 ([OOP] vtables not marked as constant)
2011-11-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50960
        * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as
        * TREE_READONLY.

2011-11-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50960
        * gfortran.dg/module_parameter_array_refs_2.f90: New.

From-SVN: r180878
2011-11-03 23:32:37 +01:00
Michael Meissner
e79983f458 Convert standard builtin functions from being arrays to using a functional interface
From-SVN: r179820
2011-10-11 19:55:09 +00:00
Janus Weil
58eba51591 re PR fortran/50625 ([OOP] ALLOCATABLE attribute lost for module CLASS variables)
2011-10-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50625
	* class.c (gfc_build_class_symbol): Fix whitespace.
	* module.c (mio_symbol): Set 'class_ok' attribute.
	* trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
	been built for class symbols.


2011-10-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50625
	* gfortran.dg/class_46.f03: New.

From-SVN: r179660
2011-10-07 16:40:14 +02:00
Janus Weil
7a3eeb8555 re PR fortran/50225 ([OOP] The allocation status for polymorphic allocatable function results is not set properly)
2011-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50225
	* trans-decl.c (gfc_generate_function_code): Nullify polymorphic
	allocatable function results.

2011-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50225
	* gfortran.dg/class_result_1.f03: New.

From-SVN: r178262
2011-08-29 23:55:10 +02:00
Tobias Burnus
86187d0fe0 trans-decl.c (generate_coarray_sym_init): Use GFC_CAF_COARRAY_STATIC for static coarrays.
gcc/fortran/
2011-08-29  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (generate_coarray_sym_init): Use
        GFC_CAF_COARRAY_STATIC for static coarrays.

libgfortan/
2011-08-29  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (_gfortran_caf_deregister): Update prototype.
        * caf/mpi.c (_gfortran_caf_deregister): Modify prototype,
        actually free memory and add error diagnostic.
        (_gfortran_caf_finalize): Add additional free calls.
        * caf/single.c (_gfortran_caf_deregister): Modify prototype,
        actually free memory and add error diagnostic.
        (_gfortran_caf_finalize): Add additional free calls.

From-SVN: r178193
2011-08-29 12:33:09 +02:00
Jakub Jelinek
a6c975bd8e trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL if threadprivate.
* trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
	if threadprivate.
	* symbol.c (check_conflict): Allow threadprivate attribute with
	FL_PROCEDURE if proc_pointer.

	* testsuite/libgomp.fortran/threadprivate4.f90: New test.

From-SVN: r178114
2011-08-26 16:55:05 +02:00
Tobias Burnus
aa13dc3c93 trans-array.c (gfc_conv_descriptor_token): Add assert.
2011-08-25  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (gfc_conv_descriptor_token): Add assert.
        * trans-decl.c (gfc_build_qualified_array,
        create_function_arglist): Handle assumed-shape arrays.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
        * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
        add "caf_token" to assumed-shape descriptors, new akind argument.
        (gfc_get_array_type_bounds): Pass akind.
        * trans.h (lang_decl): New elements caf_offset and token.
        (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.

2011-08-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_lib_token_4.f90: New.

From-SVN: r178069
2011-08-25 18:27:39 +02:00
Tobias Burnus
dbad8e7176 re PR fortran/31461 (warn about entities in USE, ONLY statement not later used)
2011-08-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/31461
        * trans-decl.c (generate_local_decl): Warn about
        unused explicitly imported module variables/parameters.

2011-08-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/31461
        * gfortran.dg/warn_unused_var_2.f90: New.
        * gfortran.dg/warn_unused_var_3.f90: New.

From-SVN: r177833
2011-08-17 18:31:10 +02:00
Tobias Burnus
0c53708ead check.c (gfc_check_present): Allow coarrays.
2011-07-21  Tobias Burnus  <burnus@net-b.de>

        * check.c (gfc_check_present): Allow coarrays.
        * trans-array.c (gfc_conv_array_ref): Avoid casting
        when a pointer is wanted.
        * trans-decl.c (create_function_arglist): For -fcoarray=lib,
        handle hidden token and offset arguments for nondescriptor
        coarrays.
        * trans-expr.c (get_tree_for_caf_expr): New function.
        (gfc_conv_procedure_call): For -fcoarray=lib pass the
        token and offset for nondescriptor coarray dummies.
        * trans.h (lang_type): Add caf_offset tree.
        (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.

2011-07-21  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_lib_token_1.f90: New.

From-SVN: r176562
2011-07-21 14:00:25 +02:00
Tobias Burnus
15e2b5959d trans-decl.c (gfc_build_qualified_array): Make coarray's token TYPE_QUAL_RESTRICT.
2011-07-17  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (gfc_build_qualified_array): Make coarray's
        token TYPE_QUAL_RESTRICT.

From-SVN: r176404
2011-07-18 17:24:46 +02:00
Tobias Burnus
badd9e6941 expr.c (gfc_ref_this_image): New function.
2011-07-16  Tobias Burnus  <burnus@net-b.de>

        * expr.c (gfc_ref_this_image): New function.
        (gfc_is_coindexed): Use it.
        * gfortran.h (gfc_ref_this_image): New prototype.
        * resolve.c (resolve_deallocate_expr,
        resolve_allocate_expr): Support alloc scalar coarrays.
        * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
        gfc_conv_descriptor_cosize, gfc_array_allocate,
        gfc_trans_deferred_array): Ditto.
        * trans-expr.c (gfc_conv_variable) Ditto.:
        * trans-stmt.c (gfc_trans_deallocate): Ditto.
        * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
        gfc_get_array_descr_info): Ditto.
        * trans-decl.c (gfc_get_symbol_decl): Ditto.

2011-07-16  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_14.f90: Remove dg-error "sorry not
        * implemented".
        * gfortran.dg/coarray_7.f90: Ditto.
        * gfortran.dg/coarray/scalar_alloc_1.f90: New.
        * gfortran.dg/coarray/scalar_alloc_2.f90: New.

From-SVN: r176358
2011-07-16 19:31:13 +02:00
Daniel Carrera
ea6363a3b1 trans-array.c (gfc_array_allocate): Rename allocatable_array
2011-07-06  Daniel Carrera <dcarrera@gmail.com>

        * trans-array.c (gfc_array_allocate): Rename allocatable_array
        * to
        allocatable. Rename function gfc_allocate_array_with_status to
        gfc_allocate_allocatable_with_status. Update function call for
        gfc_allocate_with_status.
        * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
        gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
        * trans-stmt.c (gfc_trans_allocate): Update function call for
        gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
        to gfc_allocate_allocatable_with_status.
        * trans.c (gfc_call_malloc): Add new parameter
        * gfc_allocate_with_status
        so it uses the library for memory allocation when -fcoarray=lib.
        (gfc_allocate_allocatable_with_status): Renamed from
        gfc_allocate_array_with_status.
        (gfc_allocate_allocatable_with_status): Update function call for
        gfc_allocate_with_status.
        * trans.h (gfc_coarray_type): New enum.
        (gfc_allocate_with_status): Update prototype.
        (gfc_allocate_allocatable_with_status): Renamed from
        gfc_allocate_array_with_status.
        * trans-decl.c (generate_coarray_sym_init): Use the new constant
        GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.

From-SVN: r175937
2011-07-06 22:57:03 +02:00
Andrew MacLeod
e0a8ecf2a2 cosmetic. Add sync_ to all the expand_builtin defines which do not match the actual builtin_sync_ names.
2011-06-21  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c: Add sync_ or SYNC__ to builtin names.
	* sync-builtins.def: Add sync_ or SYNC__ to builtin names.
	* omp-low.c: Add sync_ or SYNC__ to builtin names.
	* c-family/c-common.c: Add sync_ or SYNC__ to builtin names.
	* c-family/c-omp.c: Add sync_ or SYNC__ to builtin names.
	* java/builtins.c: Add sync_ or SYNC__ to builtin names.
	* java/expr.c: Add sync_ or SYNC__ to builtin names.
	* cp/semantics.c: Add sync_ or SYNC__ to builtin names.
	* fortran/trans-openmp.c: Add sync_ or SYNC__ to builtin names.
	* fortran/trans-stmt.c: Add sync_ or SYNC__ to builtin names.
	* fortran/trans-decl.c: Add sync_ or SYNC__ to builtin names.

From-SVN: r175270
2011-06-21 19:04:33 +00:00
Daniel Carrera
f5c01f5bde trans-decl.c (gfc_build_builtin_function_decls): Updated declaration of caf_sync_all and caf_sync_images.
gcc/fortran/
2011-06-10  Daniel Carrera  <dcarrera@gmail.com>

        * trans-decl.c (gfc_build_builtin_function_decls):
        Updated declaration of caf_sync_all and caf_sync_images.
        * trans-stmt.c (gfc_trans_sync): Function
        can now handle a "stat" variable that has an integer type
        different from integer_type_node.

libgfortran/
2011-06-10  Daniel Carrera  <dcarrera@gmail.com>

        * caf/mpi.c (_gfortran_caf_sync_all,
        _gfortran_caf_sync_images): Functions have void return type
        and move status into parameter list.
        * caf/single.c (_gfortran_caf_sync_all,
        _gfortran_caf_sync_images): Functions have void return type
        and move status into parameter list.
        * caf/libcaf.h (_gfortran_caf_sync_all,
        _gfortran_caf_sync_images): Functions have void return type
        and move status into parameter list.

gcc/testsuite/
2011-06-10  Daniel Carrera  <dcarrera@gmail.com>

        * gfortran.dg/coarray/sync_1.f90: New test for
        "SYNC ALL", "SYNC MEMORY" and "SYNC IMAGES".

From-SVN: r174896
2011-06-10 12:22:24 +02:00
Asher Langton
cde3a7a969 re PR fortran/49268 (Invalid code generated for assumed-size Cray pointee)
* trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
        pointees as AS_EXPLICIT.

    * gfortran.dg/PR49268.f90: New test.

From-SVN: r174584
2011-06-02 21:41:12 +00:00
Tobias Burnus
9f3761c527 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * resolve.c (resolve_fl_variable): Handle static coarrays
        with non-constant cobounds.
        (resolve_symbol): Handle SAVE statement without arguments
        for coarrays.
        * trans-array.c (gfc_trans_array_cobounds): New function.
        (gfc_trans_array_bounds): Place code by call to it.
        * trans-array.h (gfc_trans_array_cobounds): New prototype.
        * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars):
        Handle static coarrays with nonconstant cobounds.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray/save_1.f90: New.
        * gfortran.dg/coarray_4.f90: Update dg-error.

From-SVN: r174503
2011-05-31 20:25:51 +02:00
Tobias Burnus
b8ff4e88e7 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
        * trans-decl.c (has_coarray_vars, caf_init_block,
        gfor_fndecl_caf_register): New file-global variables.
        (gfc_finish_var_decl): Make sure that coarrays in main are static.
        (gfc_build_qualified_array): Generate coarray token variable.
        (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
        (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
        (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
        static coarrays.
        (generate_local_decl): Check for local coarrays.
        (create_main_function): SYNC ALL before calling MAIN.
        (generate_coarray_sym_init): Register static coarray.
        (generate_coarray_init): Generate CAF registering constructor
        function.
        (gfc_generate_function_code): Call it, if needed, do not create
        cgraph twice.
        (gfc_generate_module_vars, gfc_process_block_locals): Call
        generate_coarray_init.
        * trans-types.c (gfc_get_nodesc_array_type): Generate pointers
        * for
        -fcoarray=lib.
        * trans.h (gfor_fndecl_caf_register): New variable.
        (lang_type): New element caf_token.
        (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.

2011-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray/registering_1.f90: New.

From-SVN: r174301
2011-05-26 19:41:34 +02:00
Tobias Burnus
4ca9939b79 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        actual argument is not an array; rank mismatch is diagnosted later.
        * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars):
        * Handle
        scalar coarrays.
        * trans-types.c (gfc_get_array_type_bounds): Ditto.

2011-05-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray/image_index_2.f90: New.

From-SVN: r173772
2011-05-15 18:20:18 +02:00
Janne Blomqvist
de8bd1420e PR 48915 Abort handling
From-SVN: r173750
2011-05-14 11:44:09 +03:00
Tobias Burnus
6f4d39bb3f re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        PR fortran/48919
        * trans.h: Move gfc_init_coarray_decl prototype ...
        * gfortran.h: ... to here.
        * parse.c (translate_all_program_units): Call
        * gfc_init_coarray_decl.
        (gfc_parse_file): Update translate_all_program_units call.
        * trans-decl.c (gfc_init_coarray_decl): Fix variable
        * declaration,
        new argument whether DECL_EXTERNAL should be used.
        (create_main_function): Update gfc_init_coarray_decl call.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Ditto.

From-SVN: r173528
2011-05-07 07:38:08 +02:00
Nathan Froyd
3d528853ba generalize build_case_label to the rest of the compiler
generalize build_case_label to the rest of the compiler
gcc/ada/
	* gcc-interface/trans.c (Case_Statement_to_gnu): Call
	build_case_label.

gcc/
	* except.c (sjlj_emit_dispatch_table): Call build_case_label.
	* gimplify.c (gimplify_switch_expr): Likewise.
	* omp-low.c (expand_omp_sections): Likewise.
	* tree-eh.c (lower_try_finally_switch): Likewise.
	(lower_eh_dispatch): Likewise.
	* tree.h (build_case_label): Declare.
	* tree.c (build_case_label): Define.

gcc/c-family/
	* c-common.c (c_add_case_label): Omit the loc argument to
	build_case_label.
	* c-common.h (build_case_label): Remove.
	* c-semantics.c (build_case_label): Remove.

gcc/cp/
	* decl.c (finish_case_label): Omit the loc argument to
	build_case_label.

gcc/fortran/
	* trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
	* trans-io.c (add_case): Likewise.
	* trans-stmt.c (gfc_trans_integer_select): Likewise.
	(gfc_trans_character_select): Likewise.

gcc/go/
	* go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.

gcc/java/
	* expr.c (expand_java_switch): Call build_case_label.
	(expand_java_add_case): Likewise.

From-SVN: r173467
2011-05-06 03:47:57 +00:00
Eric Botcazou
907a08d9b1 tree.h (get_pending_sizes): Remove prototype.
* tree.h (get_pending_sizes): Remove prototype.
	(put_pending_size): Likewise.
	(put_pending_sizes): Likewise.
	* stor-layout.c (pending_sizes): Delete.
	(get_pending_sizes): Likewise.
	(put_pending_size): Likewise.
	(put_pending_sizes): Likewise.
	(variable_size): Do not call put_pending_size and tidy up.
	* function.h (struct function): Remove dont_save_pending_sizes_p.
	* lto-streamer-in.c (input_function): Do not stream it.
	* lto-streamer-out.c (output_function): Likewise.
	* tree-inline.c (initialize_cfun): Do not copy it.
	* c-decl.c (store_parm_decls): Do not set it.
	* omp-low.c (create_task_copyfn): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
cp/
	* decl.c (start_preparsed_function): Likewise.
fortran/
	* trans-decl.c (trans_function_start): Likewise.
ada/
	* gcc-interface/utils.c (begin_subprog_body): Do not call
	get_pending_sizes.
	(end_subprog_body): Likewise.

From-SVN: r173424
2011-05-05 11:49:05 +00:00
Nathan Froyd
6c32445bf5 tree.h (build_function_type_array): Declare.
gcc/
	* tree.h (build_function_type_array): Declare.
	(build_varargs_function_type_array): Declare.
	(build_function_type_vec, build_varargs_function_type_vec): Define.
	* tree.c (build_function_type_array_1): New function.
	(build_function_type_array): New function.
	(build_varargs_function_type_array): New function.

gcc/fortran/
	* trans-decl.c (build_library_function_decl_1): Call
	build_function_type_vec.  Adjust argument list building accordingly.
	* trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
	* trans-types.c (gfc_get_function_type): Likewise.

From-SVN: r173375
2011-05-04 13:44:48 +00:00
Richard Guenther
df09d1d51c trans-array.c (gfc_trans_array_constructor_value): Use size_int for bounds of range types.
2011-05-04  Richard Guenther  <rguenther@suse.de>

	* trans-array.c (gfc_trans_array_constructor_value): Use
	size_int for bounds of range types.
	(gfc_trans_array_constructor_value): Use size_type_node
	for memcpy argument.
	* trans-common.c (build_field): Use gfc_charlen_type_node
	for lengths.
	* trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
	as type to build_int_cst.
	* trans-const.c (gfc_build_string_const): Use size_int
	for bounds of range types.
	(gfc_build_wide_string_const): Likewise.
	* trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
	for lengths.
	(gfc_trans_character_select): Likewise.
	(gfc_trans_character_select): Do not pass NULL
	as type to build_int_cst.
	(gfc_trans_character_select): Use size_int for bounds of range types.
	* trans-io.c (gfc_build_io_library_fndecls): Likewise.
	(add_case): Do not pass NULL as type to build_int_cst.
	(transfer_expr): Likewise.
	(transfer_array_desc): Likewise.
	* trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
	for lengths.
	(gfc_trans_assign_aux_var): Likewise.
	(create_main_function): Use size_int for bounds of range types.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
	NULL as type to build_int_cst.
	(gfc_conv_intrinsic_spacing): Likewise.
	(gfc_conv_intrinsic_rrspacing): Likewise.
	(gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.

From-SVN: r173374
2011-05-04 13:18:34 +00:00
Martin Jambor
7c589800e2 trans-decl.c (gfc_generate_function_code): Call cgraph_create_node instead of cgraph_get_create_node.
2011-04-19  Martin Jambor  <mjambor@suse.cz>

gcc/fotrean/
	* trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
	instead of cgraph_get_create_node.

From-SVN: r172715
2011-04-19 18:08:50 +02:00
Jim Meyering
cede950232 convert each use of gfc_free (p) to free (p)
Do that by running this command:
  perl -pi -e    's/\bgfc_free ?\(/free (/' \
    $(git grep -El '\bgfc_free ?\(')
which also corrects the few uses that lacked a space between
the function name and the open parenthesis.
Manually undo the change to the function definition itself
and its prototype.  They'll be removed next.
* array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
* constructor.c (node_free): Likewise.
* cpp.c (dump_queued_macros): Likewise.
* data.c (gfc_assign_data_value): Likewise.
* decl.c (free_variable, free_value, gfc_free_data): Likewise.
(gfc_free_data_all, match_old_style_init): Likewise.
(gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
Likewise.
(gfc_match_modproc): Likewise.
* dependency.c (check_section_vs_section): Likewise.
* error.c (gfc_pop_error, gfc_free_error): Likewise.
* expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
(gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
(find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
Likewise.
* frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
(strip_function_call, optimize_comparison): Likewise.
* interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
(CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
Likewise.
* intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
(gfc_convert_chartype): Likewise.
* io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
Likewise.
(gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
* match.c (gfc_free_iterator, gfc_match_associate): Likewise.
(gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
Likewise.
(free_case, gfc_free_forall_iterator): Likewise.
* misc.c: Likewise.
* module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
(free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
(mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
(mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
(mio_full_typebound_tree, skip_list, load_equiv): Likewise.
(free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
* openmp.c (gfc_free_omp_clauses): Likewise.
* options.c (gfc_post_options): Likewise.
* parse.c (select_type_pop, parse_omp_structured_block): Likewise.
* primary.c (gfc_free_structure_ctor_component): Likewise.
* resolve.c (resolve_structure_cons, check_host_association): Likewise.
(gfc_resolve_forall, resolve_equivalence): Likewise.
* scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
(gfc_define_undef_line, preprocessor_line, include_line): Likewise.
(load_file, gfc_read_orig_filename): Likewise.
* simplify.c (simplify_transformation_to_array): Likewise.
(gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
Likewise.
(gfc_simplify_compiler_options): Likewise.
* st.c (gfc_free_statement, gfc_free_statements): Likewise.
(gfc_free_association_list): Likewise.
* symbol.c (free_components, gfc_free_st_label, free_st_labels):
Likewise.
(gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
(free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
(free_common_tree, free_uop_tree, free_sym_tree): Likewise.
(gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
Likewise.
(gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
(gfc_free_namespace): Likewise.
* trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
(gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
(gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
* trans-common.c (get_init_field, create_common): Likewise.
* trans-const.c (gfc_build_wide_string_const): Likewise.
(gfc_conv_string_init): Likewise.
* trans-decl.c (gfc_generate_function_code): Likewise.
* trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
Likewise.
(SCALAR_POINTER, gfc_conv_statement_function): Likewise.
(gfc_trans_subarray_assign): Likewise.
* trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
* trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
(transfer_namelist_element, transfer_array_component): Likewise.
* trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
* trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
* trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
Likewise.

From-SVN: r172666
2011-04-18 19:20:53 +00:00
Tobias Burnus
0a826db38e re PR fortran/48624 (gfortran DECL issues in function declaration)
2011-05-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48624
        * trans-decl.c (gfc_get_extern_function_decl): Fix decl
        for external procedures with proc arguments.

From-SVN: r172604
2011-04-17 09:34:35 +02:00
Martin Jambor
a358e18845 cgraph.h (cgraph_node): Remove function declaration.
2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_node): Remove function declaration.
	(cgraph_create_node): Declare.
	(cgraph_get_create_node): Likewise.
	* cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
	Updated all callers.
	(cgraph_node): Renamed to cgraph_create_node, assert that a node for
	the decl does not already exist.  Call cgraph_get_create_node instead
	of cgraph_node.
	(cgraph_get_create_node): New function.
	(cgraph_same_body_alias): Update comment.
	(cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
	assert it does not return NULL.
	(cgraph_update_edges_for_call_stmt): Likewise.
	(cgraph_clone_edge): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
	instead of cgraph_node.
	(cgraph_add_new_function): Call cgraph_create_node or
	cgraph_get_create_node instead of cgraph_node.
	* cgraphbuild.c (record_reference): Call cgraph_get_create_node
	instead of cgraph_node.
	(record_eh_tables): Likewise.
	(mark_address): Likewise.
	(mark_load): Likewise.
	(build_cgraph_edges): Call cgraph_get_create_node instead
	of cgraph_node.
	(rebuild_cgraph_edges): Likewise.
	* cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
	instead of cgraph_node.
	(cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
	cgraph_node.
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
	cgraph_create_node instead of cgraph_node.
	* c-decl.c (finish_function): Call cgraph_get_create_node instead
	of cgraph_node.
	* lto-cgraph.c (input_node): Likewise.
	* lto-streamer-in.c (input_function): Likewise.
	* varasm.c (mark_decl_referenced): Likewise.
	(assemble_alias): Likewise.

gcc/c-family/
	* c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
	of cgraph_node.

gcc/cp/
	* cp/class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
	instead of cgraph_node.
	* cp/decl2.c (cxx_callgraph_analyze_expr): Likewise.
	(cp_write_global_declarations): Likewise.
	* cp/optimize.c (maybe_clone_body): Likewise.
	* cp/semantics.c (maybe_add_lambda_conv_op): Likewise.
	* cp/mangle.c (mangle_decl): Likewise.
	* cp/method.c (make_alias_for_thunk): Likewise.
	(use_thunk): Likewise.

gcc/ada/
	* gcc-interface/utils.c (end_subprog_body): Call
	cgraph_get_create_node instead of cgraph_node.

gcc/fortran/
	* trans-decl.c (gfc_generate_function_code): Call
	cgraph_get_create_node instead of cgraph_node.

gcc/objc/
	* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
	instead of cgraph_node.

From-SVN: r172307
2011-04-12 11:27:18 +02:00
Mike Stump
dd5a833e6e Remove doubled up words.
From-SVN: r172247
2011-04-10 18:46:45 +00:00
Tobias Burnus
a3935ffcb7 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-04-04  Tobias Burnus  <burnus@net-b.de>
            Mikael Morin  <mikael.morin@sfr.fr>

        PR fortran/18918
        * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
        * expr.c (gfc_is_coindexed): Ditto.
        * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
        * interface.c (compare_parameter): Use gfc_expr_attr and
        gfc_is_coindexed.
        * resolve.c (check_dimension, compare_spec_to_ref,
        resolve_allocate_expr, check_data_variable): Update for
        DIMEN_THIS_IMAGE.
        * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
        gfc_simplify_ucobound): Allow non-constant bounds.
        * trans-array.c (gfc_set_loop_bounds_from_array_spec,
        gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
        gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
        gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
        gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_conv_loop_setup,
        gfc_trans_array_bounds, gfc_conv_expr_descriptor,
        gfc_walk_variable_expr): Handle codimen.
        * trans-decl.c (gfc_build_qualified_array): Save cobounds.
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
        (conv_intrinsic_cobound): New function.
        (gfc_conv_intrinsic_function): Call it.
        (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
        ucobound, lcobound, this_image.
        * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
        (gfc_get_dtype): Honour corank.
        (gfc_get_nodesc_array_type): Save corank and codimensions.
        (gfc_get_array_type_bounds): Save cobound.
        * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
        (gfc_array_kind): Add corank item.
        (GFC_TYPE_ARRAY_CORANK): New macro.

2011-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray_10.f90: Add coarray descriptor diagnostic
        check.
        * gfortran.dg/coarray_13.f90: Add checks for run-time cobounds.
        * gfortran.dg/coarray_15.f90: New.


Co-Authored-By: Mikael Morin <mikael.morin@sfr.fr>

From-SVN: r171949
2011-04-04 20:35:13 +02:00
Tobias Burnus
60386f50ce re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
        GFC_ISYM_NUM_IMAGES.
        (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
        * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
        rename.
        * invoke.texi (-fcoarray=): Document "lib" argument.
        * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
        * libgfortran.h (libgfortran_stat_codes): Add comments.
        * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
        * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
        Handle GFC_FCOARRAY_LIB.
        * trans.h (gfc_init_coarray_decl): New prototype.
        (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
        gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
        gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
        gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
        gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
        New global variables.
        * trans-decl.c: Declare several CAF functions (cf. above).
        (gfc_build_builtin_function_decls): Initialize those.
        (gfc_init_coarray_decl): New function.
        (create_main_function): Call CAF init/finalize functions.
        * trans-intrinsic.c (trans_this_image, trans_num_images): New.
        (gfc_conv_intrinsic_function): Call those.
        * trans-stmt.c (gfc_trans_stop, gfc_trans_sync,
        * gfc_trans_critical):
        Add code for GFC_FCOARRAY_LIB.

From-SVN: r171568
2011-03-27 10:30:28 +02:00
Paul Thomas
0b3b617eab re PR fortran/45743 (gfortran.dg/whole_file_3.f90 ICE: verify_stmts failed: invalid conversion in gimple call with -finline-small-functions)
2011-02-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45743
	* trans-decl.c (gfc_get_extern_function_decl): Don't use the
	gsymbol backend_decl if the procedure has a formal argument
	that is a procedure.

2011-02-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45743
	* gfortran.dg/whole_file_32.f90 : New test.

From-SVN: r170414
2011-02-22 20:33:45 +00:00
Tobias Burnus
ceccaacf4f re PR fortran/47797 (Debug: Odd first break point for subroutine breakp w/ allocatables)
2011-02-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47797
        * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus
        and gfc_restore_backend_locus to have better debug locations.
        * trans-array.c (gfc_trans_deferred_array): Ditto.

From-SVN: r170347
2011-02-20 23:16:47 +01:00
Paul Thomas
0101807c03 re PR fortran/45077 (ICE with -fwhole-file in fold_convert_loc, at fold-const.c:2021)
2011-02-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45077
	PR fortran/44945
	* trans-types.c (gfc_get_derived_type): Remove code that looks
	for decls in gsym and add call to gfc_get_module_backend_decl.
	* trans.h : Add prototype for gfc_get_module_backend_decl.
	* trans-decl.c (gfc_get_module_backend_decl): New function.
	(gfc_get_symbol_decl): Call it.

2011-02-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/45077
	PR fortran/44945
	* gfortran.dg/whole_file_28.f90 : New test.
	* gfortran.dg/whole_file_29.f90 : New test.

From-SVN: r170337
2011-02-20 16:23:50 +00:00
Janus Weil
c7f1781582 re PR fortran/47637 ([OOP] Memory leak involving INTENT(OUT) CLASS argument w/ allocatable components)
2011-02-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47637
	* trans-decl.c (init_intent_out_dt): Handle CLASS arguments.


2011-02-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47637
	* gfortran.dg/auto_dealloc_2.f90: New.

From-SVN: r169978
2011-02-09 16:58:05 +01:00
Paul Thomas
8d51f26f8e re PR fortran/45170 ([F2003] allocatable character lengths)
2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
	    Tobias Burnus  <burnus@gcc.gnu.org>

	PR fortran/45170
	PR fortran/35810
	PR fortran/47350
	* interface.c (compare_actual_formal): An allocatable or pointer
	deferred length actual is only allowed if the formal argument
	is also deferred length. Clean up whitespace.
	* trans-expr.c (gfc_conv_procedure_call): Pass string length for
	deferred character length formal arguments by reference. Do the
	same for function results.
	(gfc_trans_pointer_assignment): Do not do runtime check of lhs
	and rhs character lengths, if deferred length lhs.  In this case
	set the lhs character length to that of the rhs.
	(gfc_conv_string_parameter): Remove assert that string length is
	an integer type.
	(is_scalar_reallocatable_lhs): New function.
	(alloc_scalar_allocatable_for_assignment): New function.
	(gfc_trans_assignment_1): Call above new function. If the rhs is
	a deferred character length itself, makes ure that the function
	is called before reallocation, so that the length is available.
	(gfc_trans_asssignment): Remove error about assignment to
	deferred length character variables.
	* gfortran.texi : Update entry about (re)allocation on
	assignment.
	* trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
	length character variables.
	* module.c (mio_typespec): Transfer deferred characteristic.
	* trans-types.c (gfc_get_function_type): New code to generate
	hidden typelist, so that those character lengths that are
	passed by reference get the right type.
	* resolve.c (resolve_contained_fntype): Supress error for
	deferred character length functions.
	(resolve_function, resolve_fl_procedure) The same.
	(check_symbols): Remove the error that support for
	entity with deferred type parameter is not yet implemented.
	(resolve_fl_derived): The same.
	match.c (alloc_opt_list): Allow MOLD for deferred length object.
	* trans-decl.c (gfc_get_symbol_decl): For deferred character
	length dummies, generate a local variable for string length.
	(create_function_arglist): Hidden length can be a pointer.
	(gfc_trans_deferred_vars): For deferred character length
	results and dummies, assign the string length to the local
	variable from the hidden argument on entry and the other way
	round on exit, as appropriate.

2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
	    Tobias Burnus  <burnus@gcc.gnu.org>

	PR fortran/45170
	PR fortran/35810
	PR fortran/47350
	* gfortran.dg/realloc_on_assign_3.f03: New test.
	* gfortran.dg/realloc_on_assign_4.f03: New test.
	* gfortran.dg/realloc_on_assign_5.f90: New test.
	* gfortran.dg/allocatable_function_5.f90: New test.
	* gfortran.dg/allocate_deferred_char_scalar_1.f90: New test.
	* gfortran.dg/deferred_type_param_2.f90: Remove two "not yet
	implemented" dg-errors.


Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>

From-SVN: r169356
2011-01-28 13:53:19 +00:00
Tobias Burnus
f18694de28 re PR fortran/47474 (Wrong code with allocatable scalar, allocatable components as function result)
2011-01-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47474
        * trans-decl.c (gfc_generate_function_code): Fix init
        of allocatable result variable with allocatable components.

From-SVN: r169340
2011-01-27 23:47:08 +01:00
Tobias Burnus
25cbe58f23 re PR fortran/47421 (Wrong-code: Value of scalar ALLOCATABLE CHARACTER(len=n) dummy is mangled)
2011-01-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47421
        * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
        scalar allocatable dummy arguments.

2011-01-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47421
        * gfortran.dg/allocatable_scalar_12.f90: New.

From-SVN: r169145
2011-01-23 23:26:27 +01:00
Kai Tietz
384f586a53 re PR fortran/47260 (DLLEXPORT: TREE_PUBLIC for procedures lost between trans-decl.c and tree.c)
2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/47260
        * trans-decl.c (gfc_get_extern_function_decl,
        build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
        calling decl_attributes.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r168757
2011-01-13 19:04:03 +01:00
Janus Weil
8c077737e2 re PR fortran/47024 ([OOP] STORAGE_SIZE (for polymorphic types): Segfault at run time)
2011-01-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47024
	* trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
	of polymorphic allocatables according to their declared type.


2011-01-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47024
	* gfortran.dg/storage_size_3.f08: New.

From-SVN: r168505
2011-01-05 10:05:44 +01:00
Tobias Burnus
323cea66a6 re PR fortran/46678 (Wrong code with strings)
2010-11-27  Tobias Burnus  <burnus@net-b.de>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/46678
	trans-decl.c (gfc_trans_auto_character_variable): Use gfc_init_block
	instead of gfc_start_block.

Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>

From-SVN: r167218
2010-11-28 07:42:56 +00:00
Janus Weil
6312ef4519 re PR fortran/46581 ([OOP] segfault in SELECT TYPE with associate-name)
2010-11-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46581
	* trans.h (gfc_process_block_locals): Removed second argument.
	* trans-decl.c (trans_associate_var): Moved to trans-stmt.c.
	(gfc_trans_deferred_vars): Skip ASSOCIATE variables.
	(gfc_process_block_locals): Don't mark associate names to be
	initialized.
	* trans-stmt.c (trans_associate_var): Moved here from trans-decl.c.
	(gfc_trans_block_construct): Call 'trans_associate_var' from here
	to make sure SELECT TYPE with associate-name is treated correctly.

2010-11-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46581
	* gfortran.dg/select_type_19.f03: New.

From-SVN: r167154
2010-11-25 23:04:59 +01:00
Tobias Burnus
c28d1d9b76 re PR fortran/45742 (VOLATILE has no effect)
2010-11-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45742
        * trans-common.c (build_field): Add TREE_SIDE_EFFECTS for
        * volatile.
        * trans-decl.c (gfc_finish_var_decl): Ditto.
        (create_function_arglist): Handle volatile dummy arguments.

2010-11-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45742
        * gfortran.dg/volatile12.f90: New.

From-SVN: r166701
2010-11-13 11:29:04 +01:00
Janus Weil
b04533af33 re PR fortran/46313 ([OOP] class container naming collisions)
2010-11-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46313
	* gfortran.h (gfc_add_data_component,gfc_add_vptr_component,
	gfc_add_hash_component,gfc_add_size_component,
	gfc_add_def_init_component): New macros.
	* class.c (gfc_add_component_ref): Renamed data component.
	(get_unique_type_string): New function.
	(gfc_build_class_symbol): Use 'get_unique_type_string' to construct
	uniques names for the class containers. Rename components.
	(gfc_find_derived_vtab): Use 'get_unique_type_string' to construct
	uniques names for the vtab symbols. Rename components.
	* decl.c (attr_decl1): Renamed class container components.
	* iresolve.c (gfc_resolve_extends_type_of): Ditto.
	* match.c (select_type_set_tmp): Renamed temporaries.
	* module.c (read_module): Renamed vtab and vtype symbols.
	* resolve.c (resolve_structure_cons,resolve_typebound_function,
	resolve_typebound_subroutine,resolve_deallocate_expr,
	resolve_select_type,resolve_fl_derived): Renamed class container and
	vtab components.
	* trans-array.c (structure_alloc_comps): Ditto.
	* trans-decl.c (gfc_trans_deferred_vars): Ditto.
	* trans-expr.c (gfc_conv_derived_to_class,gfc_conv_structure,
	gfc_trans_class_init_assign,gfc_trans_class_assign): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof,
	gfc_conv_intrinsic_storage_size,gfc_conv_allocated,gfc_conv_associated,
	gfc_conv_same_type_as): Ditto.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

2010-11-09  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46313
	* gfortran.dg/class_29.f03: New.

From-SVN: r166480
2010-11-09 11:39:46 +01:00
Jerry DeLisle
f585b0d3b5 re PR fortran/43899 (Wrong unused-variable warning with NAMELISTs)
2010-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/43899
	* trans-decl.c (generate_local_decl): Do not generate unused warning
	for variables in namelists.

From-SVN: r166461
2010-11-09 00:08:20 +00:00
Nathan Froyd
e8160c9a60 builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert.
gcc/
	* builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
	fold_convert.
	* c-typeck.c (build_function_call_vec): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* cgraphunit.c (assemble_thunk): Likewise.
	* config/sparc/sparc.c (sparc_fold_builtin): Likewise.
	* fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
	(fold_binary_loc, fold_ternary_loc): Likewise.
	* gimple-fold.c (get_symbol_constant_value): Likewise.
	* gimple-low.c (lower_builtin_setjmp): Likewise.
	* gimple.c (gimple_cond_get_ops_from_tree): Likewise.
	* gimplify.c (gimplify_init_constructor): Likewise.
	* lambda.h (build_linear_expr): Likewise.
	* omp-low.c (omp_reduction_init): Likewise.
	* tree-inline.c (remap_ssa_name): Likewise.
	* tree-object-size.c (compute_object_sizes): Likewise.
	* tree-sra.c (init_subtree_with_zero): Likewise.
	(sra_ipa_modify_assign): Likewise.
	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
	* tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
	(eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
	(undistribute_ops_list): Likewise.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
	* tree-vect-stmts.c (vectorizable_call): Likewise.
	* tree.c (build_vector_from_ctor, build_one_cst): Likewise.
	(build_zero_cst): Handle more cases directly.  Update comment.

gcc/cp/
	* class.c (build_base_path, add_vcall_offset): Use build_zero_cst
	instead of fold_convert.
	* init.c (build_zero_init): Likewise.
	* typeck.c (cp_build_binary_op): Likewise.

gcc/fortran/
	* trans-decl.c (add_argument_checking): Use build_zero_cst instead of
	fold_convert.
	* trans-expr.c (gfc_conv_missing_dummy, fill_with_spaces): Likewise.
	* trans-stmt.c (gfc_trans_do): Likewise.

From-SVN: r166227
2010-11-03 00:49:00 +00:00
Steven G. Kargl
e69afb29dc 2010-11-02 Steven G.
2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/45170
        * array.c (gfc_match_array_constructor): Reject deferred type
        parameter (DTP) in type-spec.
        * decl.c (char_len_param_value, match_char_length,
        gfc_match_char_spec, build_sym, variable_decl,
        enumerator_decl): Support DTP.
        * expr.c (check_inquiry): Fix check due to support for DTP.
        * gfortran.h (gfc_typespec): Add Boolean 'deferred'.
        * misc.c (gfc_clear_ts): Set it to false.
        * match.c (gfc_match_allocate): Support DTP.
        * resolve.c (resolve_allocate_expr): Not-implemented error for
        * DTP.
        (resolve_fl_variable): Add DTP constraint check.
        * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
        error for DTP.

2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/45170
        * gfortran.dg/deferred_type_param_1.f90: New.
        * gfortran.dg/deferred_type_param_2.f90: New.
        * gfortran.dg/initialization_1.f90: Update dg-errors.
        * gfortran.dg/initialization_9.f90: Update dg-errors.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r166205
2010-11-02 18:09:58 +01:00