summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/trans-decl.c
Commit message (Collapse)AuthorAgeFilesLines
...
* 2012-06-13 Tobias Burnus <burnus@net-b.de>burnus2012-06-131-6/+3
| | | | | | | | | | | | | | | | PR fortran/53643 * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays. * trans-array.c (structure_alloc_comps): Don't loop for scalar coarrays. 2012-06-13 Tobias Burnus <burnus@net-b.de> PR fortran/53643 * gfortran.dg/intent_out_7.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188507 138bc75d-0d04-0410-961f-82ee72b054a4
* * output.h (__gcc_host_wide_int__): Move to hwint.h.steven2012-05-311-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (decl_default_tls_model): Move to tree.h (dump_file): Move to system.h. (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor, dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline, dbxout_begin_empty_stabs, dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero, dbxout_stab_value_zero, dbxout_stab_value_label_diff, dbxout_stab_value_internal_label, dbxout_stab_value_internal_label_diff): Move from here ... * dbxout.h: ... to here. * system.h (dump_file): Moved here from output.h. * hwint.h (__gcc_host_wide_int__): Moved here from output.h. * tree.h (decl_default_tls_model): Moved here from output.h. * varasm.c (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor): Move from here ... * dbxout.c: ... to here. * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers. * collect2.h (dump_file): Rename to dump_ld_file. * collect2.c: Likewise. * tlink.c: Likewise. * alias.c: Do not include output.h. * auto-inc-dec.c: Likewise. * bt-load.c: Likewise. * caller-save.c: Likewise. * cfg.c: Likewise. * cfgbuild.c: Likewise. * cfgcleanup.c: Likewise. * cfglayout.c: Likewise. * cfgloop.c: Likewise. * cfgloopanal.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.c: Likewise. * cgraphclones.c: Likewise. * combine-stack-adj.c: Likewise. * combine.c: Likewise. * cprop.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * dbgcnt.c: Likewise. * df-problems.c: Likewise. * df-scan.c: Likewise. * dojump.c: Likewise. * fwprop.c: Likewise. * gcse.c: Likewise. * graph.c: Likewise. * haifa-sched.c: Likewise. * hw-doloop.c: Likewise. * ipa-inline-transform.c: Likewise. * ipa-pure-const.c: Likewise. * ipa-reference.c: Likewise. * ipa-utils.c: Likewise. * ira-build.c: Likewise. * ira-emit.c: Likewise. * lcm.c: Likewise. * loop-doloop.c: Likewise. * loop-invariant.c: Likewise. * loop-iv.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * lto-cgraph.c: Likewise. * lto-section-in.c: Likewise. * lto-streamer-in.c: Likewise. * mcf.c: Likewise. * mode-switching.c: Likewise. * postreload-gcse.c: Likewise. * postreload.c: Likewise. * predict.c: Likewise. * profile.c: Likewise. * ree.c: Likewise. * reg-stack.c: Likewise. * regcprop.c: Likewise. * regmove.c: Likewise. * regstat.c: Likewise. * reload1.c: Likewise. * sched-ebb.c: Likewise. * sel-sched-dump.c: Likewise. * simplify-rtx.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * tracer.c: Likewise. * tree-affine.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-dfa.c: Likewise. * tree-into-ssa.c: Likewise. * tree-nomudflap.c: Likewise. * tree-optimize.c: Likewise. * tree-pretty-print.c: Likewise. * tree-profile.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-loop-ch.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-loop-unswitch.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-tail-merge.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssa.c: Likewise. * value-prof.c: Likewise. * var-tracking.c: Likewise. * web.c: Likewise. * config/m32r/m32r.c: Include dbxout.h. * config/pa/pa.c: Likewise. * config/rs6000/rs6000.c: Likewise. * Makefile.in: Fix dependencies. * config/rs6000/t-rs5000: Likewise. c-family/ * c-ada-spec.c: Do not include output.h. * c-semantics.c: Likewise. cp/ * call.c: Do not include output.h. * class.c: Likewise. * except.c: Likewise. * friend.c: Likewise. * init.c: Likewise. * lex.c: Likewise. * method.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. objc/ * objc-act.c: Do not include output.h. fortran/ * trans-common.c: Do not include output.h. * trans-decl.c: Likewise. java/ * resource.c: Do not include output.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188082 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 52428 Range checking when reading integer values.jb2012-05-141-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/fortran ChangeLog: 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 * gfortran.texi: Update _gfortran_set_options documentation. * invoke.texi: Remove runtime behavior description of -fno-range-check. * trans-decl.c (create_main_function): Don't pass the range-check setting to the library. libgfortran ChangeLog: 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 * io/io.h (max_value): Rename to si_max, remove second argument. * io/list_read.c (convert_integer): Use unsigned types when parsing the digits, set max value depending on the sign. * io/read.c (max_value): Rename to si_max, remove second argument, simplify. (read_decimal): Set max value depending on sign, always check overflow. (read_radix): Calculate max unsigned value directly. * libgfortran.h (struct compile_options_t): Remove range_check field. * runtime/compile_options.c (set_options): Skip handling options[7]. (init_compile_options): Don't set removed field. gcc/testsuite ChangeLog: 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 * gfortran.dg/int_range_io_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187478 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-05-14 Tobias Burnus <burnus@net-b.de>burnus2012-05-141-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | PR fortran/49110 PR fortran/51055 PR fortran/53329 * trans-expr.c (gfc_trans_assignment_1): Fix allocation handling for assignment of function results to allocatable deferred-length strings. * trans-decl.c (gfc_create_string_length): For deferred-length module variables, include module name in the assembler name. (gfc_get_symbol_decl): Don't override the assembler name. 2012-05-14 Tobias Burnus <burnus@net-b.de> PR fortran/49110 PR fortran/51055 PR fortran/53329 * gfortran.dg/deferred_type_param_4.f90: New. * gfortran.dg/deferred_type_param_6.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187472 138bc75d-0d04-0410-961f-82ee72b054a4
* * cgraphbuild.c (build_cgraph_edges): Do not finalize varshubicka2012-05-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | with VALUE_EXPR. * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR are removable. * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR need to wrapup. (compile_file): Do not output variables. * cgraphbuild.c (varpool_finalize_decl): When var is finalized late, output it. * langhooks.c: Include timevar.h (write_global_declarations): Finalize compilation unit after wrapup; set timevars correctly. * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs not to be added to varpool. * varpool.c (varpool_assemble_decl): Sanity check that we are called only on cases where it makes sense; skip constant pool and value expr vars. * lto.c (do_whole_program_analysis): Set timevars correctly. (lto_main): Likewise. * trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN. * trans-decl.c (gfc_finish_cray_pointee): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187314 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-05-04 Tobias Burnus <burnus@net-b.de>burnus2012-05-041-1/+1
| | | | | | | | | | | | | | | | | | PR fortran/53175 * resolve.c (resolve_variable): Set public_used if a private module variable is used in a (public) specification expression. * trans-decl.c (gfc_finish_var_decl): Mark those TREE_PUBLIC. 2012-05-04 Tobias Burnus <burnus@net-b.de> PR fortran/53175 gfortran.dg/public_private_module_5.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187175 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/steven2012-04-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | * targhooks.c (default_case_values_threshold): Fix code style nit. * stmt.c (add_case_node, expand_case): Move logic to remove/reduce case range and type folding from here... * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE type, as documented in tree.def fortran/ * trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR with NULL_TREE type instead of void_type_node. * trans-io.c (io_result): Likewise. * trans-stmt.c (gfc_trans_integer_select, gfc_trans_character_select): Likewise. go/ * go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR with NULL_TREE type instead of void_type_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186579 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-04-14 Tobias Burnus <burnus@net-b.de>burnus2012-04-151-1/+2
| | | | | | | | | | | | | | | | | | | | | PR fortran/52916 PR fortran/40973 * gfortran.h (symbol_attribute): Add public_used. * interface.c (check_sym_interfaces, check_uop_interfaces, gfc_check_interfaces): Set it. * resolve.c (resolve_typebound_procedure): Ditto. * trans-decl.c (build_function_decl): Use it. 2012-04-14 Tobias Burnus <burnus@net-b.de> PR fortran/52916 PR fortran/40973 * gfortran.dg/public_private_module_3.f90: New. * gfortran.dg/public_private_module_4.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186464 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-04-08 Tobias Burnus <burnus@net-b.de>burnus2012-04-081-3/+5
| | | | | | | | | | | | | | | | | | | PR fortran/52751 * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC for PRIVATE module variables without C-binding label. PR fortran/40973 * trans-decl.c (build_function_decl): Ditto for procedures. 2012-04-08 Tobias Burnus <burnus@net-b.de> PR fortran/40973 PR fortran/52751 * gfortran.dg/public_private_module_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186223 138bc75d-0d04-0410-961f-82ee72b054a4
* * f95-lang.c (yyerror, yylex): Remove.steven2012-03-061-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | (clear_binding_stack): Remove, fold into its only user. (LANG_HOOKS_PRINT_IDENTIFIER): Do not re-define. (ridpointers): Remove. (gfc_eh_initialized_p): Make static. (gfc_truthvalue_conversion): Move to convert.c. (gfc_be_parse_file): Clear binding level stack when done. (gfc_print_identifier): Remove. (pushlevel): Remove ignored 'ignore' argument. Update all callers. (poplevel): Remove unused 'reverse' argument. Update all callers. (ggc_p): Remove. (gfc_builtin_function): Make static. Do not attempt to make RTL for builtin functions. * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c, and made static. * trans.h (pushlevel, poplevel): Adjust prototypes. (gfc_truthvalue_conversion, gfc_builtin_function): Remove prototypes. * trans-openmp.c: Update calls to pushlevel and poplevel. * trans.c: Likewise. * trans-decl.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185015 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-02-05 Thomas König <tkoenig@gcc.gnu.org>tkoenig2012-02-051-0/+16
| | | | | | | | | | | | | | | | PR fortran/48847 * trans-decl.c: Warn about unused dummy procedure arguments if -Wunused-dummy-argument is specified. Suppress middle-end warnings about procedure arguments. 2012-02-05 Thomas König <tkoenig@gcc.gnu.org> PR fortran/48847 * gfortran.dg/warn_unused_dummy_argument_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183916 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 51808 Support arbitrarily long bind(C) binding labels.jb2012-01-291-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/51808 * decl.c (set_binding_label): Move prototype from match.h to here. (curr_binding_label): Make a pointer rather than static array. (build_sym): Check sym->binding_label pointer rather than array, update set_binding_label call, handle curr_binding_label changes. (set_binding_label): Handle new curr_binding_label, dest_label double ptr, and sym->binding_label. (verify_bind_c_sym): Handle sym->binding_label being a pointer. (set_verify_bind_c_sym): Check sym->binding_label pointer rather than array, update set_binding_label call. (gfc_match_bind_c_stmt): Handle curr_binding_label change. (match_procedure_decl): Update set_binding_label call. (gfc_match_bind_c): Change binding_label to pointer, update gfc_match_name_C call. * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro. (gfc_symbol): Make binding_label a pointer. (gfc_common_head): Likewise. * match.c (gfc_match_name_C): Heap allocate bind(C) name. * match.h (gfc_match_name_C): Change prototype argument. (set_binding_label): Move prototype to decl.c. * module.c (struct pointer_info): Make binding_label a pointer. (free_pi_tree): Free unused binding_label. (mio_read_string): New function. (mio_write_string): New function. (load_commons): Redo reading of binding_label. (read_module): Likewise. (write_common_0): Change to write empty string instead of name if no binding_label. (write_blank_common): Write empty string for binding label. (write_symbol): Change to write empty string instead of name if no binding_label. * resolve.c (gfc_iso_c_func_interface): Don't set binding_label. (set_name_and_label): Make binding_label double pointer, use asprintf. (gfc_iso_c_sub_interface): Make binding_label a pointer. (resolve_bind_c_comms): Handle cases if gfc_common_head->binding_label is NULL. (gfc_verify_binding_labels): sym->binding_label is a pointer. * symbol.c (gfc_free_symbol): Free binding_label. (gfc_new_symbol): Rely on XCNEW zero init for binding_label. (gen_special_c_interop_ptr): Don't set binding label. (generate_isocbinding_symbol): Insert binding_label into symbol table. (get_iso_c_sym): Use pointer assignment instead of strcpy. * trans-common.c (gfc_sym_mangled_common_id): Handle com->binding_label being a pointer. * trans-decl.c (gfc_sym_mangled_identifier): Handle sym->binding_label being a pointer. (gfc_sym_mangled_function_id): Likewise. testsuite ChangeLog 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/51808 * gfortran.dg/module_md5_1.f90: Update MD5 sum. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183677 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-01-27 Tobias Burnus <burnus@net-b.de>burnus2012-01-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/51970 PR fortran/51977 * primary.c (gfc_match_varspec. gfc_match_rvalue): Set handle array spec for BT_CLASS. * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym) * frontend-passes.c (create_var): Ditto. * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto. * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer instead of attr.pointer. (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS. * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert. * trans-stmt.c (trans_associate_var): Ask for the descriptor. 2012-01-27 Tobias Burnus <burnus@net-b.de> PR fortran/51970 PR fortran/51977 * gfortran.dg/move_alloc_13.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183622 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-01-16 Tobias Burnus <burnus@net-b.de>burnus2012-01-161-1/+4
| | | | | | | | | | | | | | | | | | | | PR fortran/51809 * class.c (gfc_find_derived_vtab): Mark __vtab and __def_init as FL_VARIABLE not as FL_PARAMETER. * expr.c (gfc_simplify_expr): Remove special handling of __vtab. * resolve.c (resolve_values): Ditto. * trans-decl.c (gfc_get_symbol_decl): Mark __vtab and __def_init as TREE_READONLY. 2012-01-16 Tobias Burnus <burnus@net-b.de> PR fortran/51809 * gfortran.dg/use_20.f90: New git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183219 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-01-06 Tobias Burnus <burnus@net-b.de>burnus2012-01-061-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trans-openmp.c (gfc_omp_clause_dtor, * gfc_trans_omp_array_reduction): Update call to gfc_trans_dealloc_allocated. * trans.c (gfc_allocate_using_malloc): Fix spacing. (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to label_finish when an error occurs. (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib. * trans.h (gfc_allocate_allocatable, * gfc_deallocate_with_status): Update prototype. (gfor_fndecl_caf_deregister): New tree symbol. * trans-expr.c (gfc_conv_procedure_call): Update gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls. * trans-array.c (gfc_array_allocate, * gfc_trans_dealloc_allocated, structure_alloc_comps, gfc_trans_deferred_array): Ditto. (gfc_array_deallocate): Handle coarrays with -fcoarray=lib. * trans-array.h (gfc_array_deallocate, gfc_array_allocate, gfc_trans_dealloc_allocated): Update prototypes. * trans-stmt.c (gfc_trans_sync): Fix indentation. (gfc_trans_allocate): Fix errmsg padding and label handling. (gfc_trans_deallocate): Ditto and handle -fcoarray=lib. * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS. * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value to avoid other stats accidentally matching this one. * trans-decl.c (gfor_fndecl_caf_deregister): New global var. (gfc_build_builtin_function_decls): Fix prototype decl of caf_register and add decl for caf_deregister. (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib. * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to gfc_deallocate_with_status. 2012-01-06 Tobias Burnus <burnus@net-b.de> * caf/single.c (_gfortran_caf_register, * _gfortran_caf_deregister): Fix token handling. * caf/mpi.c (_gfortran_caf_register, _gfortran_caf_deregister): * Ditto. * caf/libcaf.h (STAT_STOPPED_IMAGE): Sync with libgfortran.h. (_gfortran_caf_register, _gfortran_caf_deregister): Update prototype. 2012-01-06 Tobias Burnus <burnus@net-b.de> * gfortran.dg/deallocate_stat_2.f90: New. * coarray/allocate_errgmsg.f90: New. * gfortran.dg/coarray_lib_alloc_1.f90: New. * gfortran.dg/coarray_lib_alloc_2.f90: New. * coarray/subobject_1.f90: Fix for num_images > 1. * gfortran.dg/deallocate_stat.f90: Update due to changed stat= handling. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182951 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-15 Paul Thomas <pault@gcc.gnu.org>pault2011-12-151-1/+1
| | | | | | | | | | | | | | | | | * trans-expr.c (gfc_walk_function_expr): Detect elemental procedure components as well as elemental procedures. * trans-array.c (gfc_conv_procedure_call): Ditto. * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous break for class pointers to continue. 2011-12-15 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/class_array_3.f03: Remove explicit indexing of A%disp() to use scalarizer. * gfortran.dg/class_array_9.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182389 138bc75d-0d04-0410-961f-82ee72b054a4
* PR debug/51517jakub2011-12-151-1/+11
| | | | | | | | | | | | * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span. (gfc_trans_deferred_vars): Instead add its runtime initialization here. * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test !DECL_IGNORED_P instead of !DECL_ARTIFICIAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182362 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-11 Tobias Burnus <burnus@net-b.de>burnus2011-12-111-13/+22
| | | | | | | | | | | | | | | | PR fortran/50923 * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only if the front end has printed a warning. (gfc_generate_function_code): Fix unset-result warning. 2011-12-11 Tobias Burnus <burnus@net-b.de> PR fortran/50923 * gfortran.dg/warn_function_without_result_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182211 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-11 Paul Thomas <pault@gcc.gnu.org>pault2011-12-111-4/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tobias Burnus <burnus@gcc.gnu.org> PR fortran/41539 PR fortran/43214 PR fortran/43969 PR fortran/44568 PR fortran/46356 PR fortran/46990 PR fortran/49074 * interface.c(symbol_rank): Return the rank of the _data component of class objects. (compare_parameter): Also compare the derived type of the class _data component for type mismatch. Similarly, return 1 if the formal and _data ranks match. (compare_actual_formal): Do not compare storage sizes for class expressions. It is an error if an actual class array, passed to a formal class array is not full. * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get, gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get, gfc_vtable_extends_get, gfc_vtable_def_init_get, gfc_vtable_copy_get): New functions for class API. (gfc_conv_derived_to_class): For an array reference in an elemental procedure call retain the ss to provide the scalarized array reference. Moved in file. (gfc_conv_class_to_class): New function. (gfc_conv_subref_array_arg): Use the type of the class _data component as a basetype. (gfc_conv_procedure_call): Ensure that class array expressions have both the _data reference and an array reference. Use gfc_conv_class_to_class to handle class arrays for elemental functions in scalarized loops, class array elements and full class arrays. Use a call to gfc_conv_subref_array_arg in order that the copy-in/copy-out for passing class arrays to derived type arrays occurs correctly. (gfc_conv_expr): If it is missing, add the _data component between a class object or component and an array reference. (gfc_trans_class_array_init_assign): New function. (gfc_trans_class_init_assign): Call it for array expressions. * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for class scalars since their size will depend on the dynamic type. (build_class_array_ref): New function. (gfc_conv_scalarized_array_ref): Call build_class_array_ref. (gfc_array_init_size): Add extra argument, expr3, that represents the SOURCE argument. If present,use this for the element size. (gfc_array_allocate): Also add argument expr3 and use it when calling gfc_array_init_size. (structure_alloc_comps): Enable class arrays. * class.c (gfc_add_component_ref): Carry over the derived type of the _data component. (gfc_add_class_array_ref): New function. (class_array_ref_detected): New static function. (gfc_is_class_array_ref): New function that calls previous. (gfc_is_class_scalar_expr): New function. (gfc_build_class_symbol): Throw not implemented error for assumed size class arrays. Remove error that prevents CLASS arrays. (gfc_build_class_symbol): Prevent pointer/allocatable conflict. Also unset codimension. (gfc_find_derived_vtab): Make 'copy' elemental and set the intent of the arguments accordingly.: * trans-array.h : Update prototype for gfc_array_allocate. * array.c (gfc_array_dimen_size): Return failure if class expr. (gfc_array_size): Likewise. * gfortran.h : New prototypes for gfc_add_class_array_ref, gfc_is_class_array_ref and gfc_is_class_scalar_expr. * trans-stmt.c (trans_associate_var): Exclude class targets from test. Move the allocation of the _vptr to an earlier time for class objects. (trans_associate_var): Assign the descriptor directly for class arrays. (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments. Convert array element references into sections. Do not invoke gfc_conv_procedure_call, use gfc_trans_call instead. * expr.c (gfc_get_corank): Fix for BT_CLASS. (gfc_is_simply_contiguous): Exclude class from test. * trans.c (gfc_build_array_ref): Include class array refs. * trans.h : Include prototypes for class API functions that are new in trans-expr. Define GFC_DECL_CLASS(node). * resolve.c (check_typebound_baseobject ): Remove error for non-scalar base object. (resolve_allocate_expr): Ensure that class _data component is present. If array, call gfc_expr_to_intialize. (resolve_select): Remove scalar error for SELECT statement as a temporary measure. (resolve_assoc_var): Update 'target' (aka 'selector') as needed. Ensure that the target expression has the right rank. (resolve_select_type): Ensure that target expressions have a valid locus. (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS. * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where appropriate. (gfc_trans_deferred_vars): Get class arrays right. * match.c(select_type_set_tmp): Add array spec to temporary. (gfc_match_select_type): Allow class arrays. * check.c (array_check): Ensure that class arrays have refs. (dim_corank_check, dim_rank_check): Retrun success if class. * primary.c (gfc_match_varspec): Fix for class arrays and co-arrays. Make sure that class _data is present. (gfc_match_rvalue): Handle class arrays. *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array reference. (gfc_conv_allocated): Add _data component to class expressions. (gfc_add_intrinsic_ss_code): ditto. * simplify.c (simplify_cobound): Fix for BT_CLASS. (simplify_bound): Return NULL for class arrays. (simplify_cobound): Obtain correct array_spec. Use cotype as appropriate. Use arrayspec for bounds. 2011-12-11 Paul Thomas <pault@gcc.gnu.org> Tobias Burnus <burnus@gcc.gnu.org> PR fortran/41539 PR fortran/43214 PR fortran/43969 PR fortran/44568 PR fortran/46356 PR fortran/46990 PR fortran/49074 * gfortran.dg/class_array_1.f03: New. * gfortran.dg/class_array_2.f03: New. * gfortran.dg/class_array_3.f03: New. * gfortran.dg/class_array_4.f03: New. * gfortran.dg/class_array_5.f03: New. * gfortran.dg/class_array_6.f03: New. * gfortran.dg/class_array_7.f03: New. * gfortran.dg/class_array_8.f03: New. * gfortran.dg/coarray_poly_1.f90: New. * gfortran.dg/coarray_poly_2.f90: New. * gfortran.dg/coarray/poly_run_1.f90: New. * gfortran.dg/coarray/poly_run_2.f90: New. * gfortran.dg/class_to_type_1.f03: New. * gfortran.dg/type_to_class_1.f03: New. * gfortran.dg/typebound_assignment_3.f03: Remove the error. * gfortran.dg/auto_dealloc_2.f90: Occurences of __builtin_free now 2. * gfortran.dg/class_19.f03: Occurences of __builtin_free now 8. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182210 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-10 Tobias Burnus <burnus@net-b.de>burnus2011-12-101-1/+1
| | | | | | | | * trans-decl.c (add_argument_checking): Fix syntax. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182194 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-10 Tobias Burnus <burnus@net-b.de>burnus2011-12-101-5/+4
| | | | | | | | | | | Kai Tietz <ktietz@redhat.com> * trans-decl.c (add_argument_checking): Check ts.deferred earlier. * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182190 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-12-08 Tobias Burnus <burnus@net-b.de>burnus2011-12-081-2/+4
| | | | | | | | | | | | | | | PR fortran/50815 * trans-decl.c (add_argument_checking): Skip bound checking for deferred-length strings. 2011-12-08 Tobias Burnus <burnus@net-b.de> PR fortran/50815 * gfortran.dg/bounds_check_16.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182134 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-25 Tobias Burnus <burnus@net-b.de>burnus2011-11-251-1/+6
| | | | | | | | | | | | | | | | | | | PR fortran/50408 * trans-decl.c (gfc_get_module_backend_decl): Also copy ts.u.derived from the gsym if the ts.type is BT_CLASS. (gfc_get_extern_function_decl): Copy also the backend_decl for the symbol's ts.u.{derived,cl} from the gsym. * trans-types.c (gfc_copy_dt_decls_ifequal): Directly return if "from" and "to" are the same. 2011-11-25 Tobias Burnus <burnus@net-b.de> PR fortran/50408 * gfortran.dg/whole_file_35.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181725 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-19 Tobias Burnus <burnus@net-b.de>burnus2011-11-191-2/+10
| | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181505 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortranburnus2011-11-161-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181425 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-14 Tobias Burnus <burnus@net-b.de>burnus2011-11-141-2/+6
| | | | | | | | | | PR fortran/51073 * trans-decl.c (generate_coarray_sym_init): Handle zero-sized * arrays. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181348 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-03 Tobias Burnus <burnus@net-b.de>burnus2011-11-031-0/+4
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180878 138bc75d-0d04-0410-961f-82ee72b054a4
* Convert standard builtin functions from being arrays to using a functional ↵meissner2011-10-111-1/+1
| | | | | | interface git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179820 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-10-07 Janus Weil <janus@gcc.gnu.org>janus2011-10-071-1/+4
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179660 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-29 Janus Weil <janus@gcc.gnu.org>janus2011-08-291-5/+13
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178262 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran/burnus2011-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178193 138bc75d-0d04-0410-961f-82ee72b054a4
* * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODELjakub2011-08-261-0/+5
| | | | | | | | | | | if threadprivate. * symbol.c (check_conflict): Allow threadprivate attribute with FL_PROCEDURE if proc_pointer. * testsuite/libgomp.fortran/threadprivate4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178114 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-25 Tobias Burnus <burnus@net-b.de>burnus2011-08-251-8/+29
| | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178069 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-17 Tobias Burnus <burnus@net-b.de>burnus2011-08-171-4/+12
| | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177833 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-07-21 Tobias Burnus <burnus@net-b.de>burnus2011-07-211-0/+42
| | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176562 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-07-17 Tobias Burnus <burnus@net-b.de>burnus2011-07-181-1/+3
| | | | | | | | | * trans-decl.c (gfc_build_qualified_array): Make coarray's token TYPE_QUAL_RESTRICT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176404 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-07-16 Tobias Burnus <burnus@net-b.de>burnus2011-07-161-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176358 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-07-06 Daniel Carrera <dcarrera@gmail.com>burnus2011-07-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175937 138bc75d-0d04-0410-961f-82ee72b054a4
* cosmetic. Add sync_ to all the expand_builtin defines which do not match the ↵amacleod2011-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175270 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran/burnus2011-06-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174896 138bc75d-0d04-0410-961f-82ee72b054a4
* * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Craylangton2011-06-021-1/+5
| | | | | | | | | pointees as AS_EXPLICIT. * gfortran.dg/PR49268.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174584 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-31 Tobias Burnus <burnus@net-b.de>burnus2011-05-311-1/+10
| | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174503 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-26 Tobias Burnus <burnus@net-b.de>burnus2011-05-261-5/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174301 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-15 Tobias Burnus <burnus@net-b.de>burnus2011-05-151-3/+4
| | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173772 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 48915 Abort handlingjb2011-05-141-1/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173750 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-07 Tobias Burnus <burnus@net-b.de>burnus2011-05-071-9/+33
| | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173528 138bc75d-0d04-0410-961f-82ee72b054a4
* generalize build_case_label to the rest of the compilerfroydnj2011-05-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173467 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (get_pending_sizes): Remove prototype.ebotcazou2011-05-051-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173424 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2011-05-041-12/+9
| | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173375 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-04 Richard Guenther <rguenther@suse.de>rguenth2011-05-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173374 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud