* include/bits/demangle.h
(qualifier_list<Allocator>::decode_qualifiers(string_type&,
string_type&, bool member_function_pointer_qualifiers):
Always seperate the '[' of an array type with a space from
what is left of it, except when that is the closing bracket
of another array dimension.
From-SVN: r73328
PR libgcj/12231
* java/lang/Win32Process.java (hasExited) Changed from
public to private.
(startProcess): Likewise.
(cleanup): Likewise.
* java/lang/natWin32Process.cc (cleanup) Don't close
input, output and error streams.
(ChildProcessPipe): New helper class.
(startProcess): Refactored to use ChildProcessPipe.
Use CREATE_NO_WINDOW when launching child process.
From-SVN: r73326
* include/win32.h (_Jv_platform_close_on_exec): Changed
signature and declared extern.
* win32.cc (_Jv_platform_close_on_exec): Implemented.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc
(create): Use new signature of _Jv_platform_close_on_exec.
* gnu/java/net/natPlainSocketImplWin32.cc
(create): Eliminated a few typecasts
Use new signature of _Jv_platform_close_on_exec.
(accept): Eliminated a few typecasts
Use new signature of _Jv_platform_close_on_exec.
* java/io/natFileDescriptorWin32.cc (open): Use
_Jv_platform_close_on_exec.
From-SVN: r73325
* c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
field instead of hanging an attribute object off the decl.
* tree.h (DECL_VISIBLITY): New accessor macro for
symbol_visibility field in struct tree_decl.
(enum symbol_visibility): Move definition to before tree_decl.
(struct tree_decl): Define new two-bit field, symbol_visibility.
(decl_visibility): Remove declaration.
* varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
instead of decl_visibility.
(default_binds_local_p_1): Use DECL_VISIBILITY instead of
decl_visibility.
(decl_visibility): Remove.
* cp/decl.c (duplicate_decls): copy DECL_VISIBILITY field.
* cp/method.c (use_thunk): give thunk same visibility as function.
* cp/optimize.c (maybe_clone_body): copy DECL_VISIBILITY field.
From-SVN: r73320
* config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
(USE_ALTIVEC_FOR_ARG_P): Likewise.
* config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
Take a pointer as the CUM parameter. Update callers.
(USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX
32-bit ABIs.
(function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case
of vector parameters as named arguments of stdarg function.
(function_arg): Likewise.
* config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
-maltivec is specified, not the non-existent -faltivec.
From-SVN: r73317
* config/mips/mips-protos.h (mips_initial_elimination_offset): Change
return type to HOST_WIDE_INT.
* config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
Make initialized a bool. Make register masks unsigned ints.
(compute_frame_size): Make same mask change here. Use HOST_WIDE_INT
where appropriate.
(mips_initial_elimination_offset): Return a HOST_WIDE_INT.
(mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
From-SVN: r73303
* genmodes.c: Change the word "bitsize" to "precision" throughout.
* machmode.def: Likewise.
* machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
(GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT.
(GET_MODE_PRECISION): New macro.
(mode_bitsize): Renamed mode_precision.
* stor-layout.c (mode_for_size, smallest_mode_for_size):
Use GET_MODE_PRECISION; clarify comments.
ada:
* misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
and update for changed meaning of GET_MODE_BITSIZE.
From-SVN: r73295
* c-opts.c (finish_options): Set include_cursor to disable premature
calls to push_command_line_include from cpp_scan_nooutput.
Fixes bug reported by DJ Delorie.
From-SVN: r73281
* gcc.c-torture/compile/20031023-4.c: XFAIL on SPARC64
* gcc.c-torture/compile/simd-5.c: XFAIL on SPARC64 at -O0 and -O1.
* gcc.c-torture/execute/simd-4.x: New file. XFAIL on SPARC at -O0.
* gcc.c-torture/execute/va-arg-25.x: New file. XFAIL on SPARC.
* gcc.dg/uninit-C.c: XFAIL on non 64-bit Solaris versions.
From-SVN: r73280
* cfgloopanal.c (variable_initial_value, variable_initial_values,
simple_loop_exit_p): Record the fact that initial value is extended
from inner mode.
(count_strange_loop_iterations, count_loop_iterations): Handle
ivs that iterate in a narrower mode. Fix handling of overflows.
Improve handling of NE conditions.
(inverse, fits_in_mode_p): New static functions.
(simple_increment): Detect variables that iterate in a narrower mode.
* cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
From-SVN: r73275
* c-typeck.c (pedantic_lvalue_warning): Deprecate use of
conditional expressions as lvalues.
testsuite:
* gcc.dg/cond-lvalue-1.c: New test.
From-SVN: r73273
* tsystem.h: Add the prototype of strlen.
* unwind-pe.h (read_encoded_value_with_base): Add an
appropriate cast to handle a case where the pointer size is
smaller than sizeof (int).
From-SVN: r73265
2003-11-04 Jeffrey D. Oldham <oldham@codesourcery.com>
* libsupc++/vec.cc (__cxa_vec_delete2): If given a NULL pointer,
immediately return. This reflects a C++ ABI change 2003 Nov 03.
(__cxa_vec_delete3): Likewise.
From-SVN: r73263
* config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
(mips_delegitimize_address): Delete.
(mips_gotoff_global, mips_load_got_page): Declare.
(mips_load_got_global, mips_rewrite_small_data): Declare.
* config/mips/mips.h (FIND_BASE_TERM): Remove definition.
(DANGEROUS_FOR_LA25_P): Use global_got_operand.
(PREDICATE_CODES): Add global_got_operand, local_got_operand and
small_data_pattern. Remove CONST from const_arith_operand's entry.
* config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
(UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise.
(mips_constant_type): Delete.
(mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL,
SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP.
(NUM_SYMBOL_TYPES): New macro.
(mips_address_type): Remove ADDRESS_INVALID.
(machine_function): Add has_gp_insn_p.
(mips_constant_info): Delete.
(mips_address_info): Add the address type as an extra field. Replace
the c field with symbol_type.
(mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
(TARGET_DELEGITIMIZE_ADDRESS): Remove definition.
(mips_reloc_offset_ok_p, mips_classify_constant): Delete.
(mips_split_const, mips_symbolic_constant_p): New functions.
(mips_symbolic_address_p): Take the symbol type and mode as arguments.
(mips_classify_address): Return true if the address is valid, storing
its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[]
to test whether a LO_SUM address is allowed.
(mips_symbol_insns): Return 0 for general mips16 symbols.
Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
Handle the new SYMBOL_GOTOFF_*s.
(mips_address_insns): Update call to mips_classify_address.
(mips_const_insns): Be more fussy about HIGH constants. Remove use
of mips_classify_constant. Be more accurate about CONSTs.
(mips_global_pic_constant_p): Delete.
(const_arith_operand): Only accept CONST_INTs.
(call_insn_operand): Remove call to mips_classify_constant.
Let mips_symbolic_constant_p check for invalid offsets.
(move_operand): Check for general_operands first. Only accept symbolic
constants if they satisfy mips_symbolic_constant_p and cannot be split.
(symbolic_constant): Use mips_symbolic_constant_p.
(global_got_operand, local_got_operand): New predicates.
(stack_operand): Update call to mips_classify_address.
(mips_legitimate_address_p): Likewise.
(mips_reloc, mips_lui_reloc): Delete.
(mips_force_temporary): Only use the given temporary if no_new_pseudos.
Use emit_move_insn.
(mips_split_symbol, mips_unspec_address): New functions.
(mips_unspec_offset_high): New function.
(mips_load_got): Replace reloc argument with a symbol_type.
Use mips_unspec_address to create the address and put it in a
LO_SUM with the base register.
(mips_load_got16, mips_load_got32): Delete.
(mips_emit_high, mips_legitimize_symbol): Delete.
(mips_gotoff_global): New function.
(mips_load_got_page, mips_load_got_global): New functions.
(mips_legitimize_symbol): Inline handling of LO_SUM splits.
(mips_legitimize_const_move): Likewise. Remove HIGH handling.
Inline code to handle constants plus invalid offsets. Use
mips_split_symbol to legitimize constant pool addresses.
(mips_delegitimize_address): Delete.
(mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS.
(mips_subword): Pass memrefs through mips_rewrite_small_data.
(mips_output_move): Remove use of mips_classify_constant.
(mips_expand_call): Use mips_unspec_offset_high to calculate the
high part of the GOT address for calls to global functions.
(override_options): Initialize mips_split_p[], mips_lo_relocs[]
and mips_hi_relocs[].
(print_operand): Use print_operand_reloc to handle '%h' and '%R'.
Remove use of mips_classify_constant.
(mips_reloc_string): Delete.
(print_operand_reloc): New function.
(print_operand_address): Update call to mips_classify_address.
(mips_rewrite_small_data_p, small_data_pattern_1): New functions.
(small_data_pattern): New predicate.
(mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
(mips_function_has_gp_insn): New function.
(mips_global_pointer): Use it.
(mips_gp_insn): Delete.
(mips_expand_prologue): When compiling for n32/n64 abicalls, use a
single loadgp pattern to initialize $gp. Pass it the offset of _gp
from the start of the current function.
(mips16_gp_pseudo_reg): Revert last patch.
* config/mips/mips.md (RELOC_*): Delete.
(UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants.
(got): New insn attribute.
(type): Set to "load" if got == load.
(length): Set to 4 if got == load, 8 if got == xgot_high.
(lui[sd]i): Delete.
(*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
(*got_disp[sd]i, *got_page[sd]i): Likewise.
(*low[sd]i): Change constraints to "d". Add a new define_split to
rewrite small data constants into LO_SUMs.
(loadgp): New insns.
From-SVN: r73259
* sysdep.c: Problem discovered during IA64 VMS port.
[VMS] #include <unixio.h> to get proper prototypes.
* adaint.c:
Issues discovered/problems fixed during IA64 VMS port.
[VMS] #define _POSIX_EXIT for proper semantics.
[VMS] #include <unixio.h> for proper prototypes.
[VMS] (fork): #define IA64 version.
(__gnat_os_exit): Remove unnecessary VMS specific code.
* 3vtrasym.adb: Minor reformatting
Use terminology encoded/decoded name, rather than C++ specific notion
of mangling (this is the terminology used throughout GNAT).
* einfo.h: Regenerated
* einfo.ads, einfo.adb: Add new flag Is_Thread_Body
* exp_ch6.adb:
(Expand_N_Subprogram_Body): Handle expansion of thread body procedure
* par-prag.adb: Add dummy entry for Thread_Body pragma
* rtsfind.ads:
Add entries for System.Threads entities for thread body processing
* sem_attr.adb:
(Analyze_Pragma, Access attributes): Check these are not applied to a
thread body, since this is not permitted
* sem_prag.adb: Add processing for Thread_Body pragma.
Minor comment fix.
* sem_res.adb:
(Resolve_Call): Check for incorrect attempt to call a thread body
procedure with a direct call.
* snames.ads, snames.adb: Add entry for Thread_Body pragma
Add names associated with thread body expansion
* snames.h: Add entry for Thread_Body pragma
* s-thread.adb: Add entries for thread body processing
These are dummy bodies so far
* s-thread.ads: Add documentation on thread body handling.
Add entries for thread body processing.
* sem_ch10.adb:
(Build_Limited_Views): Return after posting an error in case of limited
with_clause on subprograms, generics, instances or generic renamings
(Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
on subprograms, generics, instances or generic renamings
* raise.c (setup_to_install): Correct mistake in last revision; two
arguments out of order.
* trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
notice, missed in previous change.
Remove trailing blanks and other style errors introduced in previous
change.
* decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
rid of the wrapper for a LJM type, ensuring we don't do that if the
field is addressable. This avoids potential low level type view
mismatches later on, for instance in a by-reference argument passing
process.
* decl.c (gnat_to_gnu_field): No longer check for BLKmode being
aligned at byte boundary.
* decl.c (components_to_record): Do not delete the empty variants from
the end of the union type.
* exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
operation for a derived type, an explicit declaration may use a local
subtype of Boolean.
* make.adb (Gnatmake): Allow main sources on the command line with a
library project when it is only for compilation (no binding or
linking).
Part of PR ada/12806:
* ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
tree, not integer.
* decl.c:
(gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
not integer.
* targtyps.c, decl.c, misc.c,
gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
routines to work around change in FP sizing semantics in GCC.
* utils.c:
(build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
* gigi.h: (enumerate_modes): New function.
* Make-lang.in: (ada/misc.o): Add real.h.
* misc.c: (enumerate_modes): New function.
From-SVN: r73250
* emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
addresses to be shared.
(force_const_mem): Return a copy of the pool entry.
From-SVN: r73248
2003-11-03 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/12790
* include/bits/fstream.tcc: Delete _M_last_overflowed.
(basic_filebuf::basic_filebuf): Initialize _M_state_last.
(basic_filebuf::open, basic_filebuf::close): Assign
_M_state_beg to _M_state_cur and _M_state_last.
(basic_filebuf::close): Call _M_terminate_output to handle
unshift and flushing.
(basic_filebuf::underflow): Assign _M_state_last, throw
exception instead of calling abort when codecvt::max_length()
is bad.
(basic_filebuf::seekoff): Use _M_state_last when calling
codecvt::length(), pass correct state to _M_seek.
(basic_filebuf::seekpos): Pass __pos.state() to _M_seek.
(basic_filebuf::_M_seek): Add __state_type parameter,
set _M_state_cur correctly, store the resulting state in
the return value and use _M_terminate_output to handle
flushing and unshift.
(basic_filebuf::_M_terminate_output): Flush contents of
output buffer, if any, then call codecvt::unshift as
needed and output the result.
(basic_filebuf::sync): Move here, don't modify _M_writing
or _M_reading.
* include/std/std_fstream.h
(basic_filebuf::_M_state_last): Declare it.
(basic_filebuf::_M_last_overflowed): Delete.
(basic_filebuf::_M_seek): Add __state_type parameter.
(basic_filebuf::sync): Declare only.
(basic_filebuf::_M_output_unshift): Delete.
(basic_filebuf::_M_terminate_output): Declare it.
* testsuite/testsuite_character.h:
Define character class and state class plus char_traits and
codecvt specializations for same for testing support for
stateful encodings.
* testsuite/27_io/basic_filebuf/close/12790-1.cc,
* testsuite/27_io/basic_filebuf/close/char/12790-1.cc,
* testsuite/27_io/basic_filebuf/close/char/12790-2.cc,
* testsuite/27_io/basic_filebuf/close/char/12790-3.cc,
* testsuite/27_io/basic_filebuf/close/char/12790-4.cc,
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc,
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc,
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc,
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc,
* testsuite/27_io/basic_filebuf/open/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekoff/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekoff/12790-2.cc,
* testsuite/27_io/basic_filebuf/seekoff/12790-3.cc,
* testsuite/27_io/basic_filebuf/seekoff/12790-4.cc,
* testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc,
* testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc,
* testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc,
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc,
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc,
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc,
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc,
* testsuite/27_io/basic_filebuf/seekpos/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekpos/12790-2.cc,
* testsuite/27_io/basic_filebuf/seekpos/12790-3.cc,
* testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc,
* testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc,
* testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc,
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc,
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc,
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc,
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc,
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc,
* testsuite/27_io/basic_filebuf/sync/char/1.cc,
* testsuite/27_io/basic_filebuf/sync/wchar_t/1.cc:
New tests.
* testsuite/27_io/basic_filebuf/3.cc,
* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc,
* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc,
* testsuite/27_io/basic_fstream/3.cc,
* testsuite/27_io/basic_ifstream/3.cc,
* testsuite/27_io/basic_ofstream/3.cc:
Use streamoff as off_type and fpos<state_type> as pos_type.
* testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc,
* testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc:
Check that sync does *not* set _M_writing to false.
From-SVN: r73245