1. 29 Jan, 2012 6 commits
    • PR 51808 Constify binding_label. · 9975a30b
      2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/51808
      	* decl.c (set_binding_label): Make binding_label argument const.
      	(curr_binding_label): Constify.
      	* gfortran.h (gfc_symbol): Constify binding_label.
      	(gfc_common_head): Likewise.
      	(get_iso_c_sym): Likewise.
      	* match.c (gfc_match_name_C): Constify buffer argument.
      	* match.h (gfc_match_name_C): Likewise.
      	* resolve.c (set_name_and_label): Constify binding_label argument.
      	(gfc_iso_c_sub_interface): Constify binding_label variable.
      	* symbol.c (get_iso_c_sym): Constify binding_label argument.
      
      From-SVN: r183679
      Janne Blomqvist committed
    • PR 51808 Fix ChangeLog entry · 9e85a9fd
      From-SVN: r183678
      Janne Blomqvist committed
    • PR 51808 Support arbitrarily long bind(C) binding labels. · 62603fae
      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.
      
      From-SVN: r183677
      Janne Blomqvist committed
    • ffi.c (ffi_call_win32): Add new argument to prototype for specify calling-convention. · 9b850dd9
              * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
              argument to prototype for specify calling-convention.
              (ffi_call): Add support for stdcall/thiscall convention.
              (ffi_prep_args): Likewise.
              (ffi_raw_call): Likewise.
              * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
              FFI_FASTCALL.
              * src/x86/win32.S (_ffi_call_win32): Add support for
              fastcall/thiscall calling-convention calls.
              * testsuite/libffi.call/fastthis1_win32.c: New test.
              * testsuite/libffi.call/fastthis2_win32.c: New test.
              * testsuite/libffi.call/fastthis3_win32.c: New test.
              * testsuite/libffi.call/strlen2_win32.c: New test.
              * testsuite/libffi.call/many2_win32.c: New test.
              * testsuite/libffi.call/struct1_win32.c: New test.
              * testsuite/libffi.call/struct2_win32.c: New test.
      
      From-SVN: r183676
      Kai Tietz committed
    • re PR fortran/52038 (fortran bootstrap failure: no previous prototype for 'symbol_as') · ae98156e
      2012-01-29  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/52038
              * resolve.c (symbol_as): Remove unused, accidentally
              added function.
      
      From-SVN: r183675
      Tobias Burnus committed
    • Daily bump. · 319191b9
      From-SVN: r183674
      GCC Administrator committed
  2. 28 Jan, 2012 7 commits
  3. 27 Jan, 2012 27 commits