1. 07 Apr, 2009 12 commits
    • gigi.h (standard_datatypes): Remove ADT_void_type_decl. · 10069d53
      	* gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
      	(void_type_decl_node): Remove.
      	(init_gigi_decls): Likewise.
      	(gnat_install_builtins): Declare.
      	(record_builtin_type): Likewise.
      	(create_type_stub_decl): Likewise.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
      	(gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
      	artificial.
      	<E_Array_Subtype>: Use the index types, not only their name, in the
      	record giving the names of the bounds, if any.
      	For a packed array type, make it artificial only if the base type
      	was artificial as well.  Remove redundant statement.
      	(gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
      	dummy types.
      	Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
      	(rest_of_type_decl_compilation_no_defer): Likewise.
      	* gcc-interface/misc.c (gnat_printable_name): Add missing guard.
      	* gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
      	and use create_type_stub_decl to build it.
      	(gnat_pushdecl): Rewrite condition.
      	(gnat_install_builtins): Remove bogus declaration.
      	(record_builtin_type): New function.
      	(finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
      	of types.
      	(create_type_stub_decl): New function.
      	(create_type_decl): Assert that the type is not dummy.  If the type
      	hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
      	(build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
      	(build_vms_descriptor): Likewise.
      	(init_gigi_decls): Delete and move bulk of code to...
      	* gcc-interface/trans.c (gigi): ...here.  Use record_builtin_type.
      	(emit_range_check): Add gnat_node parameter.
      	(emit_index_check): Likewise.
      	(emit_check): Likewise.
      	(build_unary_op_trapv): Likewise.
      	(build_binary_op_trapv): Likewise.
      	(convert_with_check): Likewise.
      	(Attribute_to_gnu): Adjust calls for above changes.
      	(call_to_gnu): Likewise.
      	(gnat_to_gnu): Likewise.
      	(assoc_to_constructor): Likewise.
      	(pos_to_constructor): Likewise.
      	(Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
      	(process_type): Do not create TYPE_DECL for dummy types.
      
      From-SVN: r145660
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Reorder local variables. · 1e17ef87
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
      	* gcc-interface/trans.c: Fix formatting throughout.  Fix comments.
      	* gcc-interface/utils.c: Fix comments.
      
      From-SVN: r145658
      Eric Botcazou committed
    • decl.c (compile_time_known_address_p): Rewrite and move around. · 229077b0
      	* decl.c (compile_time_known_address_p): Rewrite and move around.
      	(gnat_to_gnu_type): Move around.
      	(get_unpadded_type): Likewise.
      	* utils.c (update_pointer_to): Use synthetic macro.  Tidy comments.
      
      From-SVN: r145654
      Eric Botcazou committed
    • repairing ChangeLog for my last commit · c22ba5ff
      From-SVN: r145653
      Janus Weil committed
    • trans.c (check_for_eliminated_entity): New function. · aa1aa786
      	* gcc-interface/trans.c (check_for_eliminated_entity): New function.
      	(Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
      	(call_to_gnu): Invoke it instead of manually checking.
      
      From-SVN: r145652
      Eric Botcazou committed
    • re PR other/38920 (dw2 exceptions don't work.) · 3afadac3
      2009-04-07  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/38920
      	* expr.c (gfc_check_pointer_assign): Enable interface check for
      	procedure pointers.
      	* gfortran.h: Add copy_formal_args_intr.
      	* interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
      	if second argument is an intrinsic.
      	(compare_intr_interfaces): Correctly set attr.function, attr.subroutine
      	and ts.
      	(compare_parameter): Call gfc_compare_interfaces also for intrinsics.
      	* resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
      	intrinsic interfaces here. Must happen earlier.
      	(resolve_symbol): Resolution of intrinsic interfaces moved here from
      	resolve_specific_..., and formal args are now copied from intrinsic
      	interfaces.
      	* symbol.c (copy_formal_args_intr): New function to copy the formal
      	arguments from an intinsic procedure.
      
      
      2009-04-07  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/38920
      	* gfortran.dg/proc_decl_1.f90: Modified.
      	* gfortran.dg/proc_ptr_11.f90: Extended.
      	* gfortran.dg/proc_ptr_13.f90: Modified.
      
      From-SVN: r145651
      Janus Weil committed
    • config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file. · 44509946
      2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
      
      	* config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
      	Add t-sysroot-suffix to tmake_file.
      	* config/print-sysroot-suffix.sh: New file.
      	* config/t-sysroot-suffix: New file.
      
      From-SVN: r145650
      Andrew Stubbs committed
    • libgcc2.c (INFINITY): Use __builtin_huge_val... · ca22d882
      	* libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
      	as the latter produces a warning when the target does not support
      	infinity.
      
      From-SVN: r145646
      Ben Elliston committed
    • Makefile.am (${pch1a_output}): Use gnu++0x flags instead of debug. · 04b70271
      2009-04-06  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/Makefile.am (${pch1a_output}): Use gnu++0x flags instead
      	of debug.
      	* include/Makefile.in: Regenerate.
      	* include/precompiled/stdc++.h: Add.
      
      	* doc/xml/api.xml: Add gcc-4.4 link.
      	* doc/html/api.html: Regenerate.
      
      2009-04-06  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/bits/random.h: Adjust doxygen markup.
      	* doc/doxygen/user.cfg.in: Prefer C++0x to tr1 includes.
      
      	* testsuite/26_numerics/random/piecewise_linear_distribution/
      	operators/serialize.cc: Use typedefs.
      
      From-SVN: r145645
      Benjamin Kosnik committed
    • dfp.c: Replace type punning assignments with memcpy throughout. · 95aac11b
      	* dfp.c: Replace type punning assignments with memcpy throughout.
      	* Makefile.in (dfp.o-warn): Remove.
      
      From-SVN: r145644
      Ben Elliston committed
    • re PR target/39634 (powerpc64 libgcc contains useless softfp functions) · 633dd061
      	PR target/39634
      	* config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
      	Include soft-fp/t-softfp after rs6000/t-linux64.
      	* config.host: Reorder and merge to match config.gcc change.
      
      From-SVN: r145641
      Alan Modra committed
    • Daily bump. · dacfd234
      From-SVN: r145640
      GCC Administrator committed
  2. 06 Apr, 2009 25 commits
  3. 05 Apr, 2009 3 commits
    • random.tcc (piecewise_linear_distribution<>::… · 9769c190
      random.tcc (piecewise_linear_distribution<>:: operator()(_UniformRandomNumberGenerator&, const param_type&)): Remove spurious closed parenthesis.
      
      2009-04-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/bits/random.tcc (piecewise_linear_distribution<>::
      	operator()(_UniformRandomNumberGenerator&, const param_type&)):
      	Remove spurious closed parenthesis.
      
      From-SVN: r145575
      Paolo Carlini committed
    • re PR libfortran/38654 (Fortran I/O speedup) · e462f727
      2009-04-05  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/38654
      	* gfortran.dg/read_float_2.f03
      	* gfortran.dg/read_float_3.f90
      
      From-SVN: r145572
      Daniel Kraft committed
    • [multiple changes] · 7812c78c
      2009-04-05  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/38654
      	* io/read.c (read_f): Reworked to speed up floating point parsing.
      	(convert_real): Use pointer-casting instead of memcpy and temporaries.
      
      2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
              PR libfortran/37754
      	* io/io.h (format_hash_entry): New structure for hash table.
      	(format_hash_table): The hash table itself.
      	(free_format_data): Revise function prototype.
      	(free_format_hash_table, init_format_hash,
      	free_format_hash): New function prototypes.
      	* io/unit.c (close_unit_1): Use free_format_hash_table.
      	* io/transfer.c (st_read_done, st_write_done): Free format data if
      	internal unit.
      	* io/format.c (free_format_hash_table): New function that frees any
      	memory allocated previously for cached format data.
      	(reset_node): New static helper function to reset the format counters
      	for a format node.
      	(reset_fnode_counters): New static function recursively calls reset_node
      	to traverse the	fnode tree.
      	(format_hash): New simple hash function based on XOR, probabalistic,
      	tosses collisions.
      	(save_parsed_format): New static function to save the parsed format
      	data to use again.
      	(find_parsed_format): New static function searches the hash table
      	looking for a match.
      	(free_format_data): Revised to accept pointer to format data rather than
      	the dtp pointer so that the function can be used in more places.
      	(format_lex): Editorial.
      	(parse_format_list): Set flag used to determine of format data hashing
      	is to be used.  Internal units are not persistent enough for this.
      	(revert): Move to ne location in file.
      	(parse_format): Use new functions to look for previously parsed
      	format strings and use them rather than re-parse.  If not found, saves
      	the parsed format data for later use.
      	
      2009-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
              PR libfortran/37754
      	* io/transfer.c (formatted_transfer_scalar): Remove this function by
      	factoring it into two new functions, one for read and one for write,
      	eliminating all the conditionals for read or write mode.
      	(formatted transfer_scalar_read): New function.
      	(formatted transfer_scalar_write): New function.
      	(formatted_transfer): Use new functions.
      
      2009-04-05  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/25561 libfortran/37754
      	* io/io.h (struct stream): Define new stream interface function
      	pointers, and inline functions for accessing it.
      	(struct fbuf): Use int instead of size_t, remove flushed element.
      	(mem_alloc_w): New prototype.
      	(mem_alloc_r): New prototype.
      	(stream_at_bof): Remove prototype.
      	(stream_at_eof): Remove prototype.
      	(file_position): Remove prototype.
      	(flush): Remove prototype.
      	(stream_offset): Remove prototype.
      	(unit_truncate): New prototype.
      	(read_block_form): Change to return pointer, int* argument.
      	(hit_eof): New prototype.
      	(fbuf_init): Change prototype.
      	(fbuf_reset): Change prototype.
      	(fbuf_alloc): Change prototype.
      	(fbuf_flush): Change prototype.
      	(fbuf_seek): Change prototype.
      	(fbuf_read): New prototype.
      	(fbuf_getc_refill): New prototype.
      	(fbuf_getc): New inline function.
              * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
      	(fbuf_debug): New function.
      	(fbuf_reset): Flush, and return position offset.
      	(fbuf_alloc): Simplify, don't flush, just realloc.
      	(fbuf_flush): Make usable for read mode, salvage remaining bytes.
      	(fbuf_seek): New whence argument.
      	(fbuf_read): New function.
      	(fbuf_getc_refill): New function.
      	* io/file_pos.c (formatted_backspace): Use new stream interface.
      	(unformatted_backspace): Likewise.
      	(st_backspace): Make sure format buffer is reset, use new stream
      	interface, use unit_truncate.
      	(st_endfile): Likewise.
      	(st_rewind): Likewise.
      	* io/intrinsics.c: Use new stream interface.
      	* io/list_read.c (push_char): Don't use u.p.scratch, use realloc
      	to resize.
      	(free_saved): Don't check u.p.scratch.
      	(next_char): Use new stream interface, use fbuf_getc() for external files.
      	(finish_list_read): flush format buffer.
      	(nml_query): Update to use modified interface:s
      	* io/open.c (test_endfile): Use new stream interface.
      	(edit_modes): Likewise.
      	(new_unit): Likewise, set bytes_left to 1 for stream files.
      	* io/read.c (read_l): Use new read_block_form interface.
      	(read_utf8): Likewise.
      	(read_utf8_char1): Likewise.
      	(read_default_char1): Likewise.
      	(read_utf8_char4): Likewise.
      	(read_default_char4): Likewise.
      	(read_a): Likewise.
      	(read_a_char4): Likewise.
      	(read_decimal): Likewise.
      	(read_radix): Likewise.
      	(read_f): Likewise.
      	* io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
      	usage of u.p.line_buffer.
      	(read_block_form): Update interface to return pointer, use
      	fbuf_read for direct access.
      	(read_block_direct): Update to new stream interface.
      	(write_block): Use mem_alloc_w for internal I/O.
      	(write_buf): Update to new stream interface.
      	(formatted_transfer_scalar): Don't use u.p.line_buffer, use
      	fbuf_seek for external files.
      	(us_read): Update to new stream interface.
      	(us_write): Likewise.
      	(data_transfer_init): Always check if we switch modes and flush.
      	(skip_record): Use new stream interface, fix comparison.
      	(next_record_r): Check for and reset u.p.at_eof, use new stream
      	interface, use fbuf_getc for spacing.
      	(write_us_marker): Update to new stream interface, don't inline.
      	(next_record_w_unf): Likewise.
      	(sset): New function.
      	(next_record_w): Use new stream interface, use fbuf for printing
      	newline.
      	(next_record): Use new stream interface.
      	(finalize_transfer): Remove sfree call, use new stream interface.
      	(st_iolength_done): Don't use u.p.scratch.
      	(st_read): Don't check for end of file.
      	(st_read_done): Don't use u.p.scratch, use unit_truncate.
      	(hit_eof): New function.
      	* io/unit.c (init_units): Always init fbuf for formatted units.
      	(update_position): Use new stream interface.
      	(unit_truncate): New function.
      	(finish_last_advance_record): Use fbuf to print newline.
      	* io/unix.c: Remove unused SSIZE_MAX macro.
      	(BUFFER_SIZE): Make static const variable rather than macro.
      	(struct unix_stream): Remove dirty_offset, len, method,
      	small_buffer. Order elements by decreasing size.
      	(struct int_stream): Remove.
      	(move_pos_offset): Remove usage of dirty_offset.
      	(reset_stream): Remove.
      	(do_read): Rename to raw_read, update to match new stream
      	interface.
      	(do_write): Rename to raw_write, update to new stream interface.
      	(raw_seek): New function.
      	(raw_tell): New function.
      	(raw_truncate): New function.
      	(raw_close): New function.
      	(raw_flush): New function.
      	(raw_init): New function.
      	(fd_alloc): Remove.
      	(fd_alloc_r_at): Remove.
      	(fd_alloc_w_at): Remove.
      	(fd_sfree): Remove.
      	(fd_seek): Remove.
      	(fd_truncate): Remove.
      	(fd_sset): Remove.
      	(fd_read): Remove.
      	(fd_write): Remove.
      	(fd_close): Remove.
      	(fd_open): Remove.
      	(fd_flush): Rename to buf_flush, update to new stream interface
      	and unix_stream.
      	(buf_read): New function.
      	(buf_write): New function.
      	(buf_seek): New function.
      	(buf_tell): New function.
      	(buf_truncate): New function.
      	(buf_close): New function.
      	(buf_init): New function.
      	(mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
      	(mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
      	(mem_read): Change to match new stream interface.
      	(mem_write): Likewise.
      	(mem_seek): Likewise.
      	(mem_tell): Likewise.
      	(mem_truncate): Likewise.
      	(mem_close): Likewise.
      	(mem_flush): New function.
      	(mem_sfree): Remove.
      	(empty_internal_buffer): Cast to correct type.
      	(open_internal): Use correct type, init function pointers.
      	(fd_to_stream): Test whether to open file as buffered or raw.
      	(output_stream): Remove mode set.
      	(error_stream): Likewise.
      	(flush_all_units_1): Use new stream interface.
      	(flush_all_units): Likewise.
      	(stream_at_bof): Remove.
      	(stream_at_eof): Remove.
      	(file_position): Remove.
      	(file_length): Update logic to use stream interface.
      	(flush): Remove.
      	(stream_offset): Remove.
      	* io/write.c (write_utf8_char4): Use int instead of size_t.
      	(write_x): Extra safety check.
      	(namelist_write_newline): Use new stream interface.
      
      From-SVN: r145571
      Jerry DeLisle committed