* include/bits/codecvt.h: Excise non-standard, non-required
bits. This includes __enc_traits, and partial specializations of
codecvt for __enc_traits.
* src/codecvt.cc (__enc_traits::_S_max_size): Guard
* config/codecvt_partials_ieee_1003.1-200x.h: New file.
* config/codecvt_partials_generic.h: New file.
* include/Makefile.am (allstamps): Add stamp-codecvt_model.
(stamp-codecvt_model): Add.
* include/Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add in codecvt configury.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* testsuite/22_locale/codecvt_unicode_wchar_t.cc: Use macro guard.
* testsuite/22_locale/codecvt_unicode_char.cc: Same.
* testsuite/22_locale/ctor_copy_dtor.cc: And here.
* include/bits/localefwd.h (class locale::facet): Add __enc_traits
as a friend for _S_*_c_locale functions.
* include/bits/codecvt.h (__enc_traits::__enc_traits): Add locale
argument to default constructor so that CODESET information can be
deduced.
* include/bits/locale_facets.h (messages_byname):
Re-implement. Remove specializations.
* src/locale.cc (messages_byname<char>): Remove specialization.
(messages_byname<wchar_t>): Same.
* config/locale/c_locale_ieee_1003.1-200x.cc: New file.
* config/locale/c_locale_ieee_1003.1-200x.h: New file.
* config/locale/messages_members_ieee_1003.1-200x.cc: New file.
* config/locale/messages_members_ieee_1003.1-200x.h: New file.
* config/locale/messages_members_gnu.cc: New file.
* config/locale/messages_members_gnu.h: New file.
* config/locale/messages_members_generic.cc: New file.
* config/locale/messages_members_generic.h: New file.
* docs/html/configopts.html: Add documentation for new locale
model, ieee_1003.1. Adjust other flags for current defaults.
* docs/html/22_locale/locale.html: Update.
* docs/html/22_locale/howto.html: Add link to messages.html. Organize.
* docs/html/22_locale/messages.html: New.
* testsuite_flags.in (--cxxflags): Add LOCALEDIR.
* testsuite/lib/libstdc++-v3-dg.exp: Remove broken LD_LIBRARY_PATH
bits for Irix.
* acinclude (GLIBCPP_ENABLE_CLOCALE): Set glibcpp_localedir to the
build directories message catalog base directory, and export.
Eventually this should probably be made to deal with build and
install directories. For now, punt on this as the library itself
doesn't use message catalogs (yet).
* testsuite/22_locale/messages.cc: New file.
* testsuite/22_locale/messages_char_members.cc: New file.
* testsuite/22_locale/messages_byname.cc: New file.
Neil Booth [Tue, 7 Aug 2001 20:37:26 +0000 (20:37 +0000)]
cppinit.c (cpp_finish): Pop the final buffer without comment.
* cppinit.c (cpp_finish): Pop the final buffer without comment.
* cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
take care to avoid multiple no-newline at EOF warnings in that
case.
Nathan Sidwell [Tue, 7 Aug 2001 13:57:06 +0000 (13:57 +0000)]
re PR c++/3820 (GCC 3.0 crashes with empty base class)
cp:
PR c++/3820
Stop using TYPE_NONCOPIED_PARTS.
* call.c (build_over_call): Be careful when copy constructing
or assigning to an empty class.
* class.c (check_bases_and_members): It has a
COMPLEX_ASSIGN_REF if it has a vptr.
(layout_class_type): Don't add empty class padding to
TYPE_NONCOPIED_PARTS.
(finish_struct_1): Don't add the VFIELD either.
* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
initialization.
testsuite:
* g++.dg/abi/empty4.C: New test.
varasm.c (assemble_constructor): Take a symbol_ref and a priority instead of a bare string.
* varasm.c (assemble_constructor): Take a symbol_ref and a
priority instead of a bare string. Move priority handling
here from cp/decl2.c.
* output.h: Update decls.
* c-decl.c (c_expand_body): Update calls to assemble_constructor
and assemble_destructor.
* profile.c (output_func_start_profiler): Likewise.
* objc/objc-act.c (finish_objc): Likewise.
(build_module_descriptor): Return the symbol not the symbol name.
* ch/grant.c (chill_finish_compile): Pass a symbol_ref and priority
to assemble_constructor.
* cp/decl2.c (finish_objects): Pass a symbol_ref and priority to
assemble_{constructor,destructor}. Remove priority handling.
* java/class.c (emit_register_classes): Pass a symbol_ref and priority
to assemble_constructor.
Daniel Berlin [Mon, 6 Aug 2001 13:04:29 +0000 (13:04 +0000)]
aix.h (CPP_CPU_SPEC): Move back to rs6000.h
2001-08-06 Daniel Berlin <dan@cgsoftware.com>
* config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
(ASM_CPU_SPEC): Move back to rs6000.h
#undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
* config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
* config/rs6000/linux.h: Remove vtable thunks stuff we accidently
readded.
* config/rs6000/linux64.h: Ditto.
* config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
nothing.
Remove accidently readded definitions of FUNCTION_PROLOGUE,
FUNCTION_EPILOGUE, ASM_OPEN_PAREN, ASM_CLOSE_PAREN
* config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
to rs6000.h
Tom Tromey [Sun, 5 Aug 2001 22:41:30 +0000 (22:41 +0000)]
StringWriter.java: Merged with Classpath.
* java/io/StringWriter.java: Merged with Classpath.
* java/io/InputStream.java: Merged with Classpath.
* java/io/OutputStream.java: Merged with Classpath.
* java/io/PushbackInputStream.java: Merged with Classpath.
* java/io/CharArrayReader.java: Merged with Classpath.
* java/io/CharArrayWriter.java: Merged with Classpath.
Neil Booth [Sun, 5 Aug 2001 17:31:25 +0000 (17:31 +0000)]
re PR preprocessor/3081 (Preprocessor merges 2 first lines when -imacros is being used)
PR preprocessor/3081
* c-lex.c (map): New.
(cb_file_change): Update map and use it.
(cb_def_pragma, cb_define, cb_undef): Use map and line.
(c_lex): Update to use map.
* cpperror.c (print_location): Move to using logical line numbers.
* cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
(cpp_make_system_header): Similarly.
(_cpp_execute_include): Stop line numbering hacks. Store the
line we will return to.
* cpphash.h (CPP_BUF_LINE): Remove.
(struct cpp_buffer): Remove lineno and pseudo_newlines.
Add map and return_to_line.
(_cpp_do_file_change): Update.
* cppinit.c (cpp_start_read): Update line kludge.
* cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
(trigraph_ok): Use logical line numbers for diagnostics.
(skip_block_comment): Likewise.
(skip_whitespace): Likewise.
(skip_line_comment): Use pfile->line instead.
(_cpp_lex_token): Update to use logical line numbering exclusively.
Handle BOL locally. Accept new lines in directives, but keep
pfile->line decremented. Diagnostics use logical lines. Update
directive handling.
* cpplib.c (SEEN_EOL): New.
(skip_rest_of_line, check_eol): Use it.
(end_directive): Increase line number when accepting the newline
at the end of a directive.
(run_directive): Simplify.
(do_line): Bad LC_LEAVEs become LC_RENAMEs. Update.
(_cpp_do_file_change): Update to take buffer line number as an
argument, and store the current map in the cpp_reader. Remove
line number kludges.
(_cpp_do__Pragma): Restore output position after a _Pragma.
(cpp_push_buffer): Don't set output line or lineno.
(_cpp_pop_buffer): Transfer more info from a faked buffer.
Remove line kludge. Set output_line.
* cppmacro.c (builtin_macro): Update handling of __LINE__.
(parse_arg): Use logical lines.
(save_lookahead_token): Save EOFs too now.
* cppmain.c (struct printer): Fix comments.
(printer_init): Simplify, let caller do errors.
(scan_translation_unit, check_multiline_token, dump_macro): Update.
(maybe_print_line): Simplify.
(print_line): Don't print a linemarker if -P.
(cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
(cb_file_change): Simplify.
* line-map.h (LAST_SOURCE_LINE): Fix.
(CURRENT_LINE_MAP): New.
* gcc.dg/cpp/19951025-1.c: Revert.
* gcc.dg/cpp/directiv.c: We no longer process directives that
interrupt macro arguments.
* reload1.c (fixup_abnormal_edges): New static function.
(reload): Use it.
* flow.c (need_fake_edge_p): New function.
(flow_call_edges_add): Fix handling of noreturn and sibbling calls;
avoid call insn to be very last insn in the insn stream.
* profile.c (branch_prob): Call flow_call_edges_add instead of
doing that by hand; cleanup cfg to re-merge basic blocks once
we are done.
Neil Booth [Sat, 4 Aug 2001 12:01:59 +0000 (12:01 +0000)]
Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h are also on line-map.h.
* Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
are also on line-map.h.
* cppfiles.c (stack_include_file): Update.
* cpphash.h (struct cpp_buffer): New member return_at_eof.
(_cpp_pop_buffer): New.
* cppinit.c (cpp_destroy, cpp_finish): Update.
(do_includes): Mark each buffer to return at EOF.
* cpplex.c (_cpp_lex_token): Pop buffers at EOF. Continue or
return as requested.
* cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
(cpp_pop_buffer): Rename _cpp_pop_buffer. Stop skipping.
* cpplib.h (cpp_pop_buffer): Remove.
(cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
* cppmacro.c (cpp_scan_buffer_nooutput): Similarly. No need to pop
buffers.
* cppmain.c (scan_buffer): Rename scan_translation_unit. No need
to pop buffers.
(do_preprocessing): Update.
* fix-header.c (read_scan_file): Update. No need to pop buffers.
* c-parse.in (_yylex): Similarly.
* scan-decls.c (scan_decls): Similarly.
* line-map.h: Update comments.
Stephane Carrez [Sat, 4 Aug 2001 10:01:02 +0000 (12:01 +0200)]
m68hc11.md ("bitcmpqi"): Allow memory and soft register for operand 0.
* config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
register for operand 0.
("bitcmpqi_z_used"): Allow memory for operand 0.
(split "bitcmpqi"): New split to handle address reg as operand 1.
Zack Weinberg [Sat, 4 Aug 2001 00:20:37 +0000 (00:20 +0000)]
builtins.c (fold_builtin_constant_p): Return integer_zero_node for complex expressions when cfun == 0.
* builtins.c (fold_builtin_constant_p): Return integer_zero_node
for complex expressions when cfun == 0.
* doc/extend.texi: Document that __builtin_constant_p can be
used in data initializers as well as functions.
* gcc.dg/bconstp-1.c: New test.
gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
* gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
__GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
(__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
(__gthread_mutex_init_function): New function for mutex initialization.
Stephane Carrez [Fri, 3 Aug 2001 21:01:06 +0000 (23:01 +0200)]
t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
* config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
* config/m68hc11/larith.asm (_exit): Split in several sub-sections
merged by linker script to get a final _exit().
(__do_global_dtors): New for destructor handling in specific exit
section.
(__do_global_ctors): New for constructors in specific install section.
(__map_data_section): Map data sections before running constructors.
* config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
(CTORS_SECTION_ASM_OP): Define to put in readonly section.
(DTORS_SECTION_ASM_OP): Likewise.
(CTORS_SECTION_FUNCTION): Define to force a reference to
__do_global_ctors.
(DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
varasm.c (output_constant_def_contents): Use for the length of a string constant either its TREE_STRING_LENGTH or its...
* varasm.c (output_constant_def_contents): Use for the length of a
string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
depending on which is larger.
Daniel Berlin [Fri, 3 Aug 2001 16:52:01 +0000 (16:52 +0000)]
gcse.c: Include df.h for use as a dataflow analyzer.
2001-07-16 Daniel Berlin <dan@cgsoftware.com>
* gcse.c: Include df.h for use as a dataflow analyzer.
Remove regvec.
Declaration of reg_set_info: gone.
New df_analyzer variable used by store motion.
(reg_set_info): Deleted.
(mark_mem_regs): New function, analyze regs used by a mem.
(store_ops_ok): Use dataflow analyzer results to determine if
necessary regs are changed in the block.
(find_moveable_store): Remove check for symbol ref, we can handle
much more complex expressions now.
(compute_store_table): Remove most of the code, it's unnecessary
now that the dataflow analyzer records the info for us.
(store_killed_after): Add parameter to say whether to do the
store_ops_okay test, used to speed up testing when we already know
the answer, and just want to know if the store itself was killed.
(build_store_vector): Largely rewritten to calculate the various
vectors properly, and somewhat optimized.
(store_motion): Init the df_analyzer, get REG_DEF chains.
Also handle trapping expressions (since mems almost always trap)
(simple_mem): Redefine what a simple mem is.
Andrew Cagney [Fri, 3 Aug 2001 15:42:25 +0000 (15:42 +0000)]
mkdeps.c (deps_add_default_target): Make local variable ``start'' a const char pointer.
* mkdeps.c (deps_add_default_target): Make local variable
``start'' a const char pointer.
* dwarf2out.c (compute_section_prefix): Localize use of ``p''.
Rainer Orth [Fri, 3 Aug 2001 11:45:39 +0000 (11:45 +0000)]
install.texi (Configuration): Fix markup.
* doc/install.texi (Configuration): Fix markup.
(Specific, i?86-*-udk): Likewise.
(Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
--with-gnu-ld.
Document --enable-threads and --enable-libgcj status.
(Specific, mips-sgi-irix*): Canonicalize triples.
(Specific, mips-sgi-irix5): Warn about problems with this config.
Mention required GNU as patch.
Native assembler problems are fixed.
(Specific, mips-sgi-irix6): Update O32 ABI support status.
Document --enable-threads and --enable-libgcj status.
* java-tree.h (all_class_filename): New macro.
(enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
(BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
newly created IDENTIFIER_NODE to `all_class_filename.'
Tom Tromey [Thu, 2 Aug 2001 23:46:39 +0000 (23:46 +0000)]
RandomAccessFile.java (seek): Let seek go past end of file.
* java/io/RandomAccessFile.java (seek): Let seek go past end of
file.
(skipBytes): Don't fail if seeking past end of file.
* java/io/FileInputStream.java (skip): Don't fail if seeking past
end of file.
* java/io/natFileDescriptorWin32.cc (seek): Handle `eof_trunc'
argument.
* java/io/natFileDescriptorEcos.cc (seek): Handle `eof_trunc'
argument.
* java/io/natFileDescriptorPosix.cc (seek): Handle `eof_trunc'
argument.
* java/io/FileDescriptor.java (seek): Added `eof_trunc' argument.
Neil Booth [Thu, 2 Aug 2001 23:03:31 +0000 (23:03 +0000)]
line-map.c: New.
* line-map.c: New.
* line-map.h: New.
* Makefile.in (line-map.o): New.
(LIBCPP_OBJS, LIBCPP_DEPS): Update.
* c-lex.c (cb_file_change): Update for new cpp_file_change structure.
* cpperror.c (print_containing_files): Similarly.
(print_location): Update. Don't output a space before _Pragma.
* cppfiles.c (stack_include_file): Set to line 1 immediately.
(stack_include_filee, cpp_make_system_header): Update.
(_cpp_execute_include): Get logical line number right for calling
as-yet-unterminated #include.
* cpphash.h (struct cpp_reader): Add line_maps.
(_cpp_do_file_change): Update.
* cppinit.c (cpp_create_reader): Initialize line maps.
(cpp_destroy): Destroy line maps.
(cpp_start_read): Get logical line number right.
* cpplex.c (parse_string): Only warn once for multi-line strings.
Use boolean variable for null warning.
* cpplib.c (_cpp_handle_directive): End the directive if it isn't
already.
(do_include_common): End the directive early.
(do_line): Don't warn about out-of-range lines in preprocessed
source. Update. Remove unused variables.
(_cpp_do_file_change): Update for new line mapping.
(pragma_cb): New typedef.
(cpp_register_pragma): Stop looking ahead before calling the
handler. Clean up.
(do_pragma_system_header): End directive early.
(cpp_get_line_maps): New.
(cpp_pop_buffer): Fudge logical line. Update.
* cpplib.h: Include line-map.h
(enum cpp_fc_reason): Remove.
(struct cpp_file_change): Update.
(cpp_get_line_maps): New.
* cppmain.c (struct_printer): New member map.
(cb_file_change): Update for new mappings.
* fix-header.c (cb_file_change): Similarly.
testsuite:
* gcc.dg/cpp/19951025-1.c: Update.